Implement Zarr spatial and proj conventions support
Draft for Zarr conventions support according to plan in #882
- [x] Closes #882
- [x] Tests added
- [x] Fully documented, including
docs/history.rstfor all changes anddocs/rioxarray.rstfor new API
If convention is None it should attempt to read both with preference to CF.
I have found comparing enums using is instead of == to be more performant in some scenarios.
In general, I would like to see only the minimum code needed for rio.write_crs and rio.write_tranform added to this MR. All other code can be discussed later. The reason is to simplify code maintenance and the diff in this PR.
This process may even benefit from breaking down the pieces into separate MRs:
- MR 1: Add convention option & move CF to
_conventions/cf.py - MR 2: Reading Zarr CRS, Transform, spatial
- MR 3: Writing Zarr CRS
- MR 4: Writing Zarr Transform
- MR ...: Other Zarr convention components
Dividing it up this way will help each component get the review it needs. But, we can stick to a big MR if you prefer,