Upload GeoParquet file to PostGIS

Last updated on August 20, 2022.

GeoParquet is a spatial extension to Apache Parquet that can store geospatial data. As a new file format, not many software suites are compatible with it. Importing it into your spatial database (PostgreSQL/PostGIS) normally requires downloading command line tools.

CLI tools dependent on GDAL can usually process GeoParquet like ogr2ogr. To streamline the process, I wrote a script to import and convert GeoParquet files to PostGIS and SQL import scripts. This makes it way easier to import it into your spatial database.

Here, you can upload your GeoParquet file and download it as an .sql file (good for SpatiaLite and PostGIS). You can directly upload this .sql file to your database on localhost with psql or you can have Bunting manage your instance.

GeoParquet Format Support:

  • CRS automatically detected (WGS84 default)
  • Uses Apache Arrow

Once the file is converted to PostGIS, you can either download the file as .sql and upload to your database with psql, or host the file with us for free. This file fits on our free plan, which is under 128MB of storage and shared compute time. Larger datasets can be stored for $2.50/GB/month.

Uploading to PostGIS (self-host)

To load your .psql file into your PostGIS instance (local, Amazon RDS, or other), you can use the psql command line tool.

psql -U postgres -h localhost -d postgres -f downloaded_file.sql

Database Connection (managed)

If you choose Bunting as your host, connect to the PostGIS database with your username and password:

psql -W -U username --dbname data_gis \
 -h pgexample.gis.buntinglabs.com
Password:
password
Done!

Connection can also be made through GeoDjango or GeoPandas, like so:

from sqlalchemy import create_engine
db_connection_url = "postgresql://username:[email protected]:5432/data_gis"
con = create_engine(db_connection_url)  
sql = "SELECT geom, highway FROM target_table"
gdf = geopandas.GeoDataFrame.from_postgis(sql, con)