Roadmap¶
Goals¶
Enable easy use of additional CF attributes that are not decoded by xarray.
Provide a consolidated set of public helper functions that other packages can use to avoid duplicated efforts in parsing CF attributes.
Scope¶
This package will not provide a full implementation of the CF data model using xarray objects. This use case should be served by Iris.
Unit support is left to
pint-xarray
and future xarray support forpint
until it is clear that there is a need for some functionality.Projections and CRS stuff is left to
rioxarray
and other geo-xarray packages. Some helper functions could be folded in tocf-xarray
to encourage consolidation in that sub-ecosystem.
Design principles¶
Be uncomplicated.
Avoid anything that requires saving state in accessor objects (for now).
Be friendly.
Users should be allowed to mix CF names and variables names from the parent xarray object e.g.
ds.cf.plot(x="X", y="model_depth")
. This allows use with “imperfectly tagged” datasets.Be loud when wrapping to avoid confusion.
For e.g. the
repr
forcf.groupby("X")
should make it clear that this is a CF-wrappedResample
instance i.e.cf.groupby("X").mean("T")
is allowed. Docstrings should also clearly indicate wrapping bycf-xarray
; for e.g.ds.cf.isel
.Allow easy debugging and help build understanding.
Since
cf_xarray
depends onattrs
being present and sinceattrs
are easily lost in xarray operations, we should allow easy diagnosis of whatcf_xarray
can decode for a particular object.