yt.frontends.open_pmd.fields module¶
- class yt.frontends.open_pmd.fields.OpenPMDFieldInfo(ds, field_list)[source]¶
- Bases: - FieldInfoContainer- Specifies which fields from the dataset yt should know about. - self.known_other_fieldsand- self.known_particle_fieldsmust be populated. Entries for both of these lists must be tuples of the form (“name”, (“units”, [“fields”, “to”, “alias”], “display_name”)) These fields will be represented and handled in yt in the way you define them here. The fields defined in both- self.known_other_fieldsand- self.known_particle_fieldswill only be added to a dataset (with units, aliases, etc), if they match any entry in the- OpenPMDHierarchy’s- self.field_list.- Notes - Contrary to many other frontends, we dynamically obtain the known fields from the simulation output. The openPMD markup is extremely flexible - names, dimensions and the number of individual datasets can (and very likely will) vary. - openPMD states that record names and their components are only allowed to contain * characters a-Z, * the numbers 0-9 * and the underscore _ * (equivalently, the regex w). Since yt widely uses the underscore in field names, openPMD’s underscores (_) are replaced by hyphen (-). - Derived fields will automatically be set up, if names and units of your known on-disk (or manually derived) fields match the ones in [1]. - References 
- http://yt-project.org/docs/dev/developing/creating_frontend.html#data-meaning-structures 
- https://github.com/openPMD/openPMD-standard/blob/latest/STANDARD.md 
- [1] http://yt-project.org/docs/dev/reference/field_list.html#universal-fields 
 - add_deprecated_field(name, function, sampling_type, since, removal=None, ret_name=None, **kwargs)¶
- Add a new field which is deprecated, along with supplemental metadata, to the list of available fields. This respects a number of arguments, all of which are passed on to the constructor for - DerivedField.- Parameters:
- name (str) – is the name of the field. 
- function (callable) – A function handle that defines the field. Should accept arguments (field, data) 
- sampling_type (str) – “cell” or “particle” or “local” 
- since (str) – The version string marking when this field was deprecated. 
- removal (str) – The version string marking when this field will be removed. 
- ret_name (str) – The name of the field which will actually be returned, used only by - alias().
- units (str) – A plain text string encoding the unit. Powers must be in python syntax (** instead of ^). If set to “auto” the units will be inferred from the return value of the field function. 
- take_log (bool) – Describes whether the field should be logged 
- validators (list) – A list of - FieldValidatorobjects
- vector_field (bool) – Describes the dimensionality of the field. Currently unused. 
- display_name (str) – A name used in the plots 
 
 
 - add_field(name: tuple[str, str], function: Callable, sampling_type: str, *, alias: DerivedField | None = None, force_override: bool = False, **kwargs) None¶
- Add a new field, along with supplemental metadata, to the list of available fields. This respects a number of arguments, all of which are passed on to the constructor for - DerivedField.- Parameters:
- name (tuple[str, str]) – field (or particle) type, field name 
- function (callable) – A function handle that defines the field. Should accept arguments (field, data) 
- sampling_type (str) – “cell” or “particle” or “local” 
- force_override (bool) – If False (default), an error will be raised if a field of the same name already exists. 
- alias (DerivedField (optional):) – existing field to be aliased 
- units (str) – A plain text string encoding the unit. Powers must be in python syntax (** instead of ^). If set to “auto” the units will be inferred from the return value of the field function. 
- take_log (bool) – Describes whether the field should be logged 
- validators (list) – A list of - FieldValidatorobjects
- vector_field (bool) – Describes the dimensionality of the field. Currently unused. 
- display_name (str) – A name used in the plots 
 
 
 - add_output_field(name, sampling_type, **kwargs)¶
 - alias(alias_name: tuple[str, str], original_name: tuple[str, str], units: str | None = None, deprecate: tuple[str, str | None] | None = None)¶
- Alias one field to another field. - Parameters:
- units (str) – A plain text string encoding the unit. Powers must be in python syntax (** instead of ^). If set to “auto” the units will be inferred from the return value of the field function. 
- deprecate (tuple[str, str | None] | None) – If this is set, then the tuple contains two string version numbers: the first marking the version when the field was deprecated, and the second marking when the field will be removed. 
 
 
 - check_derived_fields(fields_to_check=None)¶
 - clear() None. Remove all items from D.¶
 - copy()¶
 - classmethod create_with_fallback(fallback, name='')¶
 - fallback = None¶
 - find_dependencies(loaded)¶
 - classmethod fromkeys(iterable, value=None)¶
 - get(k[, d]) D[k] if k in D, else d. d defaults to None.¶
 - has_key(key)¶
 - items() a set-like object providing a view on D's items¶
 - keys() a set-like object providing a view on D's keys¶
 - known_other_fields: KnownFieldsT = ()¶
 - known_particle_fields: KnownFieldsT = ()¶
 - pop(k[, d]) v, remove specified key and return the corresponding value.¶
- If key is not found, d is returned if given, otherwise KeyError is raised. 
 - popitem() (k, v), remove and return some (key, value) pair¶
- as a 2-tuple; but raise KeyError if D is empty. 
 - setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D¶
 - setup_extra_union_fields(ptype='all')¶
 - setup_fluid_fields()[source]¶
- Defines which derived mesh fields to create. - If a field can not be calculated, it will simply be skipped. 
 - setup_fluid_index_fields()¶
 - setup_particle_fields(ptype)[source]¶
- Defines which derived particle fields to create. - This will be called for every entry in OpenPMDDataset`’s - self.particle_types. If a field can not be calculated, it will simply be skipped.
 - setup_smoothed_fields(ptype, num_neighbors=64, ftype='gas')¶
 - update([E, ]**F) None. Update D from mapping/iterable E and F.¶
- If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v 
 - values() an object providing a view on D's values¶