Initial public release
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# GeoIntel Kempen — Change Detection Specification v1.0
|
||||
|
||||
Change Detection is a major showcase workflow combining raster, vector, AI and QA/QC.
|
||||
|
||||
## Goal
|
||||
|
||||
Compare two datasets or analysis runs for the same area and detect additions, removals and significant changes.
|
||||
|
||||
## Supported methods
|
||||
|
||||
## Method A — Vector change detection V1
|
||||
|
||||
Compare two vector layers or two analysis outputs.
|
||||
|
||||
Examples:
|
||||
|
||||
- GRB buildings snapshot A vs snapshot B.
|
||||
- AI detections from raster A vs AI detections from raster B.
|
||||
- OSM buildings from run A vs OSM buildings from run B.
|
||||
|
||||
### Inputs
|
||||
|
||||
- layer A
|
||||
- layer B
|
||||
- area polygon
|
||||
- class filter optional
|
||||
- matching threshold
|
||||
|
||||
### Algorithm
|
||||
|
||||
1. Normalize CRS.
|
||||
2. Clip both layers to area.
|
||||
3. Match features using IoU or spatial overlap.
|
||||
4. Classify:
|
||||
- added: feature in B without match in A
|
||||
- removed: feature in A without match in B
|
||||
- unchanged: matched with stable geometry
|
||||
- modified: matched but area or geometry changed above threshold
|
||||
|
||||
### Metrics
|
||||
|
||||
- added count
|
||||
- removed count
|
||||
- modified count
|
||||
- added area m²
|
||||
- removed area m²
|
||||
- net area change m²
|
||||
- percentage change
|
||||
|
||||
## Method B — Raster index change V2
|
||||
|
||||
Compare NDVI/NDWI/NDBI rasters.
|
||||
|
||||
### Inputs
|
||||
|
||||
- index raster A
|
||||
- index raster B
|
||||
- threshold
|
||||
|
||||
### Algorithm
|
||||
|
||||
```text
|
||||
delta = index_B - index_A
|
||||
classify pixels by threshold
|
||||
polygonize changed zones
|
||||
```
|
||||
|
||||
### Outputs
|
||||
|
||||
- change raster
|
||||
- changed polygons
|
||||
- summary statistics
|
||||
|
||||
## Method C — AI segmentation change V3
|
||||
|
||||
Run segmentation on both images and compare class polygons.
|
||||
|
||||
Examples:
|
||||
|
||||
- vegetation loss
|
||||
- new buildings
|
||||
- water change
|
||||
|
||||
## Output layers
|
||||
|
||||
- `change_added`
|
||||
- `change_removed`
|
||||
- `change_modified`
|
||||
- `change_heatmap`
|
||||
- `change_uncertain`
|
||||
|
||||
## API
|
||||
|
||||
```http
|
||||
POST /analysis/change-detection
|
||||
GET /analysis/{id}/changes
|
||||
POST /analysis/{id}/exports/change-geojson
|
||||
```
|
||||
|
||||
## UI requirements
|
||||
|
||||
Change Lab must support:
|
||||
|
||||
- dataset/layer A selector
|
||||
- dataset/layer B selector
|
||||
- method selector
|
||||
- area selector
|
||||
- threshold controls
|
||||
- timeline labels
|
||||
- map overlays for added/removed/modified
|
||||
- metrics cards
|
||||
- export
|
||||
|
||||
## V1 target
|
||||
|
||||
Implement vector change detection. Raster and AI-based change detection are later phases.
|
||||
Reference in New Issue
Block a user