[general]
name=Grid Mapper - Substation Detector
qgisMinimumVersion=3.22
qgisMaximumVersion=4.99
description=Map electricity-grid assets and detect candidate substations, including resumable country-scale segment scanning, human-reviewed continual learning and safe model versioning.
version=1.5.1
author=Danson Mugambi (Bohemian Renewables)
email=mugambidanson@gmail.com
about=Grid Mapper turns the MSc Data Science workflow "Investigating the use of Deep learning tools to Map substations in Kenya" (University of East London, 2023) into QGIS Processing tools. It maps grid assets from OpenStreetMap, optionally detects candidate substations from imagery, captures human-reviewed TP/FP/corrected/missed examples, exports fixed train/validation/test snapshots, and maintains a local model registry with conservative promotion gates. The default Map the grid mode is OpenStreetMap-only and needs no AI runtime or model. Optional local ONNX inference requires the external Python package onnxruntime. Optional TFLite inference requires ai-edge-litert, tflite-runtime or tensorflow. These runtimes and model weights are not bundled. Roboflow mode requires a Roboflow API key and uploads image tiles to Roboflow for inference. Grid Mapper also contacts OpenStreetMap Nominatim/Overpass and whichever imagery service the user selects. See the README and docs/NETWORK_AND_PRIVACY.md before using third-party services or imagery commercially.
tracker=https://github.com/MugambiD/qgis-grid-mapper/issues
repository=https://github.com/MugambiD/qgis-grid-mapper
homepage=https://github.com/MugambiD/qgis-grid-mapper#readme
category=Raster
icon=icons/icon.png
tags=substation,grid,power,electricity,energy,deep learning,object detection,tflite,onnx,rf-detr,roboflow,remote sensing,satellite,renewable energy,active learning,continual learning
experimental=False
deprecated=False
hasProcessingProvider=yes
server=False
changelog=1.5.1 Security-scan hardening for the official QGIS plugin repository: no xml.sax import (small built-in XML escaper instead), SHA-256 instead of MD5/SHA-1 for cache and dataset keys, country-scan queue statements are now fixed SQL with bound parameters only, backend probing reports why each TFLite runtime failed, and the Roboflow key parameter constant was renamed (the parameter id stays API_KEY). Note: feedback sample ids and dataset split assignments are recomputed, so a store created by 1.5.0 keeps its recorded splits but new captures hash differently.
    1.5.0 Resumable country scanner: divide a country/AOI into approximate-km cells; persist OSM and AI queues in SQLite; save every completed segment immediately; resume after shutdown/crash; retry failed cells independently; retain raw per-segment OSM JSON; build a persistent GeoPackage; optional AI queue can run later after OSM collection; adaptive split queries and stale-cache fallback; missing local model/API key no longer destroys OSM progress; Python 3.12 UTC deprecation fixed.
    1.4.1 Public-distribution hardening: OSM-only is now the safe default; imagery/models are only initialised when AI is selected; transmission towers and distribution poles are separate optional layers; heavy structure downloads are tiled, deduplicated, clipped to the true AOI and non-fatal on timeout; distribution poles are off by default; optional OSM failures return partial data instead of killing the run; QGIS 4 metadata updated by removing the obsolete supportsQt6 flag; dependency, privacy and network-service documentation expanded.
    1.4.0 Human-in-the-loop continual learning: active-learning review queue; persistent TP/FP/corrected/missed feedback; fixed train/valid/test dataset snapshots; RF-DETR replay/fine-tuning notebook support; geography-aware validation metadata; safe candidate model registry and automatic use of the approved active model.
    1.3.0 ONNX models: RF-DETR detection + segmentation (true footprints) and YOLO; Colab notebook to train RF-DETR on substation data.
    1.2.1 More reliable OpenStreetMap download: multiple Overpass mirrors, retries, smaller queries and a 7-day cache.
    1.2.0 New 'Map the grid' tool: type a place, get OSM grid layers + AI substation scan.
    1.1.0 QGIS 4 / Qt6 compatibility work.
    1.0.0 First release: chip extraction, TFLite detection, Roboflow detection and validation.
