Expand description
GeoParquet Driver for OxiGDAL
This crate provides a pure Rust implementation of the GeoParquet 1.1 specification, enabling efficient reading and writing of geospatial vector data in Apache Parquet format.
Files written by older OxiGDAL versions declaring GeoParquet 1.0.0 are
still accepted on read — see metadata::GeoParquetMetadata::validate for
the version compatibility policy.
§Features
- Full GeoParquet 1.1 specification support
- WKB geometry encoding/decoding for all geometry types (default writer path)
- GeoArrow native encodings: Point, LineString, Polygon, MultiPoint,
MultiLineString, MultiPolygon (opt-in via
writer::GeoParquetWriterBuilder::encoding) - GeoParquet 1.1
covering.bboxcolumn detection + row-group pruning +ArrowPredicatefast-path (skip WKB decode entirely when bbox cols exist) - Per-column / per-row-group statistics exposure via
statistics::ColumnStatistics - Spatial partitioning and indexing for efficient queries
- Zero-copy operations using Apache Arrow
- Compression support (Snappy, Gzip, Zstd, LZ4, Brotli)
- Spatial statistics and bounding box metadata
- Row group-level spatial filtering
§Example
use oxigdal_geoparquet::{GeoParquetReader, GeoParquetWriter};
use oxigdal_geoparquet::metadata::{Crs, GeometryColumnMetadata};
use oxigdal_geoparquet::geometry::{Point, Geometry};
// Create a writer with WGS84 CRS
let metadata = GeometryColumnMetadata::new_wkb()
.with_crs(Crs::wgs84());
let mut writer = GeoParquetWriter::new("output.parquet", "geometry", metadata)?;
// Add geometries
let point = Geometry::Point(Point::new_2d(-122.4, 37.8));
writer.add_geometry(&point)?;
// Finalize the file
writer.finish()?;
// Read the file
let reader = GeoParquetReader::open("output.parquet")?;
let metadata = reader.metadata();
println!("CRS: {:?}", metadata.primary_column_metadata()?.crs);Re-exports§
pub use covering::BboxColumns;pub use error::GeoParquetError;pub use error::Result;pub use filter::AttributePredicates;pub use filter::ColumnCondition;pub use filter::CompareOp;pub use filter::LogicOp;pub use metadata::CoordDim;pub use metadata::Crs;pub use metadata::EncodingType;pub use metadata::GeoParquetMetadata;pub use metadata::GeometryColumnMetadata;pub use predicate::AttributeFilter;pub use predicate::ScalarValue;pub use statistics::ColumnStatistics;
Modules§
- arrow_
ext - Arrow schema extensions for GeoParquet
- covering
- GeoParquet 1.1 covering.bbox column detection and row-group statistics extraction.
- error
- Error types for GeoParquet operations
- filter
- Row-level spatial and attribute filtering for GeoParquet.
- geometry
- Geometry encoding and decoding
- metadata
- GeoParquet metadata structures
- partitioning
- Partitioned GeoParquet dataset support
- predicate
- Attribute predicate pushdown for GeoParquet readers.
- spatial
- Spatial partitioning and indexing for GeoParquet
- statistics
- Public API for exposing per-column / per-row-group Parquet statistics.
Structs§
- GeoParquet
Reader - GeoParquet file reader
- GeoParquet
Writer - GeoParquet file writer
- GeoParquet
Writer Builder - Builder for creating a GeoParquet writer with advanced options
Enums§
- Compression
Type - Compression type for GeoParquet files
Constants§
- GEOPARQUET_
VERSION - GeoParquet specification version emitted by writers in this crate.
- VERSION
- Crate version