feat: add temporal Mol explorer
This commit is contained in:
@@ -345,6 +345,10 @@ def upload_layer(
|
||||
"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": f"grb:{definition.key}:mol",
|
||||
"observed_at": summary["generated_at"],
|
||||
"temporal_granularity": "snapshot",
|
||||
"source_version": summary["generated_at"][:10],
|
||||
},
|
||||
files={"file": (path.name, handle, "application/geo+json")},
|
||||
timeout=timeout,
|
||||
@@ -352,6 +356,31 @@ def upload_layer(
|
||||
return response_data(response)
|
||||
|
||||
|
||||
def ensure_temporal_metadata(
|
||||
session: requests.Session,
|
||||
base_url: str,
|
||||
project_id: str,
|
||||
dataset: dict[str, Any],
|
||||
definition: LayerDefinition,
|
||||
generated_at: str,
|
||||
timeout: int,
|
||||
) -> dict[str, Any]:
|
||||
series_key = f"grb:{definition.key}:mol"
|
||||
if dataset.get("temporal_series_key") == series_key and dataset.get("observed_at"):
|
||||
return dataset
|
||||
response = session.patch(
|
||||
f"{base_url}/api/v1/projects/{project_id}/datasets/{dataset['id']}/temporal",
|
||||
json={
|
||||
"temporal_series_key": series_key,
|
||||
"observed_at": generated_at,
|
||||
"temporal_granularity": "snapshot",
|
||||
"source_version": generated_at[:10],
|
||||
},
|
||||
timeout=timeout,
|
||||
)
|
||||
return response_data(response)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
args = parse_args()
|
||||
requested = {item.strip().lower() for item in args.layers.split(",") if item.strip()}
|
||||
@@ -402,6 +431,15 @@ def main() -> int:
|
||||
for definition, path, summary in prepared:
|
||||
dataset = next((item for item in existing if item.get("original_filename") == path.name), None)
|
||||
if dataset:
|
||||
dataset = ensure_temporal_metadata(
|
||||
api_session,
|
||||
base_url,
|
||||
project_id,
|
||||
dataset,
|
||||
definition,
|
||||
summary["generated_at"],
|
||||
args.import_timeout,
|
||||
)
|
||||
results.append(
|
||||
{"layer": definition.key, "dataset_id": dataset["id"], "feature_count": dataset.get("feature_count"), "status": "existing"}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user