Aggregate regional bathymetry partitions
This commit is contained in:
@@ -2111,6 +2111,26 @@ accounting sets `partitioned_source_audit=true` and
|
||||
`regional_partitions_complete=true`; partial operator runs remain hidden at
|
||||
regional scope.
|
||||
|
||||
### POST `/api/v1/projects/{project_id}/datasets/bathymetry/profiles/partitions/select`
|
||||
|
||||
Runs one bounded spatial selection across the latest complete `flanders`
|
||||
VHA manifest. The request reuses `VectorSelectionRequest`: EPSG:4326 bbox,
|
||||
optional persisted Area and a result limit of at most 1,000 features.
|
||||
|
||||
The backend first rejects incomplete or inconsistent manifests, selects only
|
||||
municipality Dataset partitions whose recorded bounds overlap the request and
|
||||
then queries their persisted `vector_features` with one PostGIS intersection.
|
||||
When the Area is a municipality, only that exact Area partition is eligible.
|
||||
A regional Area can combine all intersecting partitions without treating one
|
||||
municipality Dataset as representative regional data.
|
||||
|
||||
The canonical response extends the ordinary vector-selection result with
|
||||
`partition_count`, `available_partition_count`, `partition_scope_key`,
|
||||
`source_name` and the contributing `dataset_ids`. GeoJSON is capped by the
|
||||
request limit, while `total_feature_count` and all configured depth/width
|
||||
metrics are calculated across the complete spatial result. Empty municipalities
|
||||
return an empty, honest result. No provider request occurs during analysis.
|
||||
|
||||
Future provider output continues to use DatasetService and, for vectors,
|
||||
VectorFeatureService. Arbitrary service URLs, browser-side fetches, insecure
|
||||
TLS bypasses and startup downloads remain forbidden.
|
||||
|
||||
@@ -50,14 +50,19 @@ the provider and the application. A regional logical layer may group complete
|
||||
partitions, but each Dataset retains its Area id, query URLs, checksums, exact
|
||||
count and measurement-date range.
|
||||
|
||||
Before regional activation:
|
||||
Regional activation now uses the complete checksum-bound municipality
|
||||
manifest. The Map flow chooses the exact Area partition for a municipality and
|
||||
uses a bounded multi-Dataset PostGIS query for regional rectangles or the
|
||||
complete Flanders Area. GeoJSON remains limited to 1,000 rendered features;
|
||||
counts and configured metrics cover the complete spatial result. Individual
|
||||
profile dates remain authoritative and no Dataset-level survey date is
|
||||
fabricated.
|
||||
|
||||
Remaining operational follow-up:
|
||||
|
||||
- add a governed Flanders boundary manifest and partition coordinator;
|
||||
- prove idempotent resume and no duplicate VHA `OBJECTID` within a partition;
|
||||
- benchmark PostGIS point selection and viewport delivery;
|
||||
- add freshness/version probing for the VHA MapServer;
|
||||
- keep individual profile dates instead of fabricating one Dataset
|
||||
`observed_at`.
|
||||
- keep selection-performance evidence as the profile inventory grows;
|
||||
- retain explicit no-profile municipalities in every refreshed manifest.
|
||||
|
||||
## Tier 3: Belgium
|
||||
|
||||
@@ -123,7 +128,9 @@ bed evolution.
|
||||
1. Operate and validate the Mol VHA profile Dataset and map flow. **Done.**
|
||||
2. Add VHA municipal partition orchestration for Flanders. **Done and live:
|
||||
285/285 municipality partitions accounted for, 269 with data, 16 explicit
|
||||
no-profile results, 128,913 profile points and zero failures.**
|
||||
no-profile results, 128,913 profile points and zero failures. Regional
|
||||
selection and export now aggregate the latest complete manifest in
|
||||
PostGIS.**
|
||||
3. Implement a bounded MDK WCS probe, then acquisition behind live evidence.
|
||||
**Probe implemented. Acquisition blocked because the live endpoint fails
|
||||
strict hostname validation and does not expose usable capabilities.**
|
||||
|
||||
@@ -10119,3 +10119,25 @@ Final live acceptance:
|
||||
searchable Area/Dataset pages and mounts collapsed Area/history catalogs
|
||||
only when opened. This preserves the complete regional inventory without
|
||||
overwhelming the browser DOM.
|
||||
|
||||
## Sprint 236 follow-up - manifest-aware regional VHA analysis (2026-07-17)
|
||||
|
||||
Implemented:
|
||||
- Corrected the Map explorer so a complete Flemish VHA manifest is never
|
||||
represented or queried as one arbitrary municipality Dataset.
|
||||
- Added one canonical bounded partition-selection endpoint. It selects the
|
||||
latest internally complete manifest generation, prefilters Dataset bounds
|
||||
and runs a single PostGIS intersection across the contributing persisted
|
||||
`vector_features`.
|
||||
- Kept exact municipality selection on its own Area partition and added
|
||||
manifest-aware server-side GeoJSON export with complete contributing
|
||||
Dataset provenance.
|
||||
- Made the regional Waterbodem card report the sum of all 269 data-bearing
|
||||
partitions: 128,913 profiles and 79,398 source documents. The rendered
|
||||
GeoJSON remains capped at 1,000 objects while counts and configured metrics
|
||||
cover the complete spatial result.
|
||||
|
||||
Validation:
|
||||
- The complete readiness gate passed: 927 backend tests, backend compilation,
|
||||
116 documented API routes, Alembic head `202607160001`, frontend TypeScript
|
||||
typecheck and the production Vite build.
|
||||
|
||||
Reference in New Issue
Block a user