<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://www.pyqgis-engineering.org/</loc><lastmod>2026-08-07</lastmod><priority>1.0</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/</loc><lastmod>2026-08-07</lastmod><priority>0.8</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/attribute-data-and-the-expression-engine/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/attribute-data-and-the-expression-engine/filtering-features-with-qgsfeaturerequest-expressions/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/attribute-data-and-the-expression-engine/adding-a-field-and-populating-it-with-an-expression/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/attribute-data-and-the-expression-engine/registering-a-custom-expression-function-with-qgsfunction/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/coordinate-transformations-and-crs-handling/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/coordinate-transformations-and-crs-handling/batch-reprojecting-a-directory-of-shapefiles-in-pyqgis/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/coordinate-transformations-and-crs-handling/choosing-and-pinning-a-proj-transformation-pipeline/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/coordinate-transformations-and-crs-handling/troubleshooting-crs-mismatches-in-pyqgis-scripts/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/geometry-operations-and-validation/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/geometry-operations-and-validation/buffering-and-spatial-predicates-with-qgsgeometry/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/geometry-operations-and-validation/fixing-invalid-geometries-in-pyqgis/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/geometry-operations-and-validation/simplifying-geometries-without-breaking-topology/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/layer-styling-and-symbology-automation/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/layer-styling-and-symbology-automation/applying-a-categorized-renderer-from-python/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/layer-styling-and-symbology-automation/data-defined-symbol-size-and-colour/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/layer-styling-and-symbology-automation/saving-and-loading-layer-styles-as-qml/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/memory-management-and-garbage-collection-for-gis-objects/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/memory-management-and-garbage-collection-for-gis-objects/preventing-memory-leaks-when-processing-large-geotiff-rasters/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/memory-management-and-garbage-collection-for-gis-objects/profiling-pyqgis-memory-with-tracemalloc-and-rss/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/signal-and-slot-event-handling-in-qgis/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/signal-and-slot-event-handling-in-qgis/disconnecting-signals-safely-on-plugin-unload/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/signal-and-slot-event-handling-in-qgis/implementing-custom-event-filters-for-qgis-map-canvas-interactions/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/spatial-indexing-and-query-optimization/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/spatial-indexing-and-query-optimization/nearest-neighbour-search-with-qgsspatialindex/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/spatial-indexing-and-query-optimization/qgsspatialindex-vs-setfilterrect-when-to-use-each/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/vector-and-raster-data-access-patterns/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/vector-and-raster-data-access-patterns/optimizing-feature-iteration-with-qgsvectorlayergetfeatures/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/vector-and-raster-data-access-patterns/reading-raster-pixel-values-with-qgsrasterdataprovider/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/vector-and-raster-data-access-patterns/streaming-cloud-optimized-geotiffs-over-http/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/working-with-qgsproject-and-layer-registry/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/working-with-qgsproject-and-layer-registry/how-to-safely-load-shapefiles-into-qgsproject-without-ui-blocking/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/pyqgis-core-architecture-data-handling/working-with-qgsproject-and-layer-registry/reading-and-writing-project-variables-from-python/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/</loc><lastmod>2026-08-07</lastmod><priority>0.8</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/asynchronous-task-execution-with-qgstask/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/asynchronous-task-execution-with-qgstask/qgstask-vs-threading-thread-in-pyqgis/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/asynchronous-task-execution-with-qgstask/reporting-progress-and-cancellation-from-qgstask/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/asynchronous-task-execution-with-qgstask/running-heavy-geoprocessing-in-background-without-freezing-ui/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/automating-print-layouts-and-map-export/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/automating-print-layouts-and-map-export/exporting-a-print-layout-to-pdf-with-qgslayoutexporter/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/automating-print-layouts-and-map-export/generating-an-atlas-map-series-programmatically/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/building-custom-processing-algorithms/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/building-custom-processing-algorithms/adding-enum-and-field-parameters-to-a-processing-algorithm/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/building-custom-processing-algorithms/creating-a-reusable-pyqgis-processing-algorithm-template/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/custom-map-canvas-overlays-and-rendering/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/custom-map-canvas-overlays-and-rendering/building-a-custom-qgsmapcanvasitem-overlay/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/custom-map-canvas-overlays-and-rendering/drawing-temporary-geometries-with-qgsrubberband/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/designing-qt-dialogs-and-form-widgets/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/designing-qt-dialogs-and-form-widgets/connecting-qgis-form-widgets-to-vector-layer-attributes/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/designing-qt-dialogs-and-form-widgets/persisting-dialog-state-with-qgssettings/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/integrating-toolbars-and-menu-actions/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/integrating-toolbars-and-menu-actions/adding-custom-icons-and-tooltips-to-qgis-toolbar-buttons/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/integrating-toolbars-and-menu-actions/building-exclusive-tool-modes-with-qactiongroup/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/network-requests-and-remote-data-in-plugins/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/network-requests-and-remote-data-in-plugins/fetching-json-from-an-api-without-freezing-qgis/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/network-requests-and-remote-data-in-plugins/handling-proxies-and-timeouts-in-plugin-requests/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/network-requests-and-remote-data-in-plugins/loading-a-wfs-layer-in-a-background-task/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/plugin-lifecycle-and-resource-management/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/plugin-lifecycle-and-resource-management/properly-cleaning-up-plugin-resources-on-qgis-shutdown/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/plugin-lifecycle-and-resource-management/writing-an-idempotent-plugin-unload-method/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/plugin-settings-and-configuration-management/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/plugin-settings-and-configuration-management/adding-a-plugin-page-to-the-qgis-options-dialog/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/plugin-settings-and-configuration-management/migrating-plugin-settings-between-releases/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/plugin-development-ui-integration/plugin-settings-and-configuration-management/storing-credentials-with-qgsauthmanager/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/</loc><lastmod>2026-08-07</lastmod><priority>0.8</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/containerizing-qgis-with-docker/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/containerizing-qgis-with-docker/building-a-minimal-qgis-docker-image-for-automation/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/containerizing-qgis-with-docker/running-headless-qgis-with-xvfb-in-docker/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/continuous-integration-for-qgis-projects/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/continuous-integration-for-qgis-projects/gating-merges-on-a-qgis-version-matrix/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/continuous-integration-for-qgis-projects/running-qgis-plugin-tests-in-github-actions/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/packaging-and-distributing-qgis-plugins/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/packaging-and-distributing-qgis-plugins/publishing-a-plugin-to-the-qgis-plugin-repository/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/packaging-and-distributing-qgis-plugins/structuring-plugin-metadata-txt-for-distribution/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/scheduled-batch-processing-and-pipeline-orchestration/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/scheduled-batch-processing-and-pipeline-orchestration/making-batch-output-atomic-with-write-then-rename/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/scheduled-batch-processing-and-pipeline-orchestration/processing-only-changed-inputs-with-a-state-file/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/scheduled-batch-processing-and-pipeline-orchestration/running-a-nightly-pyqgis-job-with-cron/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/standalone-pyqgis-scripts-and-headless-execution/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/standalone-pyqgis-scripts-and-headless-execution/geopackage-vs-postgis-as-a-processing-backend/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/standalone-pyqgis-scripts-and-headless-execution/how-to-run-a-processing-algorithm-headlessly-in-python/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/standalone-pyqgis-scripts-and-headless-execution/initializing-qgsapplication-in-a-headless-environment/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/testing-pyqgis-with-pytest-qgis/</loc><lastmod>2026-08-07</lastmod><priority>0.6</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/testing-pyqgis-with-pytest-qgis/mocking-the-qgis-iface-object-in-unit-tests/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
  <url><loc>https://www.pyqgis-engineering.org/headless-automation-cicd-testing/testing-pyqgis-with-pytest-qgis/writing-your-first-pytest-qgis-test/</loc><lastmod>2026-08-07</lastmod><priority>0.5</priority></url>
</urlset>
