How-To Guides
Concrete, step-by-step solutions for the most common Python GIS tasks — from loading data to producing analysis outputs.
These guides are built around specific, real-world tasks. Each one starts with a clear problem statement, gives you a quick working answer, and then walks through a complete solution with code you can copy and adapt.
Tasks range from the everyday — reading a shapefile, reprojecting layers, filtering by attribute — to more complex operations like spatial joins, buffer analysis, fishnet grids, and connecting GeoPandas directly to PostGIS.
Every guide is self-contained. You don't need to read them in order. Search for the task you need, follow the steps, and get back to your work.
What you can do
Pick a topic to filter the guides below.
Popular guides
The most commonly needed GIS tasks in Python, each with a full step-by-step walkthrough.
-
How to Aggregate Spatial Data by Region in GeoPandas
aggregate spatial data geopandas
Read guide → -
How to Automate GIS Workflows with Python
automate gis workflow python
Read guide → -
How to Batch Clip Many Layers to a Single Boundary in Python
batch clip shapefiles boundary python geopandas
Read guide → -
How to Batch Convert Shapefiles to GeoPackage in Python
batch convert shapefile to geopackage python
Read guide → -
How to Batch Export a GeoDataFrame to Multiple Formats in Python
export geodataframe multiple formats python
Read guide → -
How to Batch Process a Folder of GIS Files in Python: The Complete Workflow
batch process gis files python
Read guide →
All how-to guides
49 guides covering the full range of everyday Python GIS tasks.
- How to Aggregate Spatial Data by Region in GeoPandas aggregate spatial data geopandas
- How to Automate GIS Workflows with Python automate gis workflow python
- How to Batch Clip Many Layers to a Single Boundary in Python batch clip shapefiles boundary python geopandas
- How to Batch Convert Shapefiles to GeoPackage in Python batch convert shapefile to geopackage python
- How to Batch Export a GeoDataFrame to Multiple Formats in Python export geodataframe multiple formats python
- How to Batch Process a Folder of GIS Files in Python: The Complete Workflow batch process gis files python
- How to Batch Process Multiple Shapefiles in Python batch process shapefiles python
- How to Batch Process Rasters with Rasterio in Python batch process rasters rasterio python
- How to Build a Repeatable Data-Cleaning Report in GeoPandas data cleaning report geopandas
- How to Build a Resumable Batch GIS Job in Python resumable batch job python gis
- How to Calculate Area and Distance in GeoPandas (Correctly) calculate area geopandas
- How to Clean and Normalise Attribute Columns in a GeoDataFrame clean attribute columns geodataframe
- How to Clean Messy CSV Coordinates into a Reliable GeoDataFrame clean csv coordinates
- How to Clip Spatial Data in Python with GeoPandas clip shapefile python geopandas
- How to Connect GeoPandas to PostGIS geopandas postgis connection
- How to Convert a Raster to a Vector in Python raster to vector python
- How to Convert Points to Lines in GeoPandas points to line geopandas
- How to Count Points in Polygons with GeoPandas count points in polygon geopandas
- How to Create a Choropleth Map in Python with GeoPandas choropleth map geopandas
- How to Create a Fishnet Grid in Python with GeoPandas fishnet grid python geopandas
- How to Create Buffers in GeoPandas for Spatial Analysis buffer analysis geopandas
- How to Dissolve Polygons in Python (GeoPandas) dissolve polygons geopandas
- How to Export GeoJSON in Python with GeoPandas export geojson geopandas
- How to Extract Raster Values at Point Locations with Rasterio extract raster values rasterio
- How to Filter Spatial Data in Python Using GeoPandas filter geopandas data
- How to Find and Remove Duplicate Geometries in GeoPandas remove duplicate geometries geopandas
- How to Find the Nearest Point in GeoPandas nearest point geopandas
- How to Get Polygon Centroids in GeoPandas polygon centroid geopandas
- How to Handle Missing and Null Values in Spatial Datasets in Python handle missing values spatial data python
- How to Join Attribute Data to a GeoDataFrame in Python join attribute data geopandas
- How to Log and Summarise Errors in a Batch GIS Job in Python python logging batch gis errors report
- How to Merge Many Shapefiles into One File in Python merge multiple shapefiles python geopandas
- How to Perform a Spatial Join in Python (GeoPandas) spatial join geopandas
- How to Plot Maps in Python with GeoPandas and Matplotlib plot map geopandas matplotlib
- How to Process GIS Files in Nested Subfolders and Mirror the Output Tree process files subfolders python recursive mirror
- How to Read a CSV with Coordinates as a GeoDataFrame csv to geodataframe python
- How to Read a Shapefile in Python with GeoPandas read shapefile geopandas
- How to Read and Write GeoPackage Files in Python geopackage python geopandas
- How to Read GeoJSON in Python with GeoPandas read geojson python geopandas
- How to Remove Null and Empty Geometries in GeoPandas remove null geometries geopandas
- How to Reproject Spatial Data in Python (GeoPandas) reproject spatial data geopandas
- How to Save a Map as an Image in Python with Matplotlib save map image matplotlib python
- How to Select Features by Location in GeoPandas select by location geopandas
- How to Simplify Geometry in Python with GeoPandas and Shapely simplify geometry geopandas
- How to Snap and Align Geometries to Fix Slivers and Gaps in Python snap geometries fix slivers python
- How to Speed Up Batch GIS Jobs with Parallel Processing in Python parallel processing gis python batch
- How to Standardise and Repair CRS Across a Folder of Files in Python standardise crs across files python
- How to Validate a GeoDataFrame Against a Schema Before Analysis validate geodataframe schema python
- The Python GIS Data Cleaning Checklist: From Raw Download to Analysis-Ready gis data cleaning python