<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>
    <loc>https://python-geospatial.com/</loc><lastmod>2026-06-19T10:30:18.140Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/</loc><lastmod>2026-06-19T10:28:03.285Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/shapely-geometry-operations/shapely-vs-geopandas-when-to-use-each/</loc><lastmod>2026-06-19T10:26:30.924Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/coordinate-systems-with-pyproj/fixing-pyproj-crs-transformation-errors/</loc><lastmod>2026-06-19T10:26:24.087Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/proximity-buffer-analysis/optimizing-buffer-operations-for-large-datasets/</loc><lastmod>2026-06-19T10:26:17.845Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/geopandas-dataframes-explained/how-to-install-and-configure-geopandas-on-windows/</loc><lastmod>2026-06-19T10:26:10.782Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/raster-data-handling-with-rasterio/reading-multi-band-tiffs-with-rasterio/</loc><lastmod>2026-06-19T10:26:04.733Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/geopandas-dataframes-explained/geopandas-vs-standard-pandas-for-spatial-data/</loc><lastmod>2026-06-19T10:25:55.540Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/topology-validation-repair/fixing-self-intersecting-polygons-programmatically/</loc><lastmod>2026-06-19T10:25:45.638Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/shapefile-geojson-parsing/automating-shapefile-cleanup-with-python/</loc><lastmod>2026-06-19T10:25:39.614Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/shapefile-geojson-parsing/best-practices-for-geojson-validation/</loc><lastmod>2026-06-19T10:25:32.743Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/spatial-joins-merging/performing-left-joins-with-geopandas-sjoin/</loc><lastmod>2026-06-19T10:25:27.132Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/shapely-geometry-operations/</loc><lastmod>2026-06-19T10:22:04.092Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/geopandas-dataframes-explained/</loc><lastmod>2026-06-19T10:21:57.952Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/raster-data-handling-with-rasterio/</loc><lastmod>2026-06-19T10:21:50.803Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/proximity-buffer-analysis/</loc><lastmod>2026-06-19T10:20:27.212Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/nearest-neighbor-kd-tree-search/</loc><lastmod>2026-06-19T10:20:20.786Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/geometric-intersections-overlays/</loc><lastmod>2026-06-19T10:20:14.128Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/spatial-clustering-algorithms/</loc><lastmod>2026-06-19T10:20:05.610Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/spatial-joins-merging/</loc><lastmod>2026-06-19T10:18:18.905Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/topology-validation-repair/</loc><lastmod>2026-06-19T10:18:12.355Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/shapefile-geojson-parsing/</loc><lastmod>2026-06-19T10:18:05.311Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/coordinate-reference-system-transformations/</loc><lastmod>2026-06-19T10:16:31.083Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/coordinate-systems-with-pyproj/</loc><lastmod>2026-06-19T10:14:26.857Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/</loc><lastmod>2026-06-19T10:13:55.329Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/</loc><lastmod>2026-06-19T10:12:33.597Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/spatial-clustering-algorithms/dbscan-vs-hdbscan-for-spatial-clustering/</loc><lastmod>2026-06-19T10:11:02.388Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/scaling-with-dask-geopandas/</loc><lastmod>2026-06-19T10:10:58.434Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/shapely-geometry-operations/shapely-1x-vs-shapely-2-vectorization/</loc><lastmod>2026-06-19T10:09:05.608Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/raster-data-handling-with-rasterio/rasterio-vs-gdal-python-bindings/</loc><lastmod>2026-06-19T10:08:27.265Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/geopandas-dataframes-explained/geopandas-vs-fiona-for-large-files/</loc><lastmod>2026-06-19T10:07:48.135Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/mastering-core-geospatial-python-libraries/coordinate-systems-with-pyproj/choosing-utm-zone-automatically-in-python/</loc><lastmod>2026-06-19T10:07:12.254Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/spatial-joins-merging/spatial-join-vs-attribute-join-in-geopandas/</loc><lastmod>2026-06-19T10:06:36.330Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/coordinate-reference-system-transformations/reprojecting-large-datasets-without-memory-errors/</loc><lastmod>2026-06-19T10:06:12.529Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/cloud-native-geospatial-formats/geoparquet-vs-shapefile-for-storage/</loc><lastmod>2026-06-19T10:05:44.780Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/cloud-native-geospatial-formats/streaming-overture-maps-data-with-duckdb/</loc><lastmod>2026-06-19T10:05:09.205Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/cloud-native-geospatial-formats/windowed-reads-from-cloud-optimized-geotiff/</loc><lastmod>2026-06-19T10:04:42.719Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/geospatial-data-ingestion-processing-workflows/cloud-native-geospatial-formats/</loc><lastmod>2026-06-19T10:04:15.660Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/nearest-neighbor-kd-tree-search/sjoin-nearest-vs-ckdtree-performance/</loc><lastmod>2026-06-19T10:02:28.115Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/geometric-intersections-overlays/computing-overlay-union-difference-with-geopandas/</loc><lastmod>2026-06-19T10:01:47.484Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/scaling-with-dask-geopandas/parallel-spatial-joins-with-dask-geopandas/</loc><lastmod>2026-06-19T10:01:20.141Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/duckdb-spatial-analytics/querying-geoparquet-with-duckdb-spatial/</loc><lastmod>2026-06-19T10:00:08.139Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/duckdb-spatial-analytics/</loc><lastmod>2026-06-19T09:59:42.850Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/postgis-integration-with-python/spatial-indexing-in-postgis-with-gist/</loc><lastmod>2026-06-19T09:58:56.789Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/postgis-integration-with-python/connecting-geopandas-to-postgis-with-sqlalchemy/</loc><lastmod>2026-06-19T09:58:32.634Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/spatial-analysis-advanced-query-techniques/postgis-integration-with-python/</loc><lastmod>2026-06-19T09:58:08.627Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/vector-tile-pipelines-with-pmtiles/serving-mbtiles-with-python/</loc><lastmod>2026-06-19T09:57:01.214Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/vector-tile-pipelines-with-pmtiles/generating-pmtiles-from-geoparquet/</loc><lastmod>2026-06-19T09:56:30.087Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/vector-tile-pipelines-with-pmtiles/</loc><lastmod>2026-06-19T09:55:59.506Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/maplibre-gl-vector-web-maps/serving-geojson-to-maplibre-gl-js/</loc><lastmod>2026-06-19T09:55:10.059Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/maplibre-gl-vector-web-maps/</loc><lastmod>2026-06-19T09:54:43.421Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/interactive-maps-with-folium/clustering-map-markers-with-folium/</loc><lastmod>2026-06-19T09:53:54.183Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/interactive-maps-with-folium/folium-choropleth-from-geodataframe/</loc><lastmod>2026-06-19T09:53:28.742Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/interactive-maps-with-folium/</loc><lastmod>2026-06-19T09:52:47.358Z</lastmod>
  </url><url>
    <loc>https://python-geospatial.com/web-mapping-interactive-visualization/</loc><lastmod>2026-06-19T09:50:08.144Z</lastmod>
  </url></urlset>

