cf_xarray.accessor.CFAccessor#
- class cf_xarray.accessor.CFAccessor(obj)[source]#
Common Dataset and DataArray accessor functionality.
- _get_all_cell_measures()[source]#
Get all cell measures defined in the object, adding CF pre-defined measures.
- _process_signature(func, args, kwargs, key_mappers)[source]#
Processes a function’s signature, args, kwargs: 1. Binds
*args
so that everything is a Mapping from kwarg name to values 2. Calls_rewrite_values
to rewrite any special CF names to normal xarray names.This uses
key_mappers
Unpacks arguments if necessary before returning them.
- _rewrite_values(kwargs, key_mappers, var_kws)[source]#
Rewrites the values in a Mapping from kwarg to value.
- Parameters
- kwargsMapping
Mapping from kwarg name to value
- key_mappersMapping
Mapping from kwarg name to a Mapper function that will convert a given CF “special” name to an xarray name.
- var_kwsList[str]
List of variable kwargs that need special treatment. e.g. **indexers_kwargs in isel
- Returns
- dict of kwargs with fully rewritten values.
- add_canonical_attributes(override=False, skip=None, verbose=False, source=None)[source]#
Add canonical CF attributes to variables with standard names. Attributes are parsed from the official CF standard name table [1]. This function adds an entry to the “history” attribute.
- Parameters
- overridebool
Override existing attributes.
- skipstr, iterable, optional
Attribute(s) to skip:
{"units", "grib", "amip", "description"}
.- verbosebool
Print added attributes to screen.
- sourceoptional
Path of cf-standard-name-table.xml or file object containing XML data. If
None
, use the latest CF standard name table (requirespooch
).
- Returns
- DataArray or Dataset with attributes added.
Notes
The
"units"
attribute is never added to datetime-like variables.References
- property axes: dict[str, list[Hashable]]#
Property that returns a dictionary mapping valid Axis standard names for
.cf[]
to variable names.This is useful for checking whether a key is valid for indexing, i.e. that the attributes necessary to allow indexing by that key exist. However, it will only return the Axis names
("X", "Y", "Z", "T")
present in.coords
, not in.data_vars
.- Returns
- dict
Dictionary with keys that can be used with
__getitem__
or as.cf[key]
. Keys will be the appropriate subset of (“X”, “Y”, “Z”, “T”). Values are lists of variable names that match that particular key.
- property cell_measures: dict[str, list[Hashable]]#
Property that returns a dictionary mapping valid cell measure standard names for
.cf[]
to variable names.This is useful for checking whether a key is valid for indexing, i.e. that the attributes necessary to allow indexing by that key exist.
- Returns
- dict
Dictionary of valid cell measure names that can be used with
__getitem__
or.cf[key]
.
- property cf_roles: dict[str, list[Hashable]]#
Returns a dictionary mapping cf_role names to variable names.
- Returns
- dict
Dictionary mapping cf_role names to variable names.
References
Please refer to the CF conventions document : http://cfconventions.org/Data/cf-conventions/cf-conventions-1.8/cf-conventions.html#coordinates-metadata
Examples
>>> import cf_xarray >>> from cf_xarray.datasets import dsg >>> dsg.cf.cf_roles {'profile_id': ['profile'], 'trajectory_id': ['trajectory']}
- property coordinates: dict[str, list[Hashable]]#
Property that returns a dictionary mapping valid Coordinate standard names for
.cf[]
to variable names.This is useful for checking whether a key is valid for indexing, i.e. that the attributes necessary to allow indexing by that key exist. However, it will only return the Coordinate names
("latitude", "longitude", "vertical", "time")
present in.coords
, not in.data_vars
.- Returns
- dict
Dictionary of valid Coordinate names that can be used with
__getitem__
or.cf[key]
. Keys will be the appropriate subset of("latitude", "longitude", "vertical", "time")
. Values are lists of variable names that match that particular key.
- curvefit(coords, func, reduce_dims=None, skipna=True, p0=None, bounds=None, param_names=None, kwargs=None)[source]#
- differentiate(coord, *xr_args, positive_upward=False, **xr_kwargs)[source]#
Differentiate an xarray object.
- Parameters
- positive_upwardoptional, bool
Change sign of the derivative based on the
"positive"
attribute ofcoord
so that positive values indicate increasing upward. Ifpositive=="down"
, then multiplied by -1.
See also
DataArray.cf.differentiate
Dataset.cf.differentiate
xarray.DataArray.differentiate
underlying xarray function
xarray.Dataset.differentiate
underlying xarray function
Notes
xr_args
,xr_kwargs
are passed directly to the underlying xarray function.
- get_associated_variable_names(name, skip_bounds=False, error=True)[source]#
- Returns a dict mapping
“ancillary_variables”
“bounds”
“cell_measures”
“coordinates”
“grid_mapping”
“grid”
to a list of variable names referred to in the appropriate attribute
- Parameters
- nameHashable
- skip_boundsbool, optional
- errorbool, optional
Raise or ignore errors.
- Returns
- namesdict
Dictionary with keys “ancillary_variables”, “cell_measures”, “coordinates”, “bounds”, “grid_mapping”, “grid”.
- guess_coord_axis(verbose=False)[source]#
Automagically guesses X, Y, Z, T, latitude, longitude, and adds appropriate attributes. Uses regexes from Metpy and inspired by Iris function of same name.
Existing attributes will not be modified.
- Parameters
- verbosebool
Print extra info to screen
- Returns
- DataArray or Dataset
with appropriate attributes added
- isin(test_elements)[source]#
Test each value in the array for whether it is in test_elements.
- Parameters
- test_elementsarray_like, 1D
The values against which to test each value of element. These must be in “flag_meanings” attribute, and are mapped to the corresponding value in “flag_values” before passing that on to DataArray.isin.
- Returns
- isinDataArray
Has the same type and shape as this object, but with a bool dtype.
- keys()[source]#
Utility function that returns valid keys for .cf[].
This is useful for checking whether a key is valid for indexing, i.e. that the attributes necessary to allow indexing by that key exist.
- Returns
- set
Set of valid key names that can be used with __getitem__ or .cf[key].
- property plot#
- rename_like(other, skip=None)[source]#
Renames variables in object to match names of like-variables in
other
.“Likeness” is determined by variables sharing similar attributes. If cf_xarray can identify a single “longitude” variable in both this object and
other
, that variable will be renamed to match the “longitude” variable inother
.For now, this function only matches
("latitude", "longitude", "vertical", "time")
- Parameters
- otherDataArray, Dataset
Variables will be renamed to match variable names in this xarray object
- skipstr, Iterable[str], optional
Limit the renaming excluding (“axes”, “bounds”, cell_measures”, “coordinates”, “standard_names”) or a subset thereof.
- Returns
- DataArray or Dataset
with renamed variables