feat: add temporal Mol explorer
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-14 15:19:42 +02:00
parent 0ec1ab4970
commit c0943fe7d4
39 changed files with 3065 additions and 163 deletions
+50
View File
@@ -1393,3 +1393,53 @@ GET /api/v1/exports/{export_id}/download
```
PDF/report-designer functionality can be added after core GeoAI workflows work.
## Temporal datasets and area evolution
Temporal metadata describes the source observation, not API run history. A
snapshot is a normal persisted dataset grouped by `temporal_series_key` and
ordered by `observed_at`. Optional validity uses `valid_from` and `valid_to`;
`temporal_granularity` is `snapshot`, `day`, `month`, `year` or `period`.
Dataset upload accepts those temporal fields plus `source_version`. When a
dataset declares `source_metadata.selection_aggregation`, the vector bbox
selection response also contains a `summary` with metric label/value/unit,
aggregation method, feature count, estimate status and an optional warning.
Supported PostGIS aggregations are feature count, intersection area,
intersection length, numeric sum and area-weighted numeric sum. Area and length
are measured after transformation to EPSG:31370.
### PATCH `/api/v1/projects/{project_id}/datasets/{dataset_id}/temporal`
Updates the temporal provenance of an existing dataset. Series key and
observation date are required together. It does not alter features or
manufacture a historical observation.
### GET `/api/v1/projects/{project_id}/datasets/{dataset_id}/versions`
Lists immutable storage/provenance versions. Uploads and derived datasets
create version 1 in the same persistence transaction.
### GET `/api/v1/projects/{project_id}/temporal/series`
Returns dated project series in the canonical envelope. Each item contains its
source/layer identity, first and last observations and ordered datasets.
### POST `/api/v1/projects/{project_id}/temporal/compare`
```json
{
"earlier_dataset_id": "uuid",
"later_dataset_id": "uuid",
"bbox": {"west": 5.0, "south": 51.0, "east": 5.2, "north": 51.2},
"preview_limit": 500
}
```
Both datasets must belong to the project and the same temporal series, with
the earlier observation preceding the later one. The response contains source
snapshot references, selection bbox, earlier/later metric values,
absolute/percentage change, estimate status, warnings and GeoJSON evidence.
Added/removed/modified object changes are calculated only when source
provenance declares stable feature identities; otherwise
`object_changes.available=false` and no object history is inferred.