Skip to content

[C++][Parquet] Align Parquet geometry/geography CRS handling with arrow-rs and Parquet spec #55598

Open

Description

@paleolimbot

Describe the bug, including details regarding any error messages, version, and platform.

The meaning of a "missing" CRS in the Parquet spec is different than a "missing" CRS in GeoArrow, which the Arrow Parquet implementation uses as the in/out Arrow type for the Parquet reader/writer. Currently a "missing" GeoArrow CRS is mapped into an omitted Parquet CRS, which is interpreted as lon/lat (which is not what the GeoArrow producer intended). The "omitted" GeoArrow behaviour originates from GeoPandas (None CRS) and GeoParquet (explicit null CRS), and maps to the concept of a 0 SRID in PostGIS and GeoPackage. GeoPandas users use this, for example, to extract geometries from microscopy images where there's no world mapping to the coordinates.

A recent parquet-format PR ( apache/parquet-format#560 ) updated the CRS reccomendations to explicitly include SRID:0, noting that it is the primary motivation for srid: in the first place. GeoParquet 2.0 ( https://github.com/opengeospatial/geoparquet/blob/main/format-specs/geoparquet.md#L92-L105 ) makes the mapping between srid:0 and GeoParquet's null CRS explicit, and arrow-rs' GeoArrow-to-Parquet layer maps this explicitly.

I'll file a PR shortly implementing this!

Component(s)

C++, Parquet

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions