<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
          http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

  <url>
    <loc>https://www.geospatial-etl.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/attribute-mapping-schema-harmonization/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/crs-normalization-across-mixed-datasets/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/geometry-repair-with-shapely-geopandas/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/handling-precision-coordinate-rounding/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/raster-alignment-resampling-techniques/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/spatial-deduplication-topology-simplification/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/automating-government-portal-downloads/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/bulk-downloading-satellite-imagery/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/fetching-osm-data-via-overpass-api/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/parsing-geojson-shapefile-apis/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/syncing-stac-catalogs-with-pystac-client/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/web-scraping-spatial-metadata/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/attribute-mapping-schema-harmonization/standardizing-column-names-across-multiple-shapefiles/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/crs-normalization-across-mixed-datasets/converting-mixed-epsg-codes-to-a-unified-crs/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/geometry-repair-with-shapely-geopandas/fixing-self-intersecting-polygons-in-geopandas/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/raster-alignment-resampling-techniques/aligning-raster-bands-with-rasterio-and-affine-transforms/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/automated-vector-raster-cleaning-workflows/spatial-deduplication-topology-simplification/removing-duplicate-spatial-points-with-tolerance-thresholds/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/bulk-downloading-satellite-imagery/automating-usgs-earthexplorer-bulk-downloads-with-requests/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/fetching-osm-data-via-overpass-api/how-to-handle-rate-limits-when-downloading-osm-data/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/parsing-geojson-shapefile-apis/extracting-bounding-boxes-from-geojson-apis/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/parsing-geojson-shapefile-apis/handling-authentication-tokens-for-arcgis-rest-services/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.geospatial-etl.com/mastering-geospatial-data-ingestion-in-python/syncing-stac-catalogs-with-pystac-client/best-practices-for-stac-catalog-pagination-in-python/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

</urlset>

