feat: add temporal Mol explorer
This commit is contained in:
@@ -476,6 +476,8 @@ def upload_dataset(
|
||||
reference_layer_name: str | None,
|
||||
source_metadata: dict[str, Any],
|
||||
provenance_metadata: dict[str, Any],
|
||||
temporal_series_key: str,
|
||||
observed_at: str,
|
||||
timeout: int,
|
||||
) -> dict[str, Any]:
|
||||
form = {
|
||||
@@ -486,6 +488,10 @@ def upload_dataset(
|
||||
"source_metadata_json": json.dumps(source_metadata, ensure_ascii=False),
|
||||
"provenance_metadata_json": json.dumps(provenance_metadata, ensure_ascii=False),
|
||||
"area_id": area_id,
|
||||
"temporal_series_key": temporal_series_key,
|
||||
"observed_at": observed_at,
|
||||
"temporal_granularity": "snapshot",
|
||||
"source_version": observed_at[:10],
|
||||
}
|
||||
if reference_layer_name:
|
||||
form["reference_layer_name"] = reference_layer_name
|
||||
@@ -499,6 +505,32 @@ def upload_dataset(
|
||||
return response_data(response)
|
||||
|
||||
|
||||
def ensure_temporal_metadata(
|
||||
session: requests.Session,
|
||||
base_url: str,
|
||||
project_id: str,
|
||||
dataset: dict[str, Any],
|
||||
*,
|
||||
temporal_series_key: str,
|
||||
observed_at: str,
|
||||
timeout: int,
|
||||
) -> dict[str, Any]:
|
||||
if dataset.get("temporal_series_key") == temporal_series_key and dataset.get("observed_at"):
|
||||
return dataset
|
||||
return response_data(
|
||||
session.patch(
|
||||
f"{base_url}/api/v1/projects/{project_id}/datasets/{dataset['id']}/temporal",
|
||||
json={
|
||||
"temporal_series_key": temporal_series_key,
|
||||
"observed_at": observed_at,
|
||||
"temporal_granularity": "snapshot",
|
||||
"source_version": observed_at[:10],
|
||||
},
|
||||
timeout=timeout,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def provision_workspace(
|
||||
args: argparse.Namespace,
|
||||
boundary_path: Path,
|
||||
@@ -558,6 +590,18 @@ def provision_workspace(
|
||||
"source_url": GRB_GBG_ITEMS_URL,
|
||||
"artifact_sha256": manifest["buildings_sha256"],
|
||||
},
|
||||
temporal_series_key="grb:buildings:mol",
|
||||
observed_at=manifest["generated_at"],
|
||||
timeout=args.import_timeout,
|
||||
)
|
||||
else:
|
||||
building_dataset = ensure_temporal_metadata(
|
||||
session,
|
||||
base_url,
|
||||
project_id,
|
||||
building_dataset,
|
||||
temporal_series_key="grb:buildings:mol",
|
||||
observed_at=manifest["generated_at"],
|
||||
timeout=args.import_timeout,
|
||||
)
|
||||
|
||||
@@ -587,6 +631,18 @@ def provision_workspace(
|
||||
"source_url": manifest["boundary_source_url"],
|
||||
"artifact_sha256": manifest["boundary_sha256"],
|
||||
},
|
||||
temporal_series_key="vrbg:municipality-boundary:mol",
|
||||
observed_at=manifest["generated_at"],
|
||||
timeout=args.import_timeout,
|
||||
)
|
||||
else:
|
||||
boundary_dataset = ensure_temporal_metadata(
|
||||
session,
|
||||
base_url,
|
||||
project_id,
|
||||
boundary_dataset,
|
||||
temporal_series_key="vrbg:municipality-boundary:mol",
|
||||
observed_at=manifest["generated_at"],
|
||||
timeout=args.import_timeout,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user