[general]
name=PWTT - Battle Damage Detection
qgisMinimumVersion=3.22
description=Pixel-Wise T-Test (PWTT) algorithm for building damage detection from Sentinel-1 SAR imagery.
about=Detects damaged buildings in conflict zones using open Sentinel-1 SAR. Supports openEO/CDSE (cloud), Google Earth Engine, and full-local processing (NumPy/rasterio) with selectable GRD sources: CDSE, ASF, or Microsoft Planetary Computer. Outputs damage raster and optional per-building footprint scores as native QGIS layers. Based on PWTT (arXiv:2405.06323).
version=1.0.3
author=Salaheldinaz
email=qgis.plugins@salaheldinaz.com
icon=resources/icon_main.svg
tags=sar,sentinel-1,damage,conflict,remote sensing,openeo,earth engine
homepage=https://github.com/Salaheldinaz/PWTT-QGIS-Plugin
tracker=https://github.com/Salaheldinaz/PWTT-QGIS-Plugin/issues
repository=https://github.com/Salaheldinaz/PWTT-QGIS-Plugin
license=https://github.com/Salaheldinaz/PWTT-QGIS-Plugin/blob/HEAD/LICENSE
experimental=True
deprecated=False
category=Raster
hasProcessingProvider=no
changelog=1.0.3 - refactor: optimize download function and enhance code structure (2026-04-22); 1.0.2 - chore: update .gitignore and improve download function security (2026-04-21); 1.0.1 - chore: add flake8 configuration and improve code formatting (2026-04-21); 1.0.0 - chore: update author and email information in metadata file (2026-04-18); 0.12.0 - feat(PWTTControlsDock): enhance AOI queue management with split checks and dynamic naming (2026-04-18); 0.11.1 - fix: update terminology for war/event references in documentation and code (2026-04-18); 0.11.0 - feat(rendering): enhance color ramp functionality and tooltips in PWTT jobs dock (2026-04-15); 0.10.0 - feat(gee_backend): implement GEE streaming download function with improved error handling (2026-04-15); 0.9.1 - refactor: update GEE download size handling to use effective max bytes (2026-04-14); 0.9.0 - feat: implement per-image orbit-normalized z-score time series computation and sidecar writing for GEE and Local backends; add UI support for viewing time series charts (2026-04-12); 0.8.4 - chore: remove dead import in _AoiSplitDialog.__init__ (2026-04-12); 0.8.3 - fix: code quality — stable rubber band colours, disconnect specific slot, QDialog.Accepted (2026-04-12); 0.8.2 - docs: update QGIS output style documentation and UI tooltips for T-statistic terminology (2026-04-08); 0.8.1 - fix: specify minimum version for Earth Engine API dependency (2026-04-08); 0.8.0 - feat: add GEE credential merging functionality (2026-04-08); 0.7.0 - feat: implement Gitea-compatible release script and update workflow (2026-04-08); 0.6.0 - feat: update release workflow to include detailed release descriptions (2026-04-08); 0.5.1 - fix: update resource identifiers and improve build script portability (2026-04-08); 0.5.0 - feat: add functionality to clear saved GEE and openEO credentials (2026-04-06); 0.4.0 - feat: implement persistence for openEO credentials in settings (2026-04-06); 0.3.0 - feat: add run confirmation summary dialog in PWTT controls (2026-04-06); 0.2.0 - feat: add comprehensive guide for QGIS plugin development best practices (2026-04-06); 0.1.75 - test: add GEE backend authentication tests (2026-04-06); 0.1.74 - fix: update subprocess working directory and clear path-importer cache (2026-04-06); 0.1.73 - fix: update subprocess working directory and clear path-importer cache (2026-04-02); 0.1.72 - fix: strip GDAL URI params from layer source before path ops in active-layer styling (2026-04-02); 0.1.71 - fix: strip GDAL URI params from layer source before path ops in active-layer styling (2026-04-02); 0.1.70 - Update PWTT QGIS Plugin to version 0.1.69, adding support for specifying data sources in local backend jobs. Enhanced layer naming and logging to include the selected GRD catalog (cdse/asf/pc) for improved clarity. Updated changelog to reflect these changes. (2026-04-01); 0.1.69 - Update PWTT QGIS Plugin to version 0.1.68, enhancing the local backend to align with openEO standards by implementing a conservative p-value bound and Welford's method for variance calculation. Adjusted the maximum number of scenes per period to improve performance and updated the changelog to reflect these changes. (2026-03-31); 0.1.68 - Local PWTT aligned with openEO: σ⁰ linear (no Lee/log), pooled t and p-value bound as CDSE graph, 50/100/150 m kernels on raw max |t| (no extra Gaussian). Welford mean/variance; default 24 scenes/period (QgsSettings PWTT/local_max_scenes_per_period, max 80); catalogue search up to 80 hits/window. (2026-03-31); 0.1.67 - Update PWTT QGIS Plugin to version 0.1.66, refactoring dependency management to ensure proper handling of PROJ data directories for pyproj and geopandas. Introduced functions to discover and set the PROJ_DATA and PROJ_LIB environment variables, enhancing compatibility with QGIS installations. Updated changelog to reflect these changes. (2026-03-31); 0.1.66 - Refactor dependency management in PWTT QGIS Plugin (2026-03-31); 0.1.65 - Enhance dependency management in PWTT QGIS Plugin (2026-03-31); 0.1.64 - Update PWTT QGIS Plugin to version 0.1.63, introducing a new strategy for warping raster bands that prioritizes GCP-based reprojecting for PC Sentinel-1 COGs, followed by affine-based and GDAL fallback methods. Enhanced logging for each warping strategy to improve debugging and user feedback. Updated changelog to reflect these changes. (2026-03-31); 0.1.63 - Update PWTT QGIS Plugin to version 0.1.62, refactoring georeferencing and warping functions in local_backend.py to enhance handling of GCP-only GRD COGs. Improved the _warp_band_to_aoi_grid function to avoid using WarpedVRT for better compatibility with mixed GeoTIFF/GCP metadata. Updated docstrings for clarity on functionality and limitations. Updated changelog to reflect these changes. (2026-03-31); 0.1.62 - Refactor georeferencing and warping functions in local_backend.py to improve handling of GCP-only GRD COGs. Updated _effective_src_geo to prioritize GCP georeferencing in pixel-index space and modified _warp_band_to_aoi_grid to avoid using WarpedVRT for better compatibility with mixed GeoTIFF/GCP metadata. Enhanced docstrings for clarity on functionality and limitations. (2026-03-31); 0.1.61 - Add job log dock to PWTT QGIS Plugin (2026-03-31); 0.1.60 - Update PWTT QGIS Plugin to version 0.1.59, introducing job export and import functionality. Users can now save job parameters and activity logs to a JSON file and merge jobs from external files, enhancing job management capabilities. Updated changelog to reflect these new features and improvements. (2026-03-31); 0.1.59 - Jobs dock: export/import jobs as JSON (merge on import; id collision handling); reminders about copying output folders and project files for local files and logs. (2026-03-31); 0.1.58 - Add functions to manage ZIP file cleanup after SAFE extraction (2026-03-31); 0.1.57 - Add functions to manage ZIP file cleanup after SAFE extraction (2026-03-30); 0.1.56 - Jobs dock / View logs: colorized HTML log (theme-aware light/dark), keyword-based (CDSE/ASF/PC/Local, Pre/Post, success/warn/error); escape exception text in HTML. (2026-03-30); 0.1.55 - Local processing: detailed job log lines for API/search/download steps (CDSE OData, ASF geo_search/download, PC STAC/streams), cache paths, VV/VH file paths, and NumPy pipeline stages (no tokens or signed URL queries logged). (2026-03-30); 0.1.54 - Local ASF/PC: show truncated download error in live progress; Jobs dock persists ``activity_log`` to jobs.json (debounced while running) and adds **View logs…** dialog for saved history. (2026-03-30); 0.1.53 - Fix planetary_computer import on QGIS: drop cached ``typing_extensions`` from ``sys.modules`` when PWTT deps ship a newer copy so ``Sentinel`` resolves from the ``--target`` tree instead of QGIS's older bundle. Correct post-install dialog: use PWTT Damage Detection panel → Install Dependencies (not a Plugins submenu). (2026-03-30); 0.1.52 - Fix Planetary Computer / ASF local deps: pip packages were appended on sys.path after QGIS, so planetary_computer loaded from PWTT deps but pydantic/pystac resolved from QGIS first and imports failed. Added deps_priority() context and DEPS_PRIORITY_IMPORTS (planetary_computer, pystac_client, pystac, asf_search) for checks and runtime imports; explicit pystac check for PC; diagnose_import_failures() and clearer post-install dialog. (2026-03-30); 0.1.51 - Update PWTT QGIS Plugin to version 0.1.50, implementing a major overhaul of dependency management. Introduced a standalone uv binary manager for improved installation processes, including auto-download capabilities and enhanced error handling. Updated changelog to reflect these significant changes and improvements in user experience. (2026-03-30); 0.1.50 - Major dependency management overhaul inspired by opengeos/geoai. Auto-downloads standalone uv binary when no uv/pip on PATH, QGIS proxy support for pip/uv, SSL/network error detection with user-friendly messages and automatic SSL bypass retry, deps hash tracking for staleness detection, real progress bar with cancel support during installs, clean subprocess env stripping QGIS variables, Windows console hiding, per-download progress parsing. (2026-03-30); 0.1.49 - Update PWTT QGIS Plugin to version 0.1.48, introducing enhancements for macOS compatibility. Implemented a mechanism to inject site-packages for Python installations within QGIS on macOS, ensuring proper import functionality for dependencies. Updated the changelog to reflect these changes and improved the handling of backend changes in the main dialog. (2026-03-30); 0.1.48 - Update PWTT QGIS Plugin to version 0.1.47, enhancing Python interpreter detection for Windows and macOS. Improved logic for identifying Python executables in various installations, ensuring better compatibility and dependency management. Updated changelog to reflect these changes. (2026-03-30); 0.1.47 - Enhance Python interpreter detection in _install_into_target function for Windows and macOS. Added logic to identify Python executables in OSGeo4W and standalone installations on Windows, as well as improved handling for various QGIS.app configurations on macOS. This ensures better compatibility and installation of dependencies based on the user's environment. (2026-03-30); 0.1.46 - Update PWTT QGIS Plugin to version 0.1.45, enhancing the documentation in HOW_IT_WORKS.md and README.md to clarify backend data sources and authentication requirements. Introduced a new local backend option for downloading Sentinel-1 GRD products from ASF and Microsoft Planetary Computer, alongside existing CDSE support. Updated plugin.py and local_backend.py to accommodate these changes, ensuring proper authentication and product handling. Added asf_downloader.py and pc_downloader.py for managing downloads from ASF and Planetary Computer, respectively. Improved job management and UI elements in the GRD staging dock for better user experience. (2026-03-30); 0.1.45 - Local Processing now supports selectable GRD source (CDSE, ASF/Earthdata, Planetary Computer), dependency checks were unified in run/auth flow to avoid duplicate checks, docs/metadata were updated for NumPy/rasterio local processing and source-specific auth/runtime notes. (2026-03-30); 0.1.44 - UI/styling/docs updates and task completion handling refinement. (2026-03-29); 0.1.42 - Removed scipy dependency from local backend (NumPy-only ops). (2026-03-29); 0.1.28 - Added GRD staging dock and offline product handling for local CDSE jobs. (2026-03-29); 0.1.0 - Initial release with openEO, GEE, and local backends.
