GIS Data Cleaning

Turn messy spatial data into analysis-ready datasets.

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.

33 Steps in this path

The full path, in order

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