jorisvandenbossche commented on code in PR #560: URL: https://github.com/apache/parquet-format/pull/560#discussion_r3028525303
########## Geospatial.md: ########## @@ -44,8 +44,57 @@ locations on Earth. The default CRS `OGC:CRS84` means that the geospatial features must be stored in the order of longitude/latitude based on the WGS84 datum. -Custom CRS can be specified by a string value. It is recommended to use an -identifier-based approach like [Spatial reference identifier][srid]. +Non-default CRS values are specified by any case insensitive string that uniquely identifies a coordinate reference system associated with this type. +To maximize interoperability, suggested (but not limited to) formats for CRS are: +* `authority:code` - where `authority` represents some well known authorities, and `code` is the code used by the authority to identify the CRS - examples are `OGC:CRS84`, `OGC:CRS83`, `OGC:CRS27`, `EPSG:4326`, `EPSG:3857`. See [https://spatialreference.org/](https://spatialreference.org/) for definitions of coordinate reference systems provided by some well known authorities. +* `srid:identifier` - A reference using a [Spatial reference identifier (SRID)](https://en.wikipedia.org/wiki/Spatial_reference_system#Identifier), where identifier is the numeric SRID value. For example: `SRID:0`. +* `projjson:table_property_name` - where `table_property_name` is a reference to a CRS definition in [PROJJSON](https://proj.org/en/stable/specifications/projjson.html), stored in a file level key/value metadata key or table property. +* `projjson` - A complete CRS definition embedded directly using the [PROJJSON](https://proj.org/en/stable/specifications/projjson.html) specification. Example for `OGC:CRS83`: Review Comment: At the risk of igniting a longer discussion, but since in practice most tools/libraries that have already implemented those native geo types are defaulting to the inline PROJJSON, we might want to put this first in the list? ########## Geospatial.md: ########## @@ -44,8 +44,57 @@ locations on Earth. The default CRS `OGC:CRS84` means that the geospatial features must be stored in the order of longitude/latitude based on the WGS84 datum. -Custom CRS can be specified by a string value. It is recommended to use an -identifier-based approach like [Spatial reference identifier][srid]. +Non-default CRS values are specified by any case insensitive string that uniquely identifies a coordinate reference system associated with this type. Review Comment: Is there a reason to include the "case insensitive" part here? AFAIK the projjson keys are certainly case sensitive Or maybe only mention this for the relevant options, as the "authority" in `authority:code` can indeed be case insensitive? ########## Geospatial.md: ########## @@ -44,8 +44,57 @@ locations on Earth. The default CRS `OGC:CRS84` means that the geospatial features must be stored in the order of longitude/latitude based on the WGS84 datum. -Custom CRS can be specified by a string value. It is recommended to use an -identifier-based approach like [Spatial reference identifier][srid]. +Non-default CRS values are specified by any case insensitive string that uniquely identifies a coordinate reference system associated with this type. +To maximize interoperability, suggested (but not limited to) formats for CRS are: +* `authority:code` - where `authority` represents some well known authorities, and `code` is the code used by the authority to identify the CRS - examples are `OGC:CRS84`, `OGC:CRS83`, `OGC:CRS27`, `EPSG:4326`, `EPSG:3857`. See [https://spatialreference.org/](https://spatialreference.org/) for definitions of coordinate reference systems provided by some well known authorities. +* `srid:identifier` - A reference using a [Spatial reference identifier (SRID)](https://en.wikipedia.org/wiki/Spatial_reference_system#Identifier), where identifier is the numeric SRID value. For example: `SRID:0`. +* `projjson:table_property_name` - where `table_property_name` is a reference to a CRS definition in [PROJJSON](https://proj.org/en/stable/specifications/projjson.html), stored in a file level key/value metadata key or table property. +* `projjson` - A complete CRS definition embedded directly using the [PROJJSON](https://proj.org/en/stable/specifications/projjson.html) specification. Example for `OGC:CRS83`: Review Comment: It might be clear from the fact that the custom CRS value should be a string, but the example below showing the JSON _object_ might make it confusing again. So wondering if there is some formulation to make it clearer this is the string representation of the JSON to be used here. (I know I had made that mistake in the past for the GeoParquet spec, although there this crs value is included inside a json metadata key:value store as well, so there was this potential ambiguity. That might not actually exist here, since it is a string keyword of the type) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
