Tools
The other software in a Python GIS stack, driven from Python.
GeoPandas is not the only engine in a Python GIS stack, and this section is about driving the other three from Python rather than instead of it.
Each is better than a GeoDataFrame at exactly one thing. QGIS has a very large library of tested algorithms and the only good answer for map layouts. PostGIS is the right place for data several people share, that outgrows memory, and that needs an index maintained for it. DuckDB queries files — including remote Parquet — at analytic speed with no server and no load step. None of them replaces the others, and most mature pipelines use two.
The pages below cover what each one is for, how to drive it from Python, and the specific failures each brings: environment problems in PyQGIS, name resolution and permissions in PostGIS, and the places DuckDB’s spatial support stops.
Topics in Tools
Each topic page brings that subject's concepts, how-to guides and fixes onto one page.
- QGIS & PyQGIS Driving QGIS from Python: Processing algorithms, layouts, plugins and headless runs.
- PostGIS & databases Spatial data in Postgres: connecting, querying, and writing results back.
- DuckDB & analytic SQL A spatial database with no server: querying GeoParquet, joining millions of rows, and where it beats a GeoDataFrame.