GIS Data Cleaning

Turn messy spatial data into analysis-ready datasets.

The data cleaning path, from what makes a geometry valid to a repeatable cleaning report. messy download in, analysis-ready dataset out1what valid meansthe OGC rules2geometry repairsslivers, gaps, duplicates3attributes & CRSacross a whole folder4a report that rerunsrules, not countsIt ends with the report, because a cleaning decision nobody recorded is one nobody can repeat

Real-world spatial data is messy: invalid geometries, missing or wrong CRS, duplicate features, truncated columns, and topology errors. These guides walk through cleaning and validating spatial data in Python — step by step, with runnable code — so your analysis starts from a reliable foundation.

The longest path on the site, and the one most worth working through in order. The concepts at the start define what "clean" means — valid geometry, consistent CRS, normalised attributes, resolved topology — and the guides after them are one defect each. It ends with a report, because a cleaning decision nobody wrote down is one nobody can repeat.

The full path, in order

The concepts underneath the work, then each task, then the errors that task produces. Work down, or jump to the step you need.

  1. What Makes a Geometry Valid? The OGC Rules Explained valid geometry rules gis 🧭 Concept
  2. Spatial Data Quality: The Six Dimensions That Matter spatial data quality dimensions 🧭 Concept
  3. WKT, WKB and GeoJSON: How Geometry Is Actually Stored wkt wkb geojson difference 🧭 Concept
  4. Coordinate Precision and Floating Point in GIS Explained coordinate precision gis floating point 🧭 Concept
  5. How to Find and Remove Duplicate Geometries in GeoPandas remove duplicate geometries geopandas ⚙️ How-To
  6. How to Standardise and Repair CRS Across a Folder of Files in Python standardise crs across files python ⚙️ How-To
  7. How to Clean and Normalise Attribute Columns in a GeoDataFrame clean attribute columns geodataframe ⚙️ How-To
  8. How to Handle Missing and Null Values in Spatial Datasets in Python handle missing values spatial data python ⚙️ How-To
  9. How to Snap and Align Geometries to Fix Slivers and Gaps in Python snap geometries fix slivers python ⚙️ How-To
  10. How to Validate a GeoDataFrame Against a Schema Before Analysis validate geodataframe schema python ⚙️ How-To
  11. How to Clean Messy CSV Coordinates into a Reliable GeoDataFrame clean csv coordinates ⚙️ How-To
  12. How to Build a Repeatable Data-Cleaning Report in GeoPandas data cleaning report geopandas ⚙️ How-To
  13. How to Remove Null and Empty Geometries in GeoPandas remove null geometries geopandas ⚙️ How-To
  14. How to Split Multipart Geometries into Single Parts in GeoPandas explode multipart geometries geopandas ⚙️ How-To
  15. How to Fuzzy-Match Place Names When Joining Spatial Data in Python fuzzy match place names python ⚙️ How-To
  16. How to Find and Remove Spatial Outliers in a Point Dataset remove spatial outliers python ⚙️ How-To
  17. How to Clean and Standardise Date Columns in Spatial Data clean date columns spatial data python ⚙️ How-To
  18. How to Reduce GIS File Size in Python Without Wrecking the Data reduce gis file size python ⚙️ How-To
  19. How to Fix Invalid Geometries in Python (GeoPandas) invalid geometries geopandas 🔧 Fix
  20. How to Fix CRS Mismatch in GeoPandas crs mismatch geopandas 🔧 Fix
  21. Cannot Transform Naive Geometries to CRS: How to Fix It in GeoPandas cannot transform naive geometries 🔧 Fix
  22. Why Are My Shapefile Column Names Truncated? How to Fix It shapefile column names truncated 🔧 Fix
  23. GeoPandas "No Geometry Column" Error: How to Fix It geopandas no geometry column 🔧 Fix
  24. Shapely TopologyException: Found Non-Noded Intersection (How to Fix) shapely topologyexception 🔧 Fix
  25. GeoPandas "Columns Overlap but No Suffix Specified" Error: How to Fix It columns overlap but no suffix specified 🔧 Fix
  26. GeoPandas Spatial Join Returns Duplicate Rows: How to Fix It geopandas spatial join duplicates 🔧 Fix
  27. buffer(0) Does Not Fix My Invalid Geometry: What to Do Instead buffer 0 not fixing geometry 🔧 Fix
  28. Garbled Attribute Text and UnicodeDecodeError from a Shapefile: How to Fix Encoding shapefile encoding error python 🔧 Fix
  29. GeoPandas to_file() Fails on a Column Type: How to Fix It geopandas to_file field type error 🔧 Fix
  30. Mixed Geometry Types Error When Saving a GeoDataFrame: How to Fix It mixed geometry types geopandas 🔧 Fix
  31. My Points Plot in the Ocean: Fixing Swapped Latitude and Longitude points plotting in the ocean geopandas 🔧 Fix

Topics this path covers

A path is a route; a topic is everything the site has on a subject. Open a topic to see the guides this path skips.

Other ways in