-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
What is your issue?
(From #5647 (comment)).
The current alignment logic (as refactored in #5692) requires that two compatible indexes (i.e., of the same type) must relate to one or more coordinates with matching names but also in a matching order.
For some multi-coordinate indexes like PandasMultiIndex this makes sense. However, for other multi-coordinate indexes (e.g., staggered grid indexes) the order of the coordinates doesn't matter much.
Possible options:
- Setting new Xarray indexes may reorder the coordinate variables, possibly via
Index.create_variables(), to ensure consistent order - Xarray indexes must implement a
Index.matching_keyabstract property in order to support re-indexing and alignment. - Take care of coordinate order (and maybe other things) inside
Index.joinandIndex.equals, e.g., forPandasMultiIndexmaybe reorder the levels beforehand.- pros: more flexible
- cons: not great to implicitly reorder levels if it's a costly operation?
- Find matching indexes using a two-passes approach: (1) group all indexes by dimension name and (2) check compatibility between the indexes listed in each group.