I/O¶
Supported formats¶
Format |
Read |
Write |
GPU-accelerated |
|---|---|---|---|
GeoParquet |
|
|
WKB decode/encode, GeoArrow codec, GPU scan where available |
GeoArrow / Feather |
|
|
Native GeoArrow codec |
GeoJSON |
|
|
GPU byte-classify geometry parser plus narrowed host property decode |
Shapefile |
|
|
Direct SHP/DBF native path or Arrow + GPU WKB bridge |
FlatGeobuf |
|
|
Direct FlatBuffer GPU decode for eligible reads, native Arrow/WKB write boundary |
GeoPackage |
|
|
Shared Arrow + GPU WKB native boundary for supported requests |
GeoJSONSeq |
|
|
Rewritten to GPU GeoJSON parser for eligible reads |
OSM PBF |
|
driver-dependent fallback |
Native full-data path and parallel supported-layer public reads |
PostGIS |
|
|
ADBC/WKB bridge when available |
Reading files¶
import vibespatial
# Auto-detect format
gdf = vibespatial.read_file("data.gpkg")
# GeoParquet (recommended for large datasets)
gdf = vibespatial.read_parquet("data.parquet")
# PostGIS
from sqlalchemy import create_engine
engine = create_engine("postgresql://user:pass@host/db")
gdf = vibespatial.read_postgis("SELECT * FROM my_table", engine)
Writing files¶
gdf.to_file("output.gpkg", driver="GPKG")
gdf.to_parquet("output.parquet")
gdf.to_postgis("my_table", engine)
GeoParquet performance¶
GeoParquet is the recommended format for large datasets. vibeSpatial’s GeoParquet reader:
Plans row group selection based on spatial metadata
Decodes WKB geometry on GPU when available
Produces device-resident
OwnedGeometryArraywithout host round-trips
GeoJSON GPU acceleration¶
For eligible unfiltered GeoJSON reads, vibeSpatial uses a GPU byte-classify parser (ADR-0038) whenever CUDA is available. The parser reads file bytes to device, classifies JSON structure, detects geometry families, extracts coordinates, and assembles Point, LineString, and Polygon geometries directly into owned device buffers. Property extraction is narrowed to property-object payloads and remains host-side today.
When kvikio is installed, file-to-device transfer uses parallel POSIX I/O with pinned bounce buffers for additional throughput.