Tools

The other software in a Python GIS stack, driven from Python.

Three engines driven from Python, and the job each one is actually for. three engines, one driverPythonQGISalgorithms, layoutsPostGISshared, indexed, liveDuckDBfiles, at analytic speedNone of the three replaces GeoPandas; each one is better than it at exactly one thing

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.

Other areas