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-xarrayand future xarray support forpintuntil it is clear that there is a need for some functionality.Projections and CRS stuff is left to
rioxarrayand other geo-xarray packages. Some helper functions could be folded in tocf-xarrayto 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
reprforcf.groupby("X")should make it clear that this is a CF-wrappedResampleinstance 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_xarraydepends onattrsbeing present and sinceattrsare easily lost in xarray operations, we should allow easy diagnosis of whatcf_xarraycan decode for a particular object.