-
Notifications
You must be signed in to change notification settings - Fork 6
Description
In both GRIBB and NetCDF there is a need to extract CRS data. e.g:
https://discourse.julialang.org/t/extracting-projection-from-grib-files/109818/3
It would be good if CommonDataModel.jl handled this, probably adding methods to GeoInterface.crs as function to retrieve it.
I am aware of the difficulty (and in edge-cases actual impossibility) of converting CF standard crs data to Well Known Text or Proj. But we should try. Currently the workaround is to load and call ArchGDAL.jl or GMT.jl to get the crs manually, but an additional large binary dependency for this small task is less than ideal.
I made an attempt at starting this a few years ago:
https://github.com/rafaqz/Rasters.jl/blob/netcdf_crs/src/sources/ncdatasets.jl#L407-L508
But really something like that should live here or in a package similar to CFTime.jl - like CFCRS.jl... that CommonDataModel.jl could also depend on.
This is a good guideline for an implementation:
https://trac.osgeo.org/gdal/wiki/NetCDF_ProjectionTestingStatus
(notice even GDAL has an incomplete implementation - but it should take care of 99.9% of the use cases)
One stop-gap solution is to add an extension for ArchGDAL here and just call it on the files when GeoInterface.crs is called on any AbstractVariable.