feat: add map-driven orthophoto analysis
This commit is contained in:
@@ -199,6 +199,20 @@ detector fixtures or download weights. A zero detection count is acceptable on
|
||||
the synthetic demo raster; production usefulness still requires validation on
|
||||
real georeferenced orthophotos and reference vectors.
|
||||
|
||||
### Map-driven building analysis
|
||||
|
||||
The primary map can hand an explicit EPSG:4326 rectangle to the bounded
|
||||
orthophoto acquisition endpoint. Its canonical raster Dataset then uses the
|
||||
unchanged configured-YOLO pipeline: 512 px tiles with 64 px overlap, preflight,
|
||||
local inference, Job + AnalysisRun + Detection persistence and persisted
|
||||
GeoJSON. When a ready GRB buildings reference Dataset exists, the same action
|
||||
launches existing detection QA and persists QualityCheck and Metric rows.
|
||||
|
||||
This flow does not download a model, bypass the model registry, write directly
|
||||
to Detection/vector tables or present AI boxes as official building truth.
|
||||
The 1 m request sampling is an operational model profile; provenance retains
|
||||
the official orthophoto source and latest-mosaic limitation.
|
||||
|
||||
### Real-data detection and QA validation
|
||||
|
||||
The real operational validation path uses operator-provided files rather than
|
||||
|
||||
@@ -191,6 +191,36 @@ Response: `DatasetRead` with extracted metadata if supported.
|
||||
|
||||
Vector uploads remain stored as original files and are also persisted into `vector_features` as queryable PostGIS state.
|
||||
|
||||
### POST `/api/v1/projects/{project_id}/datasets/orthophoto/acquire`
|
||||
|
||||
Explicitly acquire a bounded most-recent winter orthophoto selection from the
|
||||
official Digitaal Vlaanderen `OMWRGBMRVL` WMS `Ortho` layer.
|
||||
|
||||
```json
|
||||
{
|
||||
"bbox": {"min_x": 5.10, "min_y": 51.17, "max_x": 5.11, "max_y": 51.18, "crs": "EPSG:4326"},
|
||||
"area_id": "optional-project-area-uuid",
|
||||
"force_refresh": false
|
||||
}
|
||||
```
|
||||
|
||||
The canonical envelope contains a synchronous Job. Its `output_dataset_id`
|
||||
identifies the raster Dataset; `result_json` contains provider, layer, pixel
|
||||
dimensions, EPSG:4326/EPSG:31370 bounds, sampling resolution, attribution,
|
||||
cache reuse and limitation text.
|
||||
|
||||
Safety contract:
|
||||
|
||||
- every side must measure between 128 m and 1,024 m in EPSG:31370;
|
||||
- an optional `area_id` must belong to the project and cover at least 99% of
|
||||
the rectangle;
|
||||
- defaults are 1 m/pixel, a 32 MiB response limit and 24-hour exact-request
|
||||
reuse;
|
||||
- WMS bytes are georeferenced to EPSG:31370 and persisted only through
|
||||
`DatasetService`; no fetch runs on startup;
|
||||
- this is the latest mosaic available at request time, not a historical
|
||||
observation date for every pixel.
|
||||
|
||||
### GET `/api/v1/projects/{project_id}/datasets`
|
||||
|
||||
List datasets.
|
||||
|
||||
@@ -8076,3 +8076,30 @@ Live operational proof:
|
||||
|
||||
Next:
|
||||
- Add bounded operator-triggered orthophoto acquisition from a drawn map rectangle, then hand that raster to this proven guided pipeline. Keep external acquisition out of browser/startup paths and retain explicit source licensing/provenance.
|
||||
|
||||
## Sprint 196 - Map-driven official orthophoto analysis (2026-07-15)
|
||||
|
||||
Implemented:
|
||||
- Added explicit project-scoped acquisition for the official Digitaal
|
||||
Vlaanderen `OMWRGBMRVL` WMS `Ortho` layer.
|
||||
- Enforced EPSG:4326 input, EPSG:31370 metric bounds, 128-1,024 m side limits,
|
||||
optional persisted-Area coverage, 1 m sampling, timeout/response limits and
|
||||
24-hour exact-request reuse.
|
||||
- Georeferenced the RGB TIFF and persisted it, its DatasetVersion, source,
|
||||
request URL/hash, bounds, attribution and latest-mosaic limitation only
|
||||
through DatasetService.
|
||||
- Added one simple map action chaining acquisition, existing raster tiling,
|
||||
configured-YOLO inference, Detection persistence and existing GRB detection
|
||||
QA before showing the persisted result on MapLibre.
|
||||
- Exposed orthophoto settings through Docker Compose, the all-in-one Unraid
|
||||
runtime script and DockerMan template.
|
||||
|
||||
Validation before deployment:
|
||||
- Focused service/API tests passed, including in-memory TIFF georeferencing,
|
||||
persistence and the canonical Job envelope.
|
||||
- Frontend TypeScript typecheck and production build passed.
|
||||
|
||||
Next:
|
||||
- Deploy to Tower, execute one bounded Mol rectangle through the real WMS,
|
||||
local model and GRB QA, and verify persistence plus browser state before
|
||||
accepting the flow as operational.
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# Data Sources
|
||||
|
||||
## Orthofotomozaiek Vlaanderen - meest recent
|
||||
|
||||
- Naam: Orthofotomozaiek middenschalig, winteropnamen, kleur, meest recent
|
||||
- Beheerder: Digitaal Vlaanderen
|
||||
- Type: RGB-raster via WMS
|
||||
- Operationele laag: `OMWRGBMRVL` / `Ortho`
|
||||
- CRS bij opslag: `EPSG:31370`
|
||||
- Gebruik: expliciet begrensde luchtbeeldanalyse en lokale gebouwdetectie
|
||||
- Autoriteit: officiele beeldbron; AI-detecties zelf zijn niet-autoritatief
|
||||
|
||||
De hoofdkaart kan na een getekende rechthoek een expliciete, begrensde WMS
|
||||
GetMap-aanvraag uitvoeren. De backend aanvaardt alleen rechthoeken van 128 tot
|
||||
1.024 meter per zijde, samplet standaard op 1 m/pixel voor het actieve lokale
|
||||
modelprofiel en bewaart het gegeorefereerde GeoTIFF via DatasetService met
|
||||
aanvraag, checksum, bron, attributie en beperking. Een identieke selectie mag
|
||||
24 uur worden hergebruikt. Er is geen startupfetch en de browser bevraagt de
|
||||
externe WMS nooit rechtstreeks.
|
||||
|
||||
De bron is de meest recente samengestelde wintermozaiek op het moment van de
|
||||
aanvraag. GeoIntel verzint geen historische pixelopnamedatum. Bronnen:
|
||||
|
||||
- https://www.vlaanderen.be/datavindplaats/catalogus/orthofotomozaiek-middenschalig-winteropnamen-kleur-meest-recent-vlaanderen
|
||||
- https://www.vlaanderen.be/digitaal-vlaanderen/onze-diensten-en-platformen/luchtopnamen/gebruik-orthofotomozaieken
|
||||
|
||||
Dit document verzamelt concrete databronnen voor GeoIntel Kempen.
|
||||
|
||||
## GRB — Basiskaart Vlaanderen
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
- [x] Reduce end-user noise by moving technical projects, source metadata, QA evidence, provider internals and model diagnostics behind explicit advanced disclosures.
|
||||
- [x] Default Detection Lab to the configured local YOLO asset and present measured model quality and control requirements honestly.
|
||||
- [x] Extend official population and land-use time series from Mol to the approved 28-municipality regional scope.
|
||||
- [x] Connect a drawn rectangle to bounded official orthophoto acquisition, local configured-YOLO detection and persisted GRB QA.
|
||||
|
||||
This file now starts with the current implementation status. Older preparation/backlog sections are preserved below as historical planning context and should not be treated as the live sprint board without checking `docs/CODEX_EXECUTION_LOG.md`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user