-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Description
Description
The latest bounds_to_vertices()
function in cf-xarray v0.10.7+ only handles core dimensions that are in ascending or descending order. Core dims that are in mixed order instead raise a NotImplementedError
#595 with a message for the user to normalize coordinates to a monotonic convention (related comment).
Examples
-
Ascending
[0, 1, 2, ..., 357, 358, 359]
-
Descending
[359, 358, 357, ..., 2, 1, 0]
-
Mixed (wraps at seam)
[0, 1, 2, ..., 179, -180, -179, ..., -1]
bounds_to_vertices()
works in the first two cases but fails in the third.
Proposed solution
For a long-term solution, it might be worth considering opt-in support for circular axes, e.g.:
bounds_to_vertices(..., circular_period=360.0, start=None)
With circular_period
set, cf-xarray could:
- Detect circular monotonicity
- Rotate away from the seam
- Proceed safely as if the dimension were monotonic
While longitude (circular_period=360.0
) is the most common use case, the same approach could generalize to other periodic axes (e.g. angles, phases).
Why it is useful
- Users working with model output that mixes
0–360
and−180–180
conventions may encounterNotImplementedError
today and must manually normalize coordinates before downstream operations. - This affects packages such as xESMF, which rely on
bounds_to_vertices()
but do not implement detection/normalization for circular axes. - I’ve opened a related xESMF issue for visibility: [Bug]
UnboundLocalError
when longitude crosses 0° in 0–360 grids (cf-xarray #594) pangeo-data/xESMF#454
Metadata
Metadata
Assignees
Labels
No labels