Adopt pyproj.CRS
bjlittle opened this issue · 3 comments
✨ Feature Request
pyproj
has advanced hugely recently and in directions that completely favour iris
with regards to CRS support and particularly CF awareness, see Managing CRS to and from CF.
This pyproj
capability is central to geovista
projection support.
We should adopt pyproj
as a replacement to our stale and aging iris.coord_systems
implementation, which is simply accruing technical debt as time passes.
Up-vote this issue if you want to see this happen 😉
We'll need to consider this carefully in order not to introduce breaking changes (if possible), but we can consider our options once we have a quorum of agreement that this is a sound approach to adopt.
Having looked into this a bit, I think the biggest current blocker is that producing a Cartopy CRS or Projection from a pyproj CRS isn't straightforward - the only route to e.g. create a ccrs.PlateCarree
is to go via a proj4 string (and through ccrs.Globe
), which is potentially lossy and loses a lot of the benefits of having a pyproj CRS sat under the hood. Is it worth advocating to Cartopy about alternative methods for building their classes that support more up-to-date proj features?
Discussed in peloton, consensus was that this will need an owner to bring this forward.