"Undefined Cartesian SRS" and units...
According to the GeoPackage specs, data should have an srs, and data in an "Undefined Cartesian SRS" should be saved with srs_id = -1: https://www.geopackage.org/spec/#r11. However, there is nothing mentioned about the units of this generic "Undefined Cartesian SRS".
In GDAL the "Undefined Cartesian SRS" is interpreted as using "meter" units, so when reading data, srs_id -1 is returned as an SRS having "meter" units. The other way around as well: when writing a Geopackage, if a wkt with an undefined cartesian wkt but (only) with "meter" units is used, this maps to srs_id -1.
In r-spatial (https://github.com/r-spatial/sf/issues/2049) the choice was made that when saving data without srs specified, a WKT is used that specifies the units to be "undefined". In GDAL, this leads to a "custom SRS" being saved in the GPKG, so an srs_id >= 100.000 instead of -1, which doesn't feel like being according to the GPKG specs?
Because we are implementing the same use case for GeoPandas GeoDataFrames with unknown srs, we are wondering, what is the best way to go about this?
xref: https://github.com/OSGeo/gdal/issues/9580 xref: https://github.com/geopandas/pyogrio/pull/368
Undefined CRS has also been considered within the JSON-FG work https://github.com/opengeospatial/ogc-feat-geo-json/issues/36 and GeoPackage standard was used as reference. As a result two Engineering CRSs were created, one for 2D and another for 3D
https://www.opengis.net/def/crs/OGC/0/Engineering2D https://www.opengis.net/def/crs/OGC/0/Engineering3D
Both are using metre as unit http://www.opengis.net/def/uom/UCUM/0/m
The OGC Public Comment phase for the JSON-FG standard is just started so please consider sending your comments about the uoM also there.
@edzer ?