Skip to content

Supported I/O Formats

GISPulse uses PyOGRIO for reading and writing. Format detection is automatic based on the file extension.

bash
# List available formats on your installation
gispulse formats

Vector formats

ExtensionFormatReadWriteNotes
.gpkgGeoPackageyesyesRecommended — multi-layer, styles, performant
.fgbFlatGeobufyesyesUltra-fast for large volumes
.parquetGeoParquetyesyesOptimal for wide tabular data
.geojsonGeoJSONyesyesWeb standard, interoperable
.geojsonlGeoJSON LinesyesyesStreaming, large volumes

Common formats

ExtensionFormatReadWriteNotes
.shpESRI ShapefileyesyesLegacy — prefer GPKG
.csvCSV (with lat/lon columns)yesyesNo native geometry
.dxfAutoCAD DXFyesyesCAD
.kmlKML / KMZyesnoGoogle Earth
.gmlGMLyesyesOGC standard
.gpxGPXyesnoGPS tracks

Database formats

FormatReadWriteNotes
PostGISyesyesVia GISPULSE_DSN (Pro)
SpatiaLiteyesyesPortable mode
ESRI GeoDatabase (.gdb)yesnoRead-only
OGC WFSyesnoVia WFS URL

Raster formats (with gispulse[raster])

ExtensionFormatReadWrite
.tif, .tiffGeoTIFFyesyes
.vrtGDAL VRTyesno
.imgERDAS Imagineyesno
.ncNetCDFyesno

Automatic detection

GISPulse detects the format from the extension:

bash
# Format detected automatically
gispulse run input.fgb --rules rules.json -o output.gpkg
gispulse run input.geojson --rules rules.json -o output.fgb
gispulse run input.shp --rules rules.json -o output.parquet

If the file has no recognized extension, force it with --layer and --crs.

Format recommendations

For large volumes (> 100,000 features)

  1. FlatGeobuf (.fgb) — fastest read/write, spatially indexed
  2. GeoParquet (.parquet) — excellent when you have dozens of attribute columns
  3. GPKG — versatile, supports styles

For GIS desktop interoperability

  • GeoPackage (.gpkg) — supports QGIS styles (QML) and SLD, multi-layer
  • GISPulse automatically copies styles during an --all-layers pipeline

For web / API

  • GeoJSON — universal standard, human-readable
  • FlatGeobuf — performant streaming for large client-side datasets

For "modern" spatial data

  • GeoParquet — compatible with DuckDB, Pandas, Arrow, cloud-native

Multi-layer (GPKG)

GeoPackage supports multiple layers in a single file:

bash
# Process a specific layer
gispulse run project.gpkg --rules rules.json -o output.gpkg --layer buildings

# Process all layers (styles copied)
gispulse run project.gpkg --rules rules.json -o output.gpkg --all-layers
bash
# Inspect layers in a GPKG
gispulse layers project.gpkg

3 layer(s):
  - parcels
  - buildings
  - roads

Published under AGPL-3.0 license.