This can be solved be making it possible to insert the cf_role=trajectory_id dimension into the data and appropriate metadata constructs, so it would look like (note that the cf_role=trajectory_id construct remains unchanged):
This can be done be add a constructs keyword to cf.Field.insert_dimension that works in the same was as the same keyword on cf.Field.transpose.
Edit: To be clear, this is about allowing a manipulation that turns a 1-d DSG into a 2-d one!
Whilst we're at it, the compression process in cf.Field.compress could be improved, to avoid the following situation: If the data contains trailing missing values at positions where there are non-missing coordinate values, then those non-missing coordinate values are currently lost.
Currently, a 1-d DSG can not be compressed so that it is written out to netCDF file as a ragged array. E.g.
This can be solved be making it possible to insert the
cf_role=trajectory_id
dimension into the data and appropriate metadata constructs, so it would look like (note that thecf_role=trajectory_id
construct remains unchanged):This can be done be add a
constructs
keyword tocf.Field.insert_dimension
that works in the same was as the same keyword oncf.Field.transpose
.Edit: To be clear, this is about allowing a manipulation that turns a 1-d DSG into a 2-d one!
Whilst we're at it, the compression process in
cf.Field.compress
could be improved, to avoid the following situation: If the data contains trailing missing values at positions where there are non-missing coordinate values, then those non-missing coordinate values are currently lost.PR to follow.