Fixes
Targeted fixes for the most frustrating Python GIS errors — from a failed install to a batch job that stops at file seven.
Python GIS errors tend to fall into a small number of repeating patterns. A CRS mismatch silently breaks a spatial join. A Fiona import error stops GeoPandas from loading entirely. A memory error crashes the script halfway through a large dataset. These guides diagnose the root cause and give you a concrete fix.
The collection now follows the learning paths all the way into production. Alongside the classic GeoPandas errors you will find the failures that only appear once a workflow runs unattended: a batch loop that dies on one bad file, outputs that overwrite each other, a scheduled script that works in your terminal and not from cron, a YAML config that will not load, a pipeline that reports success while producing nothing, and PyQGIS scripts that segfault or return an empty layer.
Each guide explains why the error happens — not just what command to run. Understanding the cause means you can avoid the same problem next time and adapt the fix to slightly different situations. If you are hitting an error you have not seen before, start with the guide closest to your symptoms.
Browse by topic
The fastest way in. Each topic page pairs these fixes with the concepts that explain them and the tasks they interrupt.
- Getting started Fundamentals 3 fixes
- Files & formats Fundamentals 11 fixes
- Geometry & topology Geometry & space 7 fixes
- CRS & projections Geometry & space 10 fixes
- Joins & relationships Geometry & space 4 fixes
- Data cleaning Analysis 8 fixes
- Raster & rasterio Analysis 4 fixes
- Maps & visualisation Analysis 5 fixes
- Batch processing Production 7 fixes
- Pipelines & automation Production 8 fixes
- Performance & scale Production 8 fixes
- Testing, CI & Docker Production 5 fixes
- QGIS & PyQGIS Tools 6 fixes
- PostGIS & databases Tools 4 fixes
Or follow a learning path
Curated routes in the order that builds on itself — concepts first, then each task, then the errors it produces.
-
Raster Analysis
Read, reproject, clip and summarise raster data in Python.
4 of its 14 steps are fixes → -
Spatial SQL & PostGIS
Move the heavy lifting from Python into the database.
4 of its 15 steps are fixes → -
Making Maps
Turn a GeoDataFrame into a map someone else can read.
3 of its 13 steps are fixes → -
GIS Data Cleaning
Turn messy spatial data into analysis-ready datasets.
13 of its 33 steps are fixes → -
Batch Processing
Process many files at once, reliably.
5 of its 26 steps are fixes → -
Automation & Pipelines
Build repeatable, config-driven GIS pipelines.
5 of its 26 steps are fixes → -
QGIS Automation
Automate QGIS with PyQGIS and Processing models.
6 of its 25 steps are fixes →
Every fix, A–Z
58 guides in total. Showing 1–30, page 1 of 2.
- Batch GIS Job Slows Down and Runs Out of Memory: How to Fix It batch job memory leak python
- Batch Job Gives Different Results Each Run: How to Fix It gis batch non deterministic output
- Batch Output Files Keep Overwriting Each Other: How to Fix It batch output files overwriting
- Batch Script Stops at the First Bad File: How to Keep It Running batch script stops on error
- buffer(0) Does Not Fix My Invalid Geometry: What to Do Instead buffer 0 not fixing geometry
- Cannot Transform Naive Geometries to CRS: How to Fix It in GeoPandas cannot transform naive geometries
- CRS Not Found Error in GeoPandas: Causes and Fixes crs not found geopandas
- Fiona ImportError When Using GeoPandas: How to Fix It fiona importerror geopandas
- Fixing Memory Errors in GeoPandas When Working with Large Files geopandas memory error
- Garbled Attribute Text and UnicodeDecodeError from a Shapefile: How to Fix Encoding shapefile encoding error python
- GDAL and GeoPandas Fail Inside Docker: How to Fix the Build geopandas gdal docker build fails
- GeoPandas .apply() Takes Hours: How to Fix It geopandas apply slow
- GeoPandas "Columns Overlap but No Suffix Specified" Error: How to Fix It columns overlap but no suffix specified
- GeoPandas "Geometry Is in a Geographic CRS" Warning: How to Fix It geopandas geographic crs warning
- GeoPandas "No Geometry Column" Error: How to Fix It geopandas no geometry column
- GeoPandas Cannot Connect to PostGIS: How to Fix It geopandas postgis connection error
- GeoPandas Installation Fails: How to Fix Common Errors geopandas installation error
- GeoPandas Merge Returns NaN or No Matches: How to Fix It geopandas merge no matches
- GeoPandas Not Reading Shapefile: Common Causes and Fixes geopandas not reading shapefile
- GeoPandas Spatial Join Returns Duplicate Rows: How to Fix It geopandas spatial join duplicates
- GeoPandas to_file() Fails on a Column Type: How to Fix It geopandas to_file field type error
- GIS Tests Pass Locally but Fail in CI: How to Fix It gis tests fail in ci
- GIS Tests Run Out of Memory or Time Out in CI: How to Fix It ci out of memory gis tests
- How to Fix "ModuleNotFoundError: No module named 'qgis'" no module named qgis
- How to Fix CRS Mismatch in GeoPandas crs mismatch geopandas
- How to Fix Invalid Geometries in Python (GeoPandas) invalid geometries geopandas
- How to Speed Up GeoPandas: Tips for Large Datasets geopandas performance optimization
- Mixed Geometry Types Error When Saving a GeoDataFrame: How to Fix It mixed geometry types geopandas
- ModuleNotFoundError in a Scheduled GIS Job: Fixing the Wrong Python Environment modulenotfounderror scheduled script
- My Cleaned Layer Has More Rows Than the Original: How to Fix It geopandas more rows after cleaning