@@ -13,13 +13,15 @@ This RFC describes the design and implementation of these types in PyIceberg.
1313## Scope
1414
1515** In scope:**
16+
1617- ` geometry(C) ` and ` geography(C, A) ` primitive type definitions
1718- Type parsing and serialization (round-trip support)
1819- Avro mapping (WKB bytes)
1920- PyArrow/Parquet conversion (with version-aware fallback)
2021- Format version enforcement (v3 required)
2122
2223** Out of scope (future work):**
24+
2325- Spatial predicate pushdown (e.g., ST_Contains, ST_Intersects)
2426- WKB/WKT conversion (requires external dependencies)
2527- Geometry/geography bounds metrics
@@ -36,9 +38,11 @@ This RFC describes the design and implementation of these types in PyIceberg.
3638### Type Parameters
3739
3840** GeometryType:**
41+
3942- ` crs ` (string): Coordinate Reference System, defaults to ` "OGC:CRS84" `
4043
4144** GeographyType:**
45+
4246- ` crs ` (string): Coordinate Reference System, defaults to ` "OGC:CRS84" `
4347- ` algorithm ` (string): Geographic algorithm, defaults to ` "spherical" `
4448
@@ -74,11 +78,13 @@ Both geometry and geography types map to Avro `bytes` type, consistent with `Bin
7478### PyArrow/Parquet Mapping
7579
7680** With geoarrow-pyarrow installed:**
81+
7782- Geometry types convert to GeoArrow WKB extension type with CRS metadata
7883- Geography types convert to GeoArrow WKB extension type with CRS and edge type metadata
7984- Uses ` geoarrow.pyarrow.wkb().with_crs() ` and ` .with_edge_type() ` for full GeoArrow compatibility
8085
8186** Without geoarrow-pyarrow:**
87+
8288- Geometry and geography types fall back to ` pa.large_binary() `
8389- This provides WKB storage without GEO logical type metadata
8490
@@ -101,9 +107,11 @@ None. These are new types that do not affect existing functionality.
101107## Dependency/Versioning
102108
103109** Required:**
110+
104111- PyIceberg core (no new dependencies)
105112
106113** Optional for full functionality:**
114+
107115- PyArrow 21.0.0+ for native Parquet GEO logical types
108116
109117## Testing Strategy
0 commit comments