Add bounded GRB map acquisition
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-17 21:29:26 +02:00
parent 47cde21e17
commit 488da4cc83
28 changed files with 1644 additions and 134 deletions
+32
View File
@@ -1360,6 +1360,38 @@ idempotent for the exact plan/raster checksum, creates a new immutable raster
Dataset and DatasetVersion with the official edition, and retains every older
snapshot. No command is scheduled or invoked by startup or browser actions.
## Governed bounded GRB acquisition
`GET /api/v1/projects/{project_id}/datasets/grb/products` exposes four fixed
official vector products: building footprints, road segments, water
surfaces/lines and administrative parcels. `POST .../datasets/grb/acquire`
accepts an EPSG:4326 rectangle, optional project Area, one product key and an
explicit refresh flag.
The service queries only the allowlisted GRB OGC API collection paths, follows
complete same-host pagination and clips every geometry to `bbox ∩ Area`.
It explicitly requests OGC CRS84 GeoJSON for bbox and output; the native
EPSG:31370 storage CRS remains provenance rather than being guessed from raw
coordinates.
Requests fail closed above 20 km per side, 200 pages, 150,000 retained
features, 20 MiB per page or 256 MiB total. No partial Dataset is persisted
when a limit is exceeded. Official ids, request URLs, page checksums and the
final artifact checksum are retained as provenance.
Persistence uses the existing synchronous Job plus
`DatasetService.import_vector_bytes`, so Dataset, DatasetVersion and
VectorFeature rows remain one canonical flow. The browser never contacts the
provider directly. Exact request identities are reused for 24 hours. Buildings
return footprint area in hectares, roads return line length in kilometres,
water returns surface area plus supporting water-line length, and parcels
return mapped area. GRB cannot provide water volume, legal parcel boundaries
or traffic information.
Settings: `GRB_ENABLED`, `GRB_OGC_API_URL`, `GRB_MIN_SIDE_M`,
`GRB_MAX_SIDE_M`, `GRB_PAGE_SIZE`, `GRB_MAX_PAGES`, `GRB_MAX_FEATURES`,
`GRB_TIMEOUT_SECONDS`, `GRB_MAX_RESPONSE_MB`,
`GRB_MAX_TOTAL_RESPONSE_MB` and `GRB_CACHE_TTL_HOURS`.
## Governed DHMV terrain acquisition
`GET /api/v1/projects/{project_id}/datasets/dhmv/products` exposes the fixed