<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.python-remote-sensing.com/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/containerizing-geospatial-python-environments/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/containerizing-geospatial-python-environments/building-a-slim-gdal-docker-image/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/containerizing-geospatial-python-environments/caching-proj-data-and-gdal-config-in-containers/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/containerizing-geospatial-python-environments/pinning-gdal-and-proj-versions-reproducibly/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/containerizing-geospatial-python-environments/running-geospatial-python-in-aws-lambda-containers/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/distributed-processing-on-coiled-and-aws-batch/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/distributed-processing-on-coiled-and-aws-batch/launching-a-coiled-cluster-for-stac-processing/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/distributed-processing-on-coiled-and-aws-batch/passing-credentials-to-remote-raster-workers/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/distributed-processing-on-coiled-and-aws-batch/processing-cogs-on-aws-batch-with-docker/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/distributed-processing-on-coiled-and-aws-batch/sizing-aws-batch-jobs-for-tile-workloads/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/monitoring-and-observability-for-raster-pipelines/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/monitoring-and-observability-for-raster-pipelines/alerting-on-failed-tile-jobs/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/monitoring-and-observability-for-raster-pipelines/logging-structured-events-from-raster-tasks/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/monitoring-and-observability-for-raster-pipelines/profiling-memory-in-a-raster-worker/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/monitoring-and-observability-for-raster-pipelines/tracking-dask-task-metrics-during-a-run/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/optimizing-pipeline-cost-and-performance/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/optimizing-pipeline-cost-and-performance/benchmarking-cog-read-throughput-from-object-storage/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/optimizing-pipeline-cost-and-performance/choosing-instance-types-for-raster-workloads/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/optimizing-pipeline-cost-and-performance/reducing-s3-egress-costs-in-raster-pipelines/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/orchestrating-pipelines-with-prefect/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/orchestrating-pipelines-with-prefect/building-a-prefect-deployment-for-nightly-composites/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/orchestrating-pipelines-with-prefect/parameterizing-prefect-flows-for-multi-tile-runs/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/orchestrating-pipelines-with-prefect/retrying-failed-raster-tasks-in-a-prefect-pipeline/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/orchestrating-pipelines-with-prefect/scheduling-sentinel-2-downloads-with-prefect-flows/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/scaling-raster-processing-with-dask/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/scaling-raster-processing-with-dask/choosing-between-threads-and-processes-for-gdal-workloads/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/scaling-raster-processing-with-dask/computing-ndvi-with-xarray-on-a-dask-cluster/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/scaling-raster-processing-with-dask/diagnosing-dask-memory-spills-in-raster-workflows/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/cloud-execution-and-orchestration/scaling-raster-processing-with-dask/tuning-dask-chunk-sizes-for-raster-cubes/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/band-math-operations-with-xarray/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/band-math-operations-with-xarray/calculating-ndvi-directly-from-xarray-dataarrays/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/band-math-operations-with-xarray/computing-band-ratios-with-dask-backed-dataarrays/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/band-math-operations-with-xarray/computing-evi-and-ndwi-from-sentinel-2-bands/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/band-math-operations-with-xarray/handling-nodata-and-scale-factors-in-band-math/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/band-math-operations-with-xarray/writing-reusable-index-functions-with-xarray-apply-ufunc/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/choosing-cog-compression-zstd-vs-deflate/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/extracting-and-parsing-raster-metadata/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/extracting-and-parsing-raster-metadata/auditing-crs-and-nodata-drift-across-a-collection/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/extracting-and-parsing-raster-metadata/automating-metadata-extraction-for-batch-raster-jobs/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/extracting-and-parsing-raster-metadata/extracting-nodata-and-dtype-from-a-geotiff/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/extracting-and-parsing-raster-metadata/reading-and-writing-gdal-tags-and-band-descriptions/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/handling-pixel-resolution-and-scaling/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/handling-pixel-resolution-and-scaling/aligning-two-rasters-with-reproject-match/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/handling-pixel-resolution-and-scaling/optimizing-rasterio-window-reads-for-memory-efficiency/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/handling-pixel-resolution-and-scaling/resampling-sentinel-2-20m-bands-to-10m/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/handling-pixel-resolution-and-scaling/resampling-with-gdal-warp-vs-rasterio-reproject/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/mastering-crs-transformations-in-rasterio/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/mastering-crs-transformations-in-rasterio/assigning-a-crs-to-a-raster-that-has-none/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/mastering-crs-transformations-in-rasterio/fixing-epsg-mismatches-in-rasterioopen/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/mastering-crs-transformations-in-rasterio/handling-antimeridian-and-polar-crs-edge-cases/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/mastering-crs-transformations-in-rasterio/reprojecting-a-raster-from-utm-to-wgs84-with-rasterio/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/mastering-crs-transformations-in-rasterio/transforming-point-coordinates-with-pyproj/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/querying-stac-catalogs-programmatically/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/querying-stac-catalogs-programmatically/filtering-stac-items-with-cql2/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/querying-stac-catalogs-programmatically/loading-stac-items-into-an-xarray-cube-with-stackstac/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/querying-stac-catalogs-programmatically/paginating-large-stac-searches-with-pystac-client/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/querying-stac-catalogs-programmatically/searching-multiple-stac-apis-and-merging-results/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/querying-stac-catalogs-programmatically/using-pystac-client-to-filter-sentinel-2-imagery-by-date/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/raster-dtypes-scaling-and-numerical-precision/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/raster-dtypes-scaling-and-numerical-precision/avoiding-integer-overflow-in-index-calculations/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/raster-dtypes-scaling-and-numerical-precision/choosing-a-nodata-value-that-survives-band-math/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/raster-dtypes-scaling-and-numerical-precision/converting-int16-reflectance-to-float-safely/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/raster-dtypes-scaling-and-numerical-precision/packing-float-rasters-into-int16-with-scale-and-offset/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/rasterio-vs-xarray-for-band-math/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/stackstac-vs-odc-stac-for-stac-to-array/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/understanding-cloud-optimized-geotiff-structure/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/understanding-cloud-optimized-geotiff-structure/choosing-block-size-and-overview-levels-for-cogs/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/understanding-cloud-optimized-geotiff-structure/diagnosing-slow-cog-reads-with-gdal-vsi-logging/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/understanding-cloud-optimized-geotiff-structure/how-to-read-cog-headers-without-downloading-full-files/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/understanding-cloud-optimized-geotiff-structure/reading-a-cog-over-s3-without-downloading/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/understanding-cloud-optimized-geotiff-structure/reading-cogs-from-azure-blob-and-gcs/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/working-with-zarr-and-cloud-native-datacubes/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/working-with-zarr-and-cloud-native-datacubes/appending-new-time-steps-to-a-zarr-store/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/working-with-zarr-and-cloud-native-datacubes/choosing-chunk-shapes-for-zarr-raster-cubes/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/working-with-zarr-and-cloud-native-datacubes/reading-zarr-datacubes-from-s3-with-fsspec/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/working-with-zarr-and-cloud-native-datacubes/writing-an-xarray-datacube-to-zarr/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/writing-and-validating-cloud-optimized-geotiffs/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/writing-and-validating-cloud-optimized-geotiffs/adding-internal-overviews-with-the-right-resampling/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/writing-and-validating-cloud-optimized-geotiffs/converting-a-geotiff-to-a-cog-with-rio-cogeo/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/writing-and-validating-cloud-optimized-geotiffs/validating-cog-structure-in-ci/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/zonal-statistics-and-vector-raster-integration/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/zonal-statistics-and-vector-raster-integration/computing-weighted-zonal-statistics-for-partial-pixels/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/zonal-statistics-and-vector-raster-integration/computing-zonal-statistics-with-rasterstats/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/zonal-statistics-and-vector-raster-integration/extracting-pixel-values-at-point-locations/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/zonal-statistics-and-vector-raster-integration/rasterizing-vector-polygons-onto-a-raster-grid/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/core-raster-fundamentals-stac-mapping/zonal-statistics-and-vector-raster-integration/zonal-statistics-over-millions-of-polygons-with-exactextract/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/building-training-datasets-from-satellite-imagery/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/building-training-datasets-from-satellite-imagery/balancing-class-frequencies-in-chip-datasets/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/building-training-datasets-from-satellite-imagery/extracting-image-chips-around-labelled-points/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/building-training-datasets-from-satellite-imagery/rasterizing-labels-into-segmentation-masks/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/building-training-datasets-from-satellite-imagery/splitting-chips-into-spatially-disjoint-folds/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/exporting-and-serving-model-outputs/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/exporting-and-serving-model-outputs/attaching-model-metadata-to-stac-items/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/exporting-and-serving-model-outputs/smoothing-and-post-processing-classification-rasters/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/exporting-and-serving-model-outputs/vectorizing-predicted-masks-to-polygons/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/exporting-and-serving-model-outputs/writing-prediction-rasters-as-cogs/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/feature-engineering-for-pixel-based-models/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/feature-engineering-for-pixel-based-models/adding-terrain-derivatives-as-predictors/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/feature-engineering-for-pixel-based-models/building-temporal-feature-stacks-from-image-time-series/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/feature-engineering-for-pixel-based-models/harmonising-features-across-sensors-for-transfer/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/feature-engineering-for-pixel-based-models/stacking-spectral-indices-as-model-features/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/running-model-inference-over-large-rasters/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/running-model-inference-over-large-rasters/batching-gpu-inference-from-a-rasterio-window-reader/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/running-model-inference-over-large-rasters/running-onnx-models-on-raster-tiles/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/running-model-inference-over-large-rasters/stitching-prediction-tiles-without-seams/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/running-model-inference-over-large-rasters/tiled-inference-with-overlapping-windows/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/validating-raster-predictions-and-accuracy-assessment/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/validating-raster-predictions-and-accuracy-assessment/computing-confusion-matrices-from-raster-pairs/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/validating-raster-predictions-and-accuracy-assessment/designing-spatial-cross-validation-for-raster-models/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/validating-raster-predictions-and-accuracy-assessment/estimating-area-with-stratified-random-sampling/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/raster-machine-learning-and-inference/validating-raster-predictions-and-accuracy-assessment/measuring-boundary-accuracy-with-iou-and-f1/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/advanced-resampling-and-upscaling-techniques/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/advanced-resampling-and-upscaling-techniques/choosing-the-right-resampling-method-for-sentinel-2/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/advanced-resampling-and-upscaling-techniques/matching-landsat-and-sentinel-2-grids/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/advanced-resampling-and-upscaling-techniques/upscaling-landsat-thermal-bands-with-bilinear-resampling/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/atmospheric-correction-and-surface-reflectance/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/atmospheric-correction-and-surface-reflectance/applying-dark-object-subtraction-in-python/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/atmospheric-correction-and-surface-reflectance/comparing-l1c-and-l2a-sentinel-2-products/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/atmospheric-correction-and-surface-reflectance/converting-landsat-dn-to-toa-reflectance/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/atmospheric-correction-and-surface-reflectance/harmonising-landsat-and-sentinel-2-reflectance/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/automated-image-clipping-and-cropping/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/automated-image-clipping-and-cropping/clipping-a-raster-to-a-bounding-box-with-windowed-reads/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/automated-image-clipping-and-cropping/clipping-a-raster-with-a-geopackage-layer/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/automated-image-clipping-and-cropping/cropping-a-stac-item-to-an-aoi-without-full-download/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/automated-image-clipping-and-cropping/handling-partial-overlap-between-aoi-and-scene/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/automated-image-clipping-and-cropping/how-to-clip-rasters-to-irregular-polygon-boundaries/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/change-detection-and-differencing-workflows/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/change-detection-and-differencing-workflows/computing-ndvi-difference-between-two-dates/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/change-detection-and-differencing-workflows/mapping-burned-area-with-nbr-differencing/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/change-detection-and-differencing-workflows/separating-real-change-from-illumination-differences/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/change-detection-and-differencing-workflows/thresholding-change-maps-and-removing-noise/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/cloud-and-shadow-masking-strategies/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/cloud-and-shadow-masking-strategies/dilating-cloud-masks-to-catch-thin-cirrus/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/cloud-and-shadow-masking-strategies/estimating-per-scene-cloud-cover-in-python/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/cloud-and-shadow-masking-strategies/implementing-fmask-and-s2cloudless-in-python/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/cloud-and-shadow-masking-strategies/masking-clouds-with-the-sentinel-2-scl-band/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/cloud-and-shadow-masking-strategies/validating-a-cloud-mask-against-reference-labels/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/seamless-mosaicking-and-edge-blending/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/seamless-mosaicking-and-edge-blending/building-a-mosaic-from-a-stac-search/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/seamless-mosaicking-and-edge-blending/choosing-a-pixel-selection-rule-for-composites/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/seamless-mosaicking-and-edge-blending/histogram-matching-across-scenes/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/seamless-mosaicking-and-edge-blending/merging-tiles-with-rasterio-merge/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/seamless-mosaicking-and-edge-blending/removing-seams-in-multi-scene-mosaics-with-feathering/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/spectral-index-calculation-pipelines/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/spectral-index-calculation-pipelines/batch-computing-indices-across-a-stac-collection/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/spectral-index-calculation-pipelines/building-a-drought-index-pipeline-with-ndmi/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/spectral-index-calculation-pipelines/building-a-yaml-driven-multi-index-pipeline/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/spectral-index-calculation-pipelines/computing-ndwi-and-mndwi-for-water-mapping/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/spectral-index-calculation-pipelines/computing-savi-and-msavi-for-sparse-vegetation/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/temporal-aggregation-and-time-series-analysis/</loc>
    <lastmod>2026-06-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/temporal-aggregation-and-time-series-analysis/computing-phenology-metrics-from-ndvi-time-series/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/temporal-aggregation-and-time-series-analysis/creating-monthly-ndvi-composites-with-xarray-resample/</loc>
    <lastmod>2026-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/temporal-aggregation-and-time-series-analysis/detecting-seasonal-trends-with-rolling-windows/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/temporal-aggregation-and-time-series-analysis/filling-gaps-in-ndvi-time-series-with-interpolation/</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/terrain-analysis-and-dem-derived-products/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/terrain-analysis-and-dem-derived-products/applying-a-terrain-illumination-correction/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/terrain-analysis-and-dem-derived-products/computing-slope-and-aspect-from-a-dem/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/terrain-analysis-and-dem-derived-products/filling-voids-in-dem-tiles/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/satellite-processing-workflows-index-pipelines/terrain-analysis-and-dem-derived-products/generating-hillshade-rasters-in-python/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/interactive-raster-exploration-in-jupyter/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/interactive-raster-exploration-in-jupyter/comparing-two-dates-with-a-split-map/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/interactive-raster-exploration-in-jupyter/displaying-cogs-on-a-leafmap-web-map/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/interactive-raster-exploration-in-jupyter/drawing-an-aoi-and-reading-pixels-interactively/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/interactive-raster-exploration-in-jupyter/inspecting-time-series-at-a-clicked-pixel/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/preparing-rasters-for-the-web/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/preparing-rasters-for-the-web/converting-rasters-to-8-bit-for-display/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/preparing-rasters-for-the-web/generating-web-mercator-tile-pyramids/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/preparing-rasters-for-the-web/producing-png-thumbnails-and-quicklooks/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/preparing-rasters-for-the-web/publishing-static-tiles-to-object-storage/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/rendering-rasters-with-matplotlib/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/rendering-rasters-with-matplotlib/building-true-colour-composites-with-contrast-stretch/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/rendering-rasters-with-matplotlib/choosing-colour-ramps-for-continuous-raster-data/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/rendering-rasters-with-matplotlib/exporting-publication-quality-map-figures/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/rendering-rasters-with-matplotlib/plotting-a-geotiff-with-correct-extent-and-axes/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/serving-raster-tiles-with-titiler/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/serving-raster-tiles-with-titiler/adding-dynamic-rescaling-and-colormaps-to-tile-urls/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/serving-raster-tiles-with-titiler/caching-and-cdn-strategies-for-raster-tiles/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/serving-raster-tiles-with-titiler/deploying-titiler-for-a-cog-archive/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.python-remote-sensing.com/visualization-tiling-and-web-delivery/serving-raster-tiles-with-titiler/serving-mosaics-with-mosaicjson/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
