<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.dronephotogrammetry.org/</loc>
    <lastmod>2026-09-17T23:15:15.701Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/</loc>
    <lastmod>2026-08-10T12:40:27.411Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/camera-calibration-and-lens-models-in-python/</loc>
    <lastmod>2026-09-17T20:38:59.545Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/camera-calibration-and-lens-models-in-python/deciding-when-to-fix-versus-optimise-intrinsics/</loc>
    <lastmod>2026-09-17T21:38:01.944Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/camera-calibration-and-lens-models-in-python/diagnosing-doming-and-bowl-effect-in-reconstructions/</loc>
    <lastmod>2026-09-17T20:41:09.527Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/camera-calibration-and-lens-models-in-python/fitting-a-brown-conrady-model-from-a-calibration-flight/</loc>
    <lastmod>2026-09-17T20:42:41.038Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/camera-calibration-and-lens-models-in-python/handling-rolling-shutter-in-fast-flight-lines/</loc>
    <lastmod>2026-09-17T20:45:44.138Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/feature-detection-algorithms-for-drone-imagery/</loc>
    <lastmod>2026-08-10T12:40:27.411Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/feature-detection-algorithms-for-drone-imagery/fixing-sift-vs-orb-performance-in-uav-photos/</loc>
    <lastmod>2026-08-10T12:40:27.410Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/feature-detection-algorithms-for-drone-imagery/masking-sky-and-water-before-feature-detection/</loc>
    <lastmod>2026-08-09T16:57:39.953Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/feature-detection-algorithms-for-drone-imagery/tuning-sift-contrast-threshold-for-low-texture-scenes/</loc>
    <lastmod>2026-08-09T16:55:59.998Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/gpu-acceleration-for-dense-matching-in-python/</loc>
    <lastmod>2026-08-09T19:07:12.458Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/gpu-acceleration-for-dense-matching-in-python/detecting-cuda-availability-and-falling-back-to-cpu/</loc>
    <lastmod>2026-08-09T16:26:12.144Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/gpu-acceleration-for-dense-matching-in-python/fixing-out-of-memory-on-gpu-during-dense-matching/</loc>
    <lastmod>2026-08-09T16:27:55.584Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/matching-strategies-for-large-and-linear-surveys/</loc>
    <lastmod>2026-09-17T20:47:18.481Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/matching-strategies-for-large-and-linear-surveys/building-an-image-pair-graph-from-gps-positions/</loc>
    <lastmod>2026-09-17T20:49:25.429Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/matching-strategies-for-large-and-linear-surveys/merging-submodels-with-shared-control-points/</loc>
    <lastmod>2026-09-17T20:52:18.893Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/matching-strategies-for-large-and-linear-surveys/speeding-up-matching-with-preemptive-filters/</loc>
    <lastmod>2026-09-17T20:53:43.650Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/matching-strategies-for-large-and-linear-surveys/using-vocabulary-trees-for-large-dataset-matching/</loc>
    <lastmod>2026-09-17T20:50:50.605Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/memory-management-for-large-point-clouds/</loc>
    <lastmod>2026-08-10T12:40:27.411Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/memory-management-for-large-point-clouds/streaming-las-tiles-to-avoid-oom-kills/</loc>
    <lastmod>2026-08-10T12:40:27.412Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/opencv-vs-opensfm-for-feature-matching/</loc>
    <lastmod>2026-08-10T12:40:27.412Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/opencv-vs-opensfm-for-feature-matching/porting-an-opencv-matcher-into-an-opensfm-pipeline/</loc>
    <lastmod>2026-09-17T20:55:09.038Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/optimizing-bundle-adjustment-with-python/</loc>
    <lastmod>2026-08-10T12:40:27.413Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/optimizing-bundle-adjustment-with-python/interpreting-reprojection-error-histograms/</loc>
    <lastmod>2026-08-09T17:03:29.038Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/optimizing-bundle-adjustment-with-python/python-script-to-split-large-datasets-for-processing/</loc>
    <lastmod>2026-08-10T12:40:27.413Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/parallel-processing-strategies-for-alignment/</loc>
    <lastmod>2026-08-10T12:40:27.413Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/parallel-processing-strategies-for-alignment/reducing-ram-usage-during-dense-matching/</loc>
    <lastmod>2026-08-10T12:40:27.413Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/troubleshooting-alignment-and-matching-failures/</loc>
    <lastmod>2026-08-10T12:40:27.414Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/troubleshooting-alignment-and-matching-failures/diagnosing-drifting-camera-poses-in-corridor-mapping/</loc>
    <lastmod>2026-08-09T17:01:25.976Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/troubleshooting-alignment-and-matching-failures/fixing-not-enough-inliers-ransac-failures/</loc>
    <lastmod>2026-08-10T12:40:27.413Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/automated-image-alignment-feature-matching-workflows/troubleshooting-alignment-and-matching-failures/fixing-opensfm-reconstruction-split-into-multiple-submodels/</loc>
    <lastmod>2026-08-09T16:59:50.705Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/</loc>
    <lastmod>2026-08-10T12:40:27.414Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/calculating-optimal-flight-overlap-for-python-processing/</loc>
    <lastmod>2026-08-10T12:40:27.414Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/calculating-optimal-flight-overlap-for-python-processing/best-practices-for-storing-raw-uav-datasets/</loc>
    <lastmod>2026-08-10T12:40:27.414Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/calculating-optimal-flight-overlap-for-python-processing/computing-ground-sample-distance-in-python/</loc>
    <lastmod>2026-08-09T19:07:17.711Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/containerising-photogrammetry-workers-with-docker/</loc>
    <lastmod>2026-09-17T20:28:58.803Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/containerising-photogrammetry-workers-with-docker/fixing-permission-denied-on-container-output-directories/</loc>
    <lastmod>2026-09-17T20:35:40.089Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/containerising-photogrammetry-workers-with-docker/mounting-large-datasets-without-copying-them/</loc>
    <lastmod>2026-09-17T20:34:09.331Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/containerising-photogrammetry-workers-with-docker/passing-gpus-into-processing-containers-from-python/</loc>
    <lastmod>2026-09-17T20:32:31.818Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/containerising-photogrammetry-workers-with-docker/pinning-gdal-proj-and-opencv-versions-reproducibly/</loc>
    <lastmod>2026-09-17T20:30:59.952Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/managing-coordinate-reference-systems-in-gdal/</loc>
    <lastmod>2026-08-10T12:40:27.414Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/managing-coordinate-reference-systems-in-gdal/automating-camera-intrinsic-matrix-extraction/</loc>
    <lastmod>2026-08-10T12:40:27.414Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/orchestrating-photogrammetry-jobs-with-python-schedulers/</loc>
    <lastmod>2026-08-09T16:17:37.007Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/orchestrating-photogrammetry-jobs-with-python-schedulers/retrying-failed-photogrammetry-jobs-idempotently/</loc>
    <lastmod>2026-08-09T16:19:22.098Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/orchestrating-photogrammetry-jobs-with-python-schedulers/writing-a-manifest-driven-batch-runner-for-odm/</loc>
    <lastmod>2026-08-09T16:21:02.658Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/pyodm-vs-direct-odm-cli-for-automation/</loc>
    <lastmod>2026-08-10T12:40:27.415Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/pyodm-vs-direct-odm-cli-for-automation/choosing-between-nodeodm-workers-and-local-runs/</loc>
    <lastmod>2026-09-17T20:37:11.605Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/setting-up-opendronemap-with-python/</loc>
    <lastmod>2026-08-10T12:40:27.415Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/setting-up-opendronemap-with-python/fixing-odm-cannot-find-images-in-project-path/</loc>
    <lastmod>2026-08-09T16:43:04.120Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/setting-up-opendronemap-with-python/fixing-opensfm-bundle-adjustment-divergence/</loc>
    <lastmod>2026-08-10T12:40:27.415Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/setting-up-opendronemap-with-python/how-to-validate-exif-gps-data-before-processing/</loc>
    <lastmod>2026-08-10T12:40:27.415Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/setting-up-opendronemap-with-python/python-script-to-convert-drone-images-to-tiff/</loc>
    <lastmod>2026-08-10T12:40:27.416Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/setting-up-opendronemap-with-python/resolving-odm-exit-code-1-and-137-oom/</loc>
    <lastmod>2026-08-10T12:40:27.416Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/setting-up-opendronemap-with-python/resolving-pyodm-connection-refused-to-nodeodm/</loc>
    <lastmod>2026-08-09T16:44:44.223Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/structuring-drone-imagery-for-batch-processing/</loc>
    <lastmod>2026-08-10T12:40:27.416Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/structuring-drone-imagery-for-batch-processing/deduplicating-overlapping-flights-in-a-dataset/</loc>
    <lastmod>2026-08-09T17:24:17.488Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/structuring-drone-imagery-for-batch-processing/handling-mixed-sensor-data-in-photogrammetry-pipelines/</loc>
    <lastmod>2026-08-10T12:40:27.416Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/troubleshooting-ingestion-and-crs-failures/</loc>
    <lastmod>2026-08-10T12:40:27.417Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/troubleshooting-ingestion-and-crs-failures/fixing-crs-mismatch-between-images-and-gcp-file/</loc>
    <lastmod>2026-08-09T16:47:24.559Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/troubleshooting-ingestion-and-crs-failures/fixing-gdal-proj-database-context-errors/</loc>
    <lastmod>2026-08-10T12:40:27.416Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/troubleshooting-ingestion-and-crs-failures/repairing-corrupt-or-truncated-exif-headers/</loc>
    <lastmod>2026-08-09T16:52:02.705Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/validating-and-repairing-exif-metadata-at-scale/</loc>
    <lastmod>2026-09-17T20:20:51.030Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/validating-and-repairing-exif-metadata-at-scale/bulk-rewriting-exif-without-recompressing-jpegs/</loc>
    <lastmod>2026-09-17T20:27:27.209Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/validating-and-repairing-exif-metadata-at-scale/normalizing-timestamps-and-timezones-in-exif/</loc>
    <lastmod>2026-09-17T20:24:16.208Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/validating-and-repairing-exif-metadata-at-scale/reading-xmp-drone-tags-with-python/</loc>
    <lastmod>2026-09-17T20:22:44.746Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/core-photogrammetry-fundamentals-for-python-pipelines/validating-and-repairing-exif-metadata-at-scale/recovering-yaw-pitch-and-roll-from-vendor-tags/</loc>
    <lastmod>2026-09-17T20:25:47.031Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/</loc>
    <lastmod>2026-08-10T12:40:27.418Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/deriving-contours-and-hillshade-with-gdal/</loc>
    <lastmod>2026-08-09T16:37:38.001Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/deriving-contours-and-hillshade-with-gdal/computing-slope-and-aspect-rasters-in-python/</loc>
    <lastmod>2026-08-09T17:15:29.981Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/deriving-contours-and-hillshade-with-gdal/generating-smooth-contours-without-staircase-artifacts/</loc>
    <lastmod>2026-08-09T17:13:59.866Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/exporting-cloud-optimized-geotiffs-with-rasterio/</loc>
    <lastmod>2026-08-10T12:40:27.417Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/exporting-cloud-optimized-geotiffs-with-rasterio/fixing-cog-validation-errors-in-gdal/</loc>
    <lastmod>2026-08-10T12:40:27.417Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/exporting-cloud-optimized-geotiffs-with-rasterio/setting-compression-and-overviews-for-orthomosaic-cogs/</loc>
    <lastmod>2026-08-10T12:40:27.417Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/gdal-vs-rasterio-for-raster-export/</loc>
    <lastmod>2026-08-10T12:40:27.418Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/generating-dsm-and-dtm-from-point-clouds-with-pdal/</loc>
    <lastmod>2026-08-10T12:40:27.418Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/generating-dsm-and-dtm-from-point-clouds-with-pdal/choosing-smrf-parameters-for-ground-classification/</loc>
    <lastmod>2026-08-09T17:22:40.732Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/generating-dsm-and-dtm-from-point-clouds-with-pdal/fixing-holes-and-voids-in-drone-dsms/</loc>
    <lastmod>2026-08-10T12:40:27.418Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/generating-dsm-and-dtm-from-point-clouds-with-pdal/fixing-pdal-pipeline-json-schema-errors/</loc>
    <lastmod>2026-08-10T12:40:27.418Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/generating-dsm-and-dtm-from-point-clouds-with-pdal/removing-vegetation-from-dtm-ground-surfaces/</loc>
    <lastmod>2026-08-10T12:40:27.418Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/orthomosaic-radiometry-and-seamline-control/</loc>
    <lastmod>2026-09-17T21:18:45.646Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/orthomosaic-radiometry-and-seamline-control/choosing-blending-modes-for-orthomosaic-quality/</loc>
    <lastmod>2026-09-17T21:23:18.221Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/orthomosaic-radiometry-and-seamline-control/colour-balancing-images-before-mosaicking/</loc>
    <lastmod>2026-09-17T21:20:31.636Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/orthomosaic-radiometry-and-seamline-control/fixing-visible-seamlines-and-colour-banding/</loc>
    <lastmod>2026-09-17T21:21:54.436Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/orthomosaic-radiometry-and-seamline-control/removing-moving-objects-and-ghosting-from-mosaics/</loc>
    <lastmod>2026-09-17T21:24:49.461Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/publishing-rasters-to-stac-and-object-storage/</loc>
    <lastmod>2026-09-17T21:26:54.119Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/publishing-rasters-to-stac-and-object-storage/serving-cog-range-requests-without-a-tile-server/</loc>
    <lastmod>2026-09-17T21:36:10.624Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/publishing-rasters-to-stac-and-object-storage/uploading-cogs-to-object-storage-with-python/</loc>
    <lastmod>2026-09-17T21:34:40.282Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/publishing-rasters-to-stac-and-object-storage/versioning-deliverables-with-checksums-and-manifests/</loc>
    <lastmod>2026-09-17T21:37:36.510Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/publishing-rasters-to-stac-and-object-storage/writing-a-stac-item-for-an-orthomosaic/</loc>
    <lastmod>2026-09-17T21:33:13.975Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/tiling-and-serving-orthomosaics-as-xyz-tiles/</loc>
    <lastmod>2026-08-09T19:07:24.135Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/tiling-and-serving-orthomosaics-as-xyz-tiles/building-xyz-tile-pyramids-with-gdal2tiles/</loc>
    <lastmod>2026-08-09T19:07:47.252Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/tiling-and-serving-orthomosaics-as-xyz-tiles/fixing-misaligned-tiles-and-wrong-web-mercator-extents/</loc>
    <lastmod>2026-08-09T17:19:04.411Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/troubleshooting-dem-and-raster-export-failures/</loc>
    <lastmod>2026-08-10T12:40:27.419Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/troubleshooting-dem-and-raster-export-failures/decoding-gdal-cannot-allocate-memory-on-export/</loc>
    <lastmod>2026-08-10T12:40:27.419Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/troubleshooting-dem-and-raster-export-failures/diagnosing-empty-or-black-orthomosaic-tiles/</loc>
    <lastmod>2026-08-10T12:40:27.419Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/dem-dsm-generation-raster-export-automation/troubleshooting-dem-and-raster-export-failures/fixing-nodata-and-alpha-band-confusion-in-exports/</loc>
    <lastmod>2026-08-09T17:21:06.122Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/</loc>
    <lastmod>2026-08-10T12:40:27.421Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/automating-gcp-detection-with-python/</loc>
    <lastmod>2026-08-10T12:40:27.419Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/automating-gcp-detection-with-python/detecting-checkerboard-targets-with-opencv/</loc>
    <lastmod>2026-08-09T17:10:29.032Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/automating-gcp-detection-with-python/how-to-auto-tag-gcps-in-drone-images/</loc>
    <lastmod>2026-08-10T12:40:27.419Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/checkpoint-based-accuracy-validation-in-python/</loc>
    <lastmod>2026-09-17T21:04:37.199Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/checkpoint-based-accuracy-validation-in-python/computing-rmse-and-accuracy-statistics-from-checkpoints/</loc>
    <lastmod>2026-09-17T21:06:42.675Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/checkpoint-based-accuracy-validation-in-python/detecting-blunders-in-checkpoint-residuals/</loc>
    <lastmod>2026-09-17T21:16:46.032Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/checkpoint-based-accuracy-validation-in-python/reporting-accuracy-in-a-machine-readable-manifest/</loc>
    <lastmod>2026-09-17T21:11:44.800Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/checkpoint-based-accuracy-validation-in-python/splitting-control-and-checkpoints-without-bias/</loc>
    <lastmod>2026-09-17T21:08:16.474Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/coordinate-transformation-workflows-in-pyproj/</loc>
    <lastmod>2026-08-10T12:40:27.420Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/coordinate-transformation-workflows-in-pyproj/converting-wgs84-to-local-grid-with-python/</loc>
    <lastmod>2026-08-10T12:40:27.419Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/coordinate-transformation-workflows-in-pyproj/handling-epoch-and-plate-motion-in-pyproj/</loc>
    <lastmod>2026-08-09T17:12:05.612Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/distributing-gcp-errors-across-orthomosaics/</loc>
    <lastmod>2026-08-10T12:40:27.421Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/distributing-gcp-errors-across-orthomosaics/interpreting-gcp-residual-reports-in-odm/</loc>
    <lastmod>2026-08-10T12:40:27.421Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/geoid-models-and-vertical-datum-automation/</loc>
    <lastmod>2026-09-17T20:56:30.986Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/geoid-models-and-vertical-datum-automation/applying-a-geoid-grid-with-pyproj-transformers/</loc>
    <lastmod>2026-09-17T20:58:38.296Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/geoid-models-and-vertical-datum-automation/caching-proj-grids-for-offline-processing/</loc>
    <lastmod>2026-09-17T21:00:04.103Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/geoid-models-and-vertical-datum-automation/checking-vertical-accuracy-against-benchmarks/</loc>
    <lastmod>2026-09-17T21:03:20.838Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/geoid-models-and-vertical-datum-automation/converting-ellipsoidal-to-orthometric-heights-in-bulk/</loc>
    <lastmod>2026-09-17T21:01:33.492Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/pyproj-vs-gdal-for-coordinate-transforms/</loc>
    <lastmod>2026-08-10T12:40:27.421Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/rtk-ppk-geotagging-workflows-in-python/</loc>
    <lastmod>2026-08-09T16:31:07.219Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/rtk-ppk-geotagging-workflows-in-python/applying-ppk-corrections-to-image-timestamps/</loc>
    <lastmod>2026-08-09T19:07:51.916Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/rtk-ppk-geotagging-workflows-in-python/fixing-camera-event-marker-offsets-in-ppk-logs/</loc>
    <lastmod>2026-08-09T16:34:54.406Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/setting-accuracy-thresholds-for-survey-projects/</loc>
    <lastmod>2026-08-10T12:40:27.421Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/setting-accuracy-thresholds-for-survey-projects/choosing-rmse-thresholds-by-survey-class/</loc>
    <lastmod>2026-08-10T12:40:27.421Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/troubleshooting-gcp-and-coordinate-errors/</loc>
    <lastmod>2026-08-10T12:40:27.421Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/troubleshooting-gcp-and-coordinate-errors/diagnosing-systematic-tilt-in-gcp-residuals/</loc>
    <lastmod>2026-08-09T17:08:53.812Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/troubleshooting-gcp-and-coordinate-errors/fixing-gcp-file-format-errors-in-odm/</loc>
    <lastmod>2026-08-09T19:07:55.620Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/ground-control-point-optimization-coordinate-sync/troubleshooting-gcp-and-coordinate-errors/resolving-vertical-datum-mismatch-in-gcp-heights/</loc>
    <lastmod>2026-08-09T17:07:13.821Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/</loc>
    <lastmod>2026-09-17T19:31:49.100Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/band-alignment-and-stacking-for-multispectral-sets/</loc>
    <lastmod>2026-09-17T19:42:48.924Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/band-alignment-and-stacking-for-multispectral-sets/building-a-band-stacked-geotiff-with-rasterio/</loc>
    <lastmod>2026-09-17T19:45:56.511Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/band-alignment-and-stacking-for-multispectral-sets/co-registering-bands-with-opencv-homographies/</loc>
    <lastmod>2026-09-17T19:44:31.124Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/band-alignment-and-stacking-for-multispectral-sets/fixing-band-misregistration-artifacts-in-index-rasters/</loc>
    <lastmod>2026-09-17T19:47:29.336Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/calibrated-vs-uncalibrated-multispectral-workflows/</loc>
    <lastmod>2026-09-17T20:04:59.382Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/calibrated-vs-uncalibrated-multispectral-workflows/comparing-index-values-across-flights-and-sensors/</loc>
    <lastmod>2026-09-17T20:10:48.119Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/calibrated-vs-uncalibrated-multispectral-workflows/deciding-when-radiometric-calibration-is-worth-it/</loc>
    <lastmod>2026-09-17T20:09:18.915Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/computing-vegetation-indices-with-rasterio/</loc>
    <lastmod>2026-09-17T19:49:05.320Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/computing-vegetation-indices-with-rasterio/choosing-between-ndvi-ndre-and-gndvi/</loc>
    <lastmod>2026-09-17T19:52:28.111Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/computing-vegetation-indices-with-rasterio/computing-zonal-index-statistics-per-plot-polygon/</loc>
    <lastmod>2026-09-17T19:55:25.922Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/computing-vegetation-indices-with-rasterio/masking-soil-and-shadow-before-index-statistics/</loc>
    <lastmod>2026-09-17T19:53:58.529Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/computing-vegetation-indices-with-rasterio/writing-a-safe-ndvi-with-nodata-handling/</loc>
    <lastmod>2026-09-17T19:51:08.897Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/radiometric-calibration-in-python/</loc>
    <lastmod>2026-09-17T19:34:46.374Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/radiometric-calibration-in-python/applying-reflectance-panel-calibration-in-python/</loc>
    <lastmod>2026-09-17T22:23:30.478Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/radiometric-calibration-in-python/correcting-vignetting-and-lens-falloff/</loc>
    <lastmod>2026-09-17T19:38:11.775Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/radiometric-calibration-in-python/fixing-exposure-drift-across-a-multispectral-flight/</loc>
    <lastmod>2026-09-17T19:41:04.435Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/radiometric-calibration-in-python/using-downwelling-light-sensor-data-for-irradiance/</loc>
    <lastmod>2026-09-17T19:39:38.074Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/thermal-orthomosaic-processing-in-python/</loc>
    <lastmod>2026-09-17T19:57:00.191Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/thermal-orthomosaic-processing-in-python/converting-radiometric-jpegs-to-temperature-rasters/</loc>
    <lastmod>2026-09-17T19:58:58.428Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/thermal-orthomosaic-processing-in-python/correcting-thermal-drift-across-a-flight/</loc>
    <lastmod>2026-09-17T20:00:20.595Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/thermal-orthomosaic-processing-in-python/fixing-thermal-mosaic-seam-lines/</loc>
    <lastmod>2026-09-17T20:01:51.573Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/thermal-orthomosaic-processing-in-python/matching-thermal-and-rgb-orthomosaics/</loc>
    <lastmod>2026-09-17T20:03:27.305Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/troubleshooting-multispectral-and-thermal-failures/</loc>
    <lastmod>2026-09-17T20:12:11.566Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/troubleshooting-multispectral-and-thermal-failures/diagnosing-nan-and-inf-in-index-rasters/</loc>
    <lastmod>2026-09-17T20:14:15.930Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/troubleshooting-multispectral-and-thermal-failures/fixing-missing-or-mismatched-band-metadata/</loc>
    <lastmod>2026-09-17T20:15:48.548Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/multispectral-thermal-and-index-mapping-pipelines/troubleshooting-multispectral-and-thermal-failures/resolving-panel-detection-failures-in-calibration/</loc>
    <lastmod>2026-09-17T20:17:10.314Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/</loc>
    <lastmod>2026-09-17T18:33:27.038Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/change-detection-between-survey-epochs/</loc>
    <lastmod>2026-09-17T22:23:54.547Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/change-detection-between-survey-epochs/aligning-two-epochs-with-icp-before-differencing/</loc>
    <lastmod>2026-09-17T19:09:48.361Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/change-detection-between-survey-epochs/computing-dem-of-difference-rasters-in-python/</loc>
    <lastmod>2026-09-17T19:05:22.053Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/change-detection-between-survey-epochs/computing-m3c2-distances-on-drone-point-clouds/</loc>
    <lastmod>2026-09-17T19:08:11.681Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/change-detection-between-survey-epochs/separating-real-change-from-noise-with-detection-limits/</loc>
    <lastmod>2026-09-17T19:06:49.109Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/classifying-point-clouds-with-pdal-and-python/</loc>
    <lastmod>2026-09-17T18:36:55.256Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/classifying-point-clouds-with-pdal-and-python/filtering-noise-and-outliers-from-dense-clouds/</loc>
    <lastmod>2026-09-17T22:23:54.548Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/classifying-point-clouds-with-pdal-and-python/fixing-misclassified-ground-under-dense-canopy/</loc>
    <lastmod>2026-09-17T18:45:19.931Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/classifying-point-clouds-with-pdal-and-python/separating-buildings-from-vegetation-in-point-clouds/</loc>
    <lastmod>2026-09-17T18:40:28.944Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/classifying-point-clouds-with-pdal-and-python/validating-classification-against-manual-samples/</loc>
    <lastmod>2026-09-17T18:45:19.936Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/computing-volumes-and-stockpiles-in-python/</loc>
    <lastmod>2026-09-17T18:48:09.403Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/computing-volumes-and-stockpiles-in-python/choosing-a-base-surface-for-stockpile-volumes/</loc>
    <lastmod>2026-09-17T18:50:07.971Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/computing-volumes-and-stockpiles-in-python/clipping-stockpile-boundaries-from-vector-polygons/</loc>
    <lastmod>2026-09-17T18:53:11.845Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/computing-volumes-and-stockpiles-in-python/estimating-volume-uncertainty-from-surface-error/</loc>
    <lastmod>2026-09-17T18:51:39.139Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/computing-volumes-and-stockpiles-in-python/reconciling-volume-differences-between-flights/</loc>
    <lastmod>2026-09-17T18:54:41.615Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/mesh-and-texture-generation-automation/</loc>
    <lastmod>2026-09-17T18:56:37.466Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/mesh-and-texture-generation-automation/decimating-meshes-without-losing-breaklines/</loc>
    <lastmod>2026-09-17T18:58:20.765Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/mesh-and-texture-generation-automation/exporting-obj-and-gltf-for-web-viewers/</loc>
    <lastmod>2026-09-17T19:01:49.616Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/mesh-and-texture-generation-automation/fixing-texture-seams-and-baking-artifacts/</loc>
    <lastmod>2026-09-17T19:00:02.652Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/pdal-vs-laspy-for-point-cloud-automation/</loc>
    <lastmod>2026-09-17T19:18:39.695Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/pdal-vs-laspy-for-point-cloud-automation/benchmarking-pdal-pipelines-against-laspy-loops/</loc>
    <lastmod>2026-09-17T19:20:47.247Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/pdal-vs-laspy-for-point-cloud-automation/choosing-a-library-for-streaming-versus-in-memory-work/</loc>
    <lastmod>2026-09-17T19:22:25.433Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/point-cloud-formats-and-interchange-in-python/</loc>
    <lastmod>2026-09-17T19:11:43.565Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/point-cloud-formats-and-interchange-in-python/converting-las-to-copc-for-cloud-streaming/</loc>
    <lastmod>2026-09-17T19:13:43.318Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/point-cloud-formats-and-interchange-in-python/fixing-las-scale-and-offset-precision-loss/</loc>
    <lastmod>2026-09-17T19:15:11.332Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/point-cloud-formats-and-interchange-in-python/reading-e57-and-ply-into-a-python-pipeline/</loc>
    <lastmod>2026-09-17T19:16:58.649Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/troubleshooting-point-cloud-processing-failures/</loc>
    <lastmod>2026-09-17T19:23:48.162Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/troubleshooting-point-cloud-processing-failures/diagnosing-empty-output-from-a-pdal-pipeline/</loc>
    <lastmod>2026-09-17T19:25:44.323Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/troubleshooting-point-cloud-processing-failures/fixing-srs-lost-when-writing-las-files/</loc>
    <lastmod>2026-09-17T19:27:17.478Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.dronephotogrammetry.org/point-cloud-processing-and-3d-deliverables/troubleshooting-point-cloud-processing-failures/resolving-memory-errors-in-pdal-and-laspy/</loc>
    <lastmod>2026-09-17T19:28:48.962Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
