From 1bcd211dcbf4312de66293d371c28da3e8f50622 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Mon, 24 Nov 2025 14:23:17 -0700 Subject: [PATCH 01/15] --wip-- [skip ci] --- datasets/met-office/dataset.yaml | 28 ++++++++++++++++++++++++++++ datasets/met-office/met_office.py | 0 datasets/met-office/requirements.txt | 0 3 files changed, 28 insertions(+) create mode 100644 datasets/met-office/dataset.yaml create mode 100644 datasets/met-office/met_office.py create mode 100644 datasets/met-office/requirements.txt diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml new file mode 100644 index 000000000..5c0eaead2 --- /dev/null +++ b/datasets/met-office/dataset.yaml @@ -0,0 +1,28 @@ +id: met-office +image: ${{ args.registry }}/pctasks-task-base:2025.4.8.2 + +args: + - registry + +code: + src: ${{ local.path(./met_office.py) }} + +environment: + APPLICATIONINSIGHTS_CONNECTION_STRING: ${{ secrets.task-application-insights-connection-string }} + +collections: + - id: met-office-global-deterministic-height-level + template: ${{ local.path(./collection/met-office-global-deterministic-height-level) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/global/height + chunks: + splits: + - depth: 1 + options: + ends_with: .nc + min_depth: 6 + max_depth: 6 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/met-office-deterministic-info/pctasks-chunks/ diff --git a/datasets/met-office/met_office.py b/datasets/met-office/met_office.py new file mode 100644 index 000000000..e69de29bb diff --git a/datasets/met-office/requirements.txt b/datasets/met-office/requirements.txt new file mode 100644 index 000000000..e69de29bb From 3c094fc6ad15986b61ce13d97da52162079d1aed Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Thu, 4 Dec 2025 08:59:47 -0700 Subject: [PATCH 02/15] fix: dataset for new layouts --- datasets/met-office/dataset.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index 5c0eaead2..e347683c8 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -12,17 +12,17 @@ environment: collections: - id: met-office-global-deterministic-height-level - template: ${{ local.path(./collection/met-office-global-deterministic-height-level) }} + template: ${{ local.path(./collection/met-office-global-deterministic-near-surface-level) }} class: met_office:MetOfficeCollection asset_storage: - - uri: blob://ukmoforecasts/global/height + - uri: blob://ukmoforecasts/staging chunks: splits: - - depth: 1 + - depth: 3 options: ends_with: .nc - min_depth: 6 - max_depth: 6 + min_depth: 1 + max_depth: 1 chunk_length: 20000 chunk_storage: - uri: blob://ukmoforecasts/met-office-deterministic-info/pctasks-chunks/ + uri: blob://ukmoforecasts/staging-info/pctasks-chunks/ From 073c7bb5aca96c134d988e00d742470fc83ceee9 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Thu, 4 Dec 2025 09:22:51 -0700 Subject: [PATCH 03/15] feat: add dumb but maybe correct stac item creation --- datasets/met-office/dataset.yaml | 5 +---- datasets/met-office/met_office.py | 18 ++++++++++++++++++ datasets/met-office/requirements.txt | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index e347683c8..1f6c6f624 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -15,12 +15,9 @@ collections: template: ${{ local.path(./collection/met-office-global-deterministic-near-surface-level) }} class: met_office:MetOfficeCollection asset_storage: - - uri: blob://ukmoforecasts/staging + - uri: blob://ukmoforecasts/staging/global/near-surface chunks: - splits: - - depth: 3 options: - ends_with: .nc min_depth: 1 max_depth: 1 chunk_length: 20000 diff --git a/datasets/met-office/met_office.py b/datasets/met-office/met_office.py index e69de29bb..e3de84eeb 100644 --- a/datasets/met-office/met_office.py +++ b/datasets/met-office/met_office.py @@ -0,0 +1,18 @@ +from typing import Union + +from pctasks.core.models.task import WaitTaskResult +from pctasks.core.storage import StorageFactory +from pctasks.dataset.collection import Collection +from pystac import Item +from stactools.met_office_deterministic import stac + + +class MetOfficeCollection(Collection): + @classmethod + def create_item( + cls, asset_uri: str, storage_factory: StorageFactory + ) -> Union[list[Item], WaitTaskResult]: + storage = storage_factory.get_storage(asset_uri) + hrefs = list(storage.get_url(path) for path in storage.list_files()) + items = stac.create_items(hrefs) + return items diff --git a/datasets/met-office/requirements.txt b/datasets/met-office/requirements.txt index e69de29bb..870f0a74f 100644 --- a/datasets/met-office/requirements.txt +++ b/datasets/met-office/requirements.txt @@ -0,0 +1 @@ +stactools-met-office-deterministic==0.2.0 From d432675531a5b668d2a185b624b8eba04e756bdd Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Thu, 4 Dec 2025 09:59:47 -0700 Subject: [PATCH 04/15] fix: chunk location --- datasets/met-office/dataset.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index 1f6c6f624..37b4a2273 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -22,4 +22,4 @@ collections: max_depth: 1 chunk_length: 20000 chunk_storage: - uri: blob://ukmoforecasts/staging-info/pctasks-chunks/ + uri: blob://ukmoforecasts/staging/staging-chunks/ From 4b9f342428f8a98e16dc9eaba01f3b355d20ec13 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Thu, 4 Dec 2025 14:27:52 -0700 Subject: [PATCH 05/15] fix: collections --- CLAUDE.md | 336 +++++++++++ .../template.json | 96 ---- .../description.md | 1 + .../template.json | 58 ++ .../template.json | 530 ------------------ .../description.md | 0 .../template.json | 407 ++++++++++++++ .../template.json | 141 ----- .../description.md | 1 + .../template.json | 91 +++ .../template.json | 190 ------- .../description.md | 1 + .../template.json | 126 +++++ .../template.json | 128 ----- .../description.md | 0 .../template.json | 93 +++ .../template.json | 420 -------------- .../description.md | 0 .../template.json | 323 +++++++++++ .../template.json | 155 ----- .../description.md | 0 .../template.json | 114 ++++ .../template.json | 192 ------- .../description.md | 0 .../template.json | 143 +++++ datasets/met-office/dataset.yaml | 92 ++- 26 files changed, 1783 insertions(+), 1855 deletions(-) create mode 100644 CLAUDE.md delete mode 100644 datasets/met-office/collection/met-office-global-deterministic-height-level/template.json create mode 100644 datasets/met-office/collection/met-office-global-deterministic-height/description.md create mode 100644 datasets/met-office/collection/met-office-global-deterministic-height/template.json delete mode 100644 datasets/met-office/collection/met-office-global-deterministic-near-surface-level/template.json rename datasets/met-office/collection/{met-office-global-deterministic-near-surface-level => met-office-global-deterministic-near-surface}/description.md (100%) create mode 100644 datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json delete mode 100644 datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json create mode 100644 datasets/met-office/collection/met-office-global-deterministic-pressure/description.md create mode 100644 datasets/met-office/collection/met-office-global-deterministic-pressure/template.json delete mode 100644 datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json create mode 100644 datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/description.md create mode 100644 datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json delete mode 100644 datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json rename datasets/met-office/collection/{met-office-uk-deterministic-height-level => met-office-uk-deterministic-height}/description.md (100%) create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-height/template.json delete mode 100644 datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json rename datasets/met-office/collection/{met-office-uk-deterministic-near-surface-level => met-office-uk-deterministic-near-surface}/description.md (100%) create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json delete mode 100644 datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json rename datasets/met-office/collection/{met-office-uk-deterministic-pressure-level => met-office-uk-deterministic-pressure}/description.md (100%) create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json delete mode 100644 datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json rename datasets/met-office/collection/{met-office-uk-deterministic-whole-atmosphere-level => met-office-uk-deterministic-whole-atmosphere}/description.md (100%) create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..02768110b --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,336 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## What is PCTasks? + +PCTasks is a scalable workflow orchestration system built on Azure and Kubernetes. It's the reactive ETL system that powers the Microsoft Planetary Computer STAC catalog, managing dataset ingestion, processing, and updates. + +**Core Concept**: PCTasks takes dataset configurations (`dataset.yaml`), generates workflows, and executes them as containerized tasks on Kubernetes (via Argo Workflows) or Azure Batch. + +## Architecture Overview + +### Multi-Package Monorepo Structure + +This is a Python monorepo with 12 distinct packages under `pctasks/`: + +``` +pctasks/ +├── core/ # Base models, storage, templating, shared utilities +├── cli/ # Top-level CLI entry point +├── client/ # Client library for API interaction, profile management +├── server/ # FastAPI server exposing REST API +├── task/ # Task execution runtime (runs inside containers) +├── run/ # Workflow/task runners (Argo, Batch, local) +├── dataset/ # Dataset model and processing logic +├── ingest/ # Ingest workflow generation +├── ingest_task/ # Ingest task implementations (PgSTAC database operations) +├── router/ # Message routing between queues +├── notify/ # Notification handling +└── dev/ # Development utilities (setup, testing) +``` + +Each package has its own `pyproject.toml` and can be installed independently, but they depend on each other (e.g., most depend on `pctasks.core`). + +### Request Flow + +1. **Client** → API Server (FastAPI) +2. **Server** → CosmosDB (workflow definitions) + Azure Queues (submission) +3. **Router** (Azure Function) → Reads queue, creates Argo Workflow +4. **Argo** → Schedules tasks as Kubernetes Pods +5. **Task Container** → Executes `pctasks.task` runtime +6. **Task** → Reads from Blob Storage, processes data, writes to PgSTAC +7. **Notifications** → Item updates sent to queue for downstream consumers + +### Key Subsystems + +- **Templating**: Jinja2-like syntax (`${{ ... }}`) for dynamic values in workflow/dataset configs + - `${{ secrets.* }}`: KeyVault secrets + - `${{ args.* }}`: Workflow arguments + - `${{ local.path(...) }}`: Local file references + - `${{ pc.get_token(...) }}`: SAS token generation + +- **Storage Abstraction**: `StorageFactory` provides unified access to Azure Blob Storage with automatic SAS token handling + +- **Chunking**: Large datasets split into "chunk files" (lists of asset URIs) for parallel processing + +- **Code Injection**: Custom Python code/requirements uploaded to Blob Storage, downloaded at task runtime + +## Development Commands + +### Initial Setup + +```bash +# One-time setup: creates dev environment with Azurite, CosmosDB emulator, Kubernetes (kind) +scripts/setup + +# Drop into development container +scripts/console +``` + +Inside the dev container, the `pctasks` CLI is available with access to local services. + +### Testing + +```bash +# Run all tests (lint + unit tests) +scripts/test + +# Test specific package +scripts/test --subpackage core + +# Only run tests, skip linting +scripts/test --test-only + +# Only lint +scripts/test --lint-only + +# Run integration tests (requires cluster running) +scripts/test-integration +``` + +**Test Location**: Each package has a `tests/` directory (e.g., `pctasks/core/tests/`). + +**Linters Used**: mypy, black, isort, flake8 + +### Code Formatting + +```bash +# Auto-format all code +scripts/format +``` + +Runs black and isort on all packages. + +### Local Development Workflow + +```bash +# Start local servers (API, Argo, etc.) +scripts/server + +# Or start in background +scripts/server --detached + +# Install packages in editable mode after code changes +scripts/install +``` + +### Building and Publishing Images + +```bash +# Build all Docker images locally +scripts/build + +# Publish images to ACR (requires authentication) +scripts/publish --acr --tag +``` + +**Core Images**: +- `pctasks-task-base`: Base image with all pctasks packages +- `pctasks-ingest`: Ingest-specific image +- `pctasks-server`: API server image +- `pctasks-run`: Workflow runner image + +**Dataset Images**: Built manually per dataset (e.g., `pctasks-aster`): +```bash +az acr build -r --subscription \ + -t pctasks-aster:latest \ + -f datasets/aster/Dockerfile . +``` + +### Profile Management + +PCTasks uses profiles to target different environments (dev, staging, production): + +```bash +# Create new profile +pctasks profile create staging + +# Set default profile +pctasks profile set staging + +# Use specific profile +pctasks -p staging + +# Or via environment variable +export PCTASKS_PROFILE=staging +``` + +Profiles stored in `~/.pctasks/.yaml`. + +## Working with Datasets + +### Dataset Configuration (`dataset.yaml`) + +Each dataset in `datasets/` has a `dataset.yaml` that defines: +- **image**: Docker image to use for tasks +- **code**: Custom Python modules/requirements to inject +- **collections**: STAC Collections with asset/chunk storage locations +- **environment**: Environment variables (e.g., Azure credentials) + +### Common Dataset Commands + +```bash +# Ingest collection metadata to database +pctasks dataset ingest-collection -d datasets/aster/dataset.yaml --submit + +# Process items (ETL workflow) +pctasks dataset process-items -d datasets/aster/dataset.yaml --limit 10 --submit + +# Generate chunks (asset inventory) +pctasks dataset create-chunks -d datasets/aster/dataset.yaml --submit + +# Target staging environment +pctasks dataset process-items -d dataset.yaml --target staging --submit +``` + +### Ingest Commands (Direct Collection/NDJSON Ingest) + +```bash +# Ingest collection +pctasks ingest collection ./collection/ --target staging --submit + +# Ingest NDJSON items +pctasks ingest ndjsons blob://account/container/path/ \ + --target staging \ + --num-workers 8 \ + --submit +``` + +### Workflow Management + +```bash +# Submit workflow from YAML file +pctasks workflow upsert-and-submit workflow.yaml + +# List workflows +pctasks workflow list + +# Get workflow details +pctasks workflow get + +# Submit existing workflow with arguments +pctasks workflow submit --arg since 2024-01-01 +``` + +### Creating a New Dataset + +See `docs/getting_started/creating_a_dataset.md` for full guide. Quick checklist: + +1. Create `datasets//dataset.yaml` +2. Create collection template in `datasets//collection/` +3. Implement `Collection` subclass (or use `PremadeItemCollection`) +4. Add `requirements.txt` if using custom packages +5. Test with `--limit` flag first +6. Optionally build custom Docker image if dependencies are heavy + +## Important Configuration Files + +- `scripts/env`: Defines `PACKAGE_DIRS` array and helper functions used by scripts +- `docker-compose.console.yml`: Dev container configuration +- `dev-secrets.yaml`: Local secrets (created from `dev-secrets.template.yaml`) +- `deployment/terraform/`: Infrastructure as Code for Azure resources +- `.github/workflows/cicd.yml`: CI/CD pipeline + +## Common Patterns + +### Using Custom Code with `pctasks-task-base` + +Instead of building a custom Docker image, you can inject code at runtime: + +```yaml +# dataset.yaml +image: ${{ args.registry }}/pctasks-task-base:latest +code: + src: ${{ local.path(./my_module.py) }} + requirements: ${{ local.path(./requirements.txt) }} +``` + +Code is uploaded to Blob Storage, downloaded, and installed before task execution. + +### Collection Implementation + +```python +from pctasks.dataset.collection import Collection + +class MyCollection(Collection): + @classmethod + def create_item(cls, asset_uri: str, storage_factory: StorageFactory): + # Return a pystac.Item or list of Items + return [item] +``` + +### Accessing Secrets in Workflows + +```yaml +environment: + DB_CONNECTION_STRING: ${{ secrets.pgstac-connection-string }} +``` + +Secrets retrieved from Azure KeyVault at runtime. + +## Running a Single Test + +```bash +# Enter dev container +scripts/console + +# Run specific test file +pytest pctasks/core/tests/test_storage.py + +# Run specific test function +pytest pctasks/core/tests/test_storage.py::test_blob_storage + +# Run with verbose output +pytest -vv pctasks/core/tests/test_storage.py +``` + +## Deployment + +Deployment is handled via Terraform and Helm: + +```bash +# Enter deployment container +scripts/console --deploy + +# Deploy to dev stack +bin/deploy -t terraform/dev + +# Staging/production deployed via CI/CD only +``` + +**Environments**: +- `dev`: Local kind cluster, personal development +- `staging`: Deployed to "Planetary Computer Test" subscription via CI/CD +- `production`: Deployed to production subscription via CI/CD + +## Troubleshooting + +### Local Development + +- **Azurite not responding**: Run `scripts/setup --azurite` +- **CosmosDB emulator issues**: Run `scripts/setup --reset-cosmos` +- **Clear test data**: Run `scripts/setup --clear-records` +- **Services not running**: Check `docker compose ps` or restart with `scripts/server` + +### Task Execution + +- **Import errors**: Ensure code is in `code.src` or requirements are in `code.requirements` +- **Storage access denied**: Check SAS tokens in `asset_storage.token` or service principal credentials +- **Task timeout**: Increase timeout in task definition or batch pool settings + +### Workflow Issues + +- **Workflow won't submit**: Validate YAML syntax and required fields (workflow_id, dataset, jobs) +- **Template errors**: Check `${{ }}` syntax and available template variables +- **Missing secrets**: Ensure secrets exist in KeyVault and are referenced correctly + +## Documentation + +Full documentation: https://planetary-computer-tasks.readthedocs.io + +Key docs to reference: +- `docs/getting_started/creating_a_dataset.md`: Dataset creation guide +- `docs/user_guide/templating.md`: Template syntax reference +- `docs/user_guide/chunking.md`: Chunking system explanation +- `docs/development/deploying.md`: Deployment guide diff --git a/datasets/met-office/collection/met-office-global-deterministic-height-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-height-level/template.json deleted file mode 100644 index c485ee38b..000000000 --- a/datasets/met-office/collection/met-office-global-deterministic-height-level/template.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "id": "met-office-global-deterministic-height-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "cite-as", - "title": "British Crown copyright 2023-2025, the Met Office, is licensed under CC BY-SA" - }, - { - "rel": "describedBy", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Met Office Global Deterministic Height Level", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Met Office Global Deterministic Height Level Thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2 years ago", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "MetOffice", - "Global", - "Cloud" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "description": "The Met Office Global Deterministic Height Level dataset provides a composite of weather parameters generated for specific atmospheric height levels.", - "item_assets": { - "cloud_amount_on_height_levels": { - "type": "application/netcdf", - "title": "Cloud amount on height levels", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Height Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-global-deterministic-height/description.md b/datasets/met-office/collection/met-office-global-deterministic-height/description.md new file mode 100644 index 000000000..081535f5c --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -0,0 +1 @@ +The Met Office Global Deterministic Height Level dataset provides a composite of weather parameters generated for specific atmospheric height levels. diff --git a/datasets/met-office/collection/met-office-global-deterministic-height/template.json b/datasets/met-office/collection/met-office-global-deterministic-height/template.json new file mode 100644 index 000000000..bddf7f113 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-height/template.json @@ -0,0 +1,58 @@ +{ + "id": "met-office-global-deterministic-height", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedBy", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Met Office Global Deterministic Height Level", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] + }, + "temporal": { + "interval": [["2023-12-04T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": ["MetOffice", "Global", "Cloud"], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "description": "{{ collection.description }}", + "item_assets": { + "cloud_amount_on_height_levels": { + "type": "application/netcdf", + "title": "Cloud amount on height levels", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office Global Deterministic Height Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-near-surface-level/template.json deleted file mode 100644 index 899eb617f..000000000 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface-level/template.json +++ /dev/null @@ -1,530 +0,0 @@ -{ - "id": "met-office-global-deterministic-near-surface-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Near-surface level collection Met Office global deterministic 10km forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Near-surface level collection Met Office global deterministic 10km forecast thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Global", - "Forecast", - "Cloud", - "Fog", - "Heat Flux", - "Precipitation", - "Pressure", - "Radiation", - "Rainfall", - "Humidity", - "Snow", - "Temperature", - "Wind" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "item_assets": { - "fog_fraction_at_screen_level": { - "type": "application/netcdf", - "title": "Fog fraction at screen level", - "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", - "unit": "1", - "roles": [ - "data" - ] - }, - "height_of_orography": { - "type": "application/netcdf", - "title": "Height of orography", - "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m)", - "unit": "m", - "roles": [ - "data" - ] - }, - "latent_heat_flux_at_surface_mean-PT01H": { - "type": "application/netcdf", - "title": "Hourly latent heat flux at surface mean", - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "latent_heat_flux_at_surface_mean-PT03H": { - "type": "application/netcdf", - "title": "Three hourly latent heat flux at surface mean", - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "latent_heat_flux_at_surface_mean-PT06H": { - "type": "application/netcdf", - "title": "Six hourly latent heat flux at surface mean", - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "precipitation_accumulation-PT01H": { - "type": "application/netcdf", - "title": "Hourly precipitation accumulation", - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "unit": "m", - "roles": [ - "data" - ] - }, - "precipitation_accumulation-PT03H": { - "type": "application/netcdf", - "title": "Three hourly precipitation accumulation", - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "unit": "m", - "roles": [ - "data" - ] - }, - "precipitation_accumulation-PT06H": { - "type": "application/netcdf", - "title": "Six hourly precipitation accumulation", - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 6 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "unit": "m", - "roles": [ - "data" - ] - }, - "precipitation_rate": { - "type": "application/netcdf", - "title": "Precipitation rate", - "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "pressure_at_mean_sea_level": { - "type": "application/netcdf", - "title": "Pressure at mean sea level", - "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", - "unit": "Pa", - "roles": [ - "data" - ] - }, - "radiation_flux_in_longwave_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in longwave downward at surface", - "description": "Longwave radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "radiation_flux_in_shortwave_direct_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in shortwave direct downward at surface", - "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "radiation_flux_in_shortwave_total_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in shortwave total downward at surface", - "description": "Total shortwave radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "radiation_flux_in_uv_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in uv downward at surface", - "description": "Ultaviolet radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "rainfall_accumulation-PT01H": { - "type": "application/netcdf", - "title": "Hourly rainfall accumulation", - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", - "unit": "m", - "roles": [ - "data" - ] - }, - "rainfall_accumulation-PT03H": { - "type": "application/netcdf", - "title": "Three hourly rainfall accumulation", - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", - "unit": "m", - "roles": [ - "data" - ] - }, - "rainfall_accumulation-PT06H": { - "type": "application/netcdf", - "title": "Six hourly rainfall accumulation", - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 6 hours. This excludes the rain produced by the model convection scheme.", - "unit": "m", - "roles": [ - "data" - ] - }, - "rainfall_rate": { - "type": "application/netcdf", - "title": "Rainfall rate", - "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "rainfall_rate_from_convection": { - "type": "application/netcdf", - "title": "Rainfall rate from convection", - "description": "Instantaneous rate at which rain (as a depth) was produced by the model convection scheme and deposited on the surface. The rainfall rate can be added to this to get the total rainfall rate.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "rainfall_rate_from_convection_max-PT01H": { - "type": "application/netcdf", - "title": "Hourly rainfall rate from convection max", - "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "rainfall_rate_from_convection_max-PT03H": { - "type": "application/netcdf", - "title": "Three hourly rainfall rate from convection max", - "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "rainfall_rate_from_convection_max-PT06H": { - "type": "application/netcdf", - "title": "Six hourly rainfall rate from convection max", - "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "relative_humidity_at_screen_level": { - "type": "application/netcdf", - "title": "Relative humidity at screen level", - "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", - "unit": "1", - "roles": [ - "data" - ] - }, - "snow_depth_water_equivalent": { - "type": "application/netcdf", - "title": "Snow depth water equivalent", - "description": "Liquid water equivalent (LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", - "unit": "m", - "roles": [ - "data" - ] - }, - "snowfall_rate": { - "type": "application/netcdf", - "title": "Snowfall rate", - "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the the model convection scheme.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "snowfall_rate_from_convection": { - "type": "application/netcdf", - "title": "Snowfall rate from convection", - "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface. The snowfall rate can be added to this to get the total snowfall rate.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "snowfall_rate_from_convection_max-PT01H": { - "type": "application/netcdf", - "title": "Hourly snowfall rate from convection max", - "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "snowfall_rate_from_convection_max-PT03H": { - "type": "application/netcdf", - "title": "Three hourly snowfall rate from convection max", - "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "snowfall_rate_from_convection_max-PT06H": { - "type": "application/netcdf", - "title": "Six hourly snowfall rate from convection max", - "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "snowfall_rate_from_convection_mean-PT01H": { - "type": "application/netcdf", - "title": "Hourly snowfall rate from convection mean", - "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "snowfall_rate_from_convection_mean-PT03H": { - "type": "application/netcdf", - "title": "Three hourly snowfall rate from convection mean", - "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "snowfall_rate_from_convection_mean-PT06H": { - "type": "application/netcdf", - "title": "Six hourly snowfall rate from convection mean", - "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level": { - "type": "application/netcdf", - "title": "Temperature at screen level", - "description": "Instantaneous air temperature at screen level (1.5m).", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_max-PT01H": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level max", - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_max-PT03H": { - "type": "application/netcdf", - "title": "Three hourly temperature at screen level max", - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_max-PT06H": { - "type": "application/netcdf", - "title": "Six hourly temperature at screen level max", - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_min-PT01H": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level min", - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_min-PT03H": { - "type": "application/netcdf", - "title": "Three hourly temperature at screen level min", - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_min-PT06H": { - "type": "application/netcdf", - "title": "Six hourly temperature at screen level min", - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_at_surface": { - "type": "application/netcdf", - "title": "Temperature at surface", - "description": "Temperature at the surface interface between the air and the ground.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_of_dew_point_at_screen_level": { - "type": "application/netcdf", - "title": "Dew point temperature at screen level", - "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", - "unit": "K", - "roles": [ - "data" - ] - }, - "visibility_at_screen_level": { - "type": "application/netcdf", - "title": "Visibility at screen level", - "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", - "unit": "m", - "roles": [ - "data" - ] - }, - "wind_direction_at_10m": { - "type": "application/netcdf", - "title": "Wind direction at 10m", - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", - "unit": "degrees", - "roles": [ - "data" - ] - }, - "wind_gust_at_10m": { - "type": "application/netcdf", - "title": "Wind gust at 10m", - "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "wind_gust_at_10m_max-PT01H": { - "type": "application/netcdf", - "title": "Hourly wind gust at 10m max", - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "wind_gust_at_10m_max-PT03H": { - "type": "application/netcdf", - "title": "Three hourly wind gust at 10m max", - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "wind_gust_at_10m_max-PT06H": { - "type": "application/netcdf", - "title": "Six hourly wind gust at 10m max", - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 6 hours. This can be considered as the extreme wind speed that might be experienced in this period.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "wind_speed_at_10m": { - "type": "application/netcdf", - "title": "Wind speed at 10m", - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "unit": "m/s", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/classification/v1.0.0/schema.json", - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", - "https://stac-extensions.github.io/table/v1.2.0/schema.json", - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Near Surface Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface-level/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md similarity index 100% rename from datasets/met-office/collection/met-office-global-deterministic-near-surface-level/description.md rename to datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json new file mode 100644 index 000000000..39a3fe0ec --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json @@ -0,0 +1,407 @@ +{ + "id": "met-office-global-deterministic-near-surface", + "type": "Collection", + "description": "{{ collection.description }}", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Near-surface level collection Met Office global deterministic 10km forecast", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Global", + "Forecast", + "Cloud", + "Fog", + "Heat Flux", + "Precipitation", + "Pressure", + "Radiation", + "Rainfall", + "Humidity", + "Snow", + "Temperature", + "Wind" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "item_assets": { + "fog_fraction_at_screen_level": { + "type": "application/netcdf", + "title": "Fog fraction at screen level", + "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", + "unit": "1", + "roles": ["data"] + }, + "height_of_orography": { + "type": "application/netcdf", + "title": "Height of orography", + "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m)", + "unit": "m", + "roles": ["data"] + }, + "latent_heat_flux_at_surface_mean-PT01H": { + "type": "application/netcdf", + "title": "Hourly latent heat flux at surface mean", + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "unit": "W/m2", + "roles": ["data"] + }, + "latent_heat_flux_at_surface_mean-PT03H": { + "type": "application/netcdf", + "title": "Three hourly latent heat flux at surface mean", + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "unit": "W/m2", + "roles": ["data"] + }, + "latent_heat_flux_at_surface_mean-PT06H": { + "type": "application/netcdf", + "title": "Six hourly latent heat flux at surface mean", + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "unit": "W/m2", + "roles": ["data"] + }, + "precipitation_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly precipitation accumulation", + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "unit": "m", + "roles": ["data"] + }, + "precipitation_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly precipitation accumulation", + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "unit": "m", + "roles": ["data"] + }, + "precipitation_accumulation-PT06H": { + "type": "application/netcdf", + "title": "Six hourly precipitation accumulation", + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 6 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "unit": "m", + "roles": ["data"] + }, + "precipitation_rate": { + "type": "application/netcdf", + "title": "Precipitation rate", + "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "unit": "m/s", + "roles": ["data"] + }, + "pressure_at_mean_sea_level": { + "type": "application/netcdf", + "title": "Pressure at mean sea level", + "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", + "unit": "Pa", + "roles": ["data"] + }, + "radiation_flux_in_longwave_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in longwave downward at surface", + "description": "Longwave radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "radiation_flux_in_shortwave_direct_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave direct downward at surface", + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "radiation_flux_in_shortwave_total_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave total downward at surface", + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "radiation_flux_in_uv_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in uv downward at surface", + "description": "Ultaviolet radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "rainfall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly rainfall accumulation", + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", + "unit": "m", + "roles": ["data"] + }, + "rainfall_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly rainfall accumulation", + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", + "unit": "m", + "roles": ["data"] + }, + "rainfall_accumulation-PT06H": { + "type": "application/netcdf", + "title": "Six hourly rainfall accumulation", + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 6 hours. This excludes the rain produced by the model convection scheme.", + "unit": "m", + "roles": ["data"] + }, + "rainfall_rate": { + "type": "application/netcdf", + "title": "Rainfall rate", + "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", + "unit": "m/s", + "roles": ["data"] + }, + "rainfall_rate_from_convection": { + "type": "application/netcdf", + "title": "Rainfall rate from convection", + "description": "Instantaneous rate at which rain (as a depth) was produced by the model convection scheme and deposited on the surface. The rainfall rate can be added to this to get the total rainfall rate.", + "unit": "m/s", + "roles": ["data"] + }, + "rainfall_rate_from_convection_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly rainfall rate from convection max", + "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", + "unit": "m/s", + "roles": ["data"] + }, + "rainfall_rate_from_convection_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly rainfall rate from convection max", + "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", + "unit": "m/s", + "roles": ["data"] + }, + "rainfall_rate_from_convection_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly rainfall rate from convection max", + "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", + "unit": "m/s", + "roles": ["data"] + }, + "relative_humidity_at_screen_level": { + "type": "application/netcdf", + "title": "Relative humidity at screen level", + "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", + "unit": "1", + "roles": ["data"] + }, + "snow_depth_water_equivalent": { + "type": "application/netcdf", + "title": "Snow depth water equivalent", + "description": "Liquid water equivalent (LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", + "unit": "m", + "roles": ["data"] + }, + "snowfall_rate": { + "type": "application/netcdf", + "title": "Snowfall rate", + "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the the model convection scheme.", + "unit": "m/s", + "roles": ["data"] + }, + "snowfall_rate_from_convection": { + "type": "application/netcdf", + "title": "Snowfall rate from convection", + "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface. The snowfall rate can be added to this to get the total snowfall rate.", + "unit": "m/s", + "roles": ["data"] + }, + "snowfall_rate_from_convection_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly snowfall rate from convection max", + "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", + "unit": "m/s", + "roles": ["data"] + }, + "snowfall_rate_from_convection_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly snowfall rate from convection max", + "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", + "unit": "m/s", + "roles": ["data"] + }, + "snowfall_rate_from_convection_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly snowfall rate from convection max", + "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", + "unit": "m/s", + "roles": ["data"] + }, + "snowfall_rate_from_convection_mean-PT01H": { + "type": "application/netcdf", + "title": "Hourly snowfall rate from convection mean", + "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", + "unit": "m/s", + "roles": ["data"] + }, + "snowfall_rate_from_convection_mean-PT03H": { + "type": "application/netcdf", + "title": "Three hourly snowfall rate from convection mean", + "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", + "unit": "m/s", + "roles": ["data"] + }, + "snowfall_rate_from_convection_mean-PT06H": { + "type": "application/netcdf", + "title": "Six hourly snowfall rate from convection mean", + "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", + "unit": "m/s", + "roles": ["data"] + }, + "temperature_at_screen_level": { + "type": "application/netcdf", + "title": "Temperature at screen level", + "description": "Instantaneous air temperature at screen level (1.5m).", + "unit": "K", + "roles": ["data"] + }, + "temperature_at_screen_level_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level max", + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "unit": "K", + "roles": ["data"] + }, + "temperature_at_screen_level_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly temperature at screen level max", + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", + "unit": "K", + "roles": ["data"] + }, + "temperature_at_screen_level_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly temperature at screen level max", + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", + "unit": "K", + "roles": ["data"] + }, + "temperature_at_screen_level_min-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level min", + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "unit": "K", + "roles": ["data"] + }, + "temperature_at_screen_level_min-PT03H": { + "type": "application/netcdf", + "title": "Three hourly temperature at screen level min", + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", + "unit": "K", + "roles": ["data"] + }, + "temperature_at_screen_level_min-PT06H": { + "type": "application/netcdf", + "title": "Six hourly temperature at screen level min", + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", + "unit": "K", + "roles": ["data"] + }, + "temperature_at_surface": { + "type": "application/netcdf", + "title": "Temperature at surface", + "description": "Temperature at the surface interface between the air and the ground.", + "unit": "K", + "roles": ["data"] + }, + "temperature_of_dew_point_at_screen_level": { + "type": "application/netcdf", + "title": "Dew point temperature at screen level", + "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", + "unit": "K", + "roles": ["data"] + }, + "visibility_at_screen_level": { + "type": "application/netcdf", + "title": "Visibility at screen level", + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "unit": "m", + "roles": ["data"] + }, + "wind_direction_at_10m": { + "type": "application/netcdf", + "title": "Wind direction at 10m", + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", + "unit": "degrees", + "roles": ["data"] + }, + "wind_gust_at_10m": { + "type": "application/netcdf", + "title": "Wind gust at 10m", + "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", + "unit": "m/s", + "roles": ["data"] + }, + "wind_gust_at_10m_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly wind gust at 10m max", + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period.", + "unit": "m/s", + "roles": ["data"] + }, + "wind_gust_at_10m_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly wind gust at 10m max", + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", + "unit": "m/s", + "roles": ["data"] + }, + "wind_gust_at_10m_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly wind gust at 10m max", + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 6 hours. This can be considered as the extreme wind speed that might be experienced in this period.", + "unit": "m/s", + "roles": ["data"] + }, + "wind_speed_at_10m": { + "type": "application/netcdf", + "title": "Wind speed at 10m", + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "unit": "m/s", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/classification/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office Global Deterministic Near Surface Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json deleted file mode 100644 index fc38fa3c2..000000000 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "id": "met-office-global-deterministic-pressure-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "cite-as", - "title": "British Crown copyright 2023-2025, the Met Office, is licensed under CC BY-SA" - }, - { - "rel": "describedBy", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Met Office Global Deterministic Pressure Level", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Met Office Global Deterministic Pressure Level Thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2 years ago", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "MetOffice", - "Global", - "Cloud" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "description": "The Met Office Global Deterministic Pressure Level dataset provides a composite of weather parameters generated for specific atmospheric pressure levels.", - "item_assets": { - "height_ASL_on_pressure_levels": { - "type": "application/netcdf", - "title": "Height above sea level on pressure levels", - "roles": [ - "data" - ] - }, - "relative_humidity_on_pressure_levels": { - "type": "application/netcdf", - "title": "Relative humidity on pressure levels", - "roles": [ - "data" - ] - }, - "temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Temperature on pressure levels", - "roles": [ - "data" - ] - }, - "wet_bulb_potential_temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wet bulb temperature on pressure levels", - "roles": [ - "data" - ] - }, - "wind_direction_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind direction on pressure levels", - "roles": [ - "data" - ] - }, - "wind_speed_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind speed on pressure levels", - "roles": [ - "data" - ] - }, - "wind_vertical_velocity_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind vertical velocity on pressure levels", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/classification/v1.0.0/schema.json", - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", - "https://stac-extensions.github.io/table/v1.2.0/schema.json", - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Pressure Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md new file mode 100644 index 000000000..fd16c0798 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md @@ -0,0 +1 @@ +The Met Office Global Deterministic Pressure Level dataset provides a composite of weather parameters generated for specific atmospheric pressure levels. diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json new file mode 100644 index 000000000..1e66608a2 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json @@ -0,0 +1,91 @@ +{ + "id": "met-office-global-deterministic-pressure", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedBy", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Met Office Global Deterministic Pressure Level", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] + }, + "temporal": { + "interval": [["2023-12-04T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": ["MetOffice", "Global", "Cloud"], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "description": "{{ collection.description }}", + "item_assets": { + "height_ASL_on_pressure_levels": { + "type": "application/netcdf", + "title": "Height above sea level on pressure levels", + "roles": ["data"] + }, + "relative_humidity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Relative humidity on pressure levels", + "roles": ["data"] + }, + "temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Temperature on pressure levels", + "roles": ["data"] + }, + "wet_bulb_potential_temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wet bulb temperature on pressure levels", + "roles": ["data"] + }, + "wind_direction_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind direction on pressure levels", + "roles": ["data"] + }, + "wind_speed_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind speed on pressure levels", + "roles": ["data"] + }, + "wind_vertical_velocity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind vertical velocity on pressure levels", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/classification/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office Global Deterministic Pressure Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json deleted file mode 100644 index 88c6e4950..000000000 --- a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "id": "met-office-global-deterministic-whole-atmosphere-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "cite-as", - "title": "British Crown copyright 2023-2025, the Met Office, is licensed under CC BY-SA" - }, - { - "rel": "describedBy", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Met Office Global Deterministic Whole Atmosphere Level", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Met Office Global Deterministic Whole Atmosphere Level Thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2 years ago", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "MetOffice", - "Global", - "Cloud" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "description": "The Met Office Global Deterministic Whole Atmosphere Level dataset provides a composite of weather parameters generated throughout the atmospheric column.", - "item_assets": { - "CAPE_mixed_layer_lowest_500m": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy mixed layer lowest 500m", - "roles": [ - "data" - ] - }, - "CAPE_most_unstable_below_500hPa": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy most unstable below 500hPa", - "roles": [ - "data" - ] - }, - "CAPE_surface": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy with respect to surface", - "roles": [ - "data" - ] - }, - "CIN_mixed_layer_lowest_500m": { - "type": "application/netcdf", - "title": "Convective Inhibition mixed layer lowest 500m", - "roles": [ - "data" - ] - }, - "CIN_most_unstable_below_500hPa": { - "type": "application/netcdf", - "title": "Convective Inhibition most unstable below 500hPa", - "roles": [ - "data" - ] - }, - "CIN_surface": { - "type": "application/netcdf", - "title": "Convective Inhibition with respect to surface", - "roles": [ - "data" - ] - }, - "cloud_amount_below_1000ft_ASL": { - "type": "application/netcdf", - "title": "Cloud amount below 1000ft Above Sea Level", - "roles": [ - "data" - ] - }, - "cloud_amount_of_high_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of high cloud", - "roles": [ - "data" - ] - }, - "cloud_amount_of_low_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of low cloud", - "roles": [ - "data" - ] - }, - "cloud_amount_of_medium_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of medium cloud", - "roles": [ - "data" - ] - }, - "cloud_amount_of_total_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of total cloud", - "roles": [ - "data" - ] - }, - "cloud_amount_of_total_convective_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of total convective cloud", - "roles": [ - "data" - ] - }, - "pressure_at_tropopause": { - "type": "application/netcdf", - "title": "Pressure at tropopause", - "roles": [ - "data" - ] - }, - "temperature_at_tropopause": { - "type": "application/netcdf", - "title": "Temperature at tropopause", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/classification/v1.0.0/schema.json", - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", - "https://stac-extensions.github.io/table/v1.2.0/schema.json", - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Whole Atmosphere Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/description.md new file mode 100644 index 000000000..cfc4fdbba --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/description.md @@ -0,0 +1 @@ +The Met Office Global Deterministic Whole Atmosphere Level dataset provides a composite of weather parameters generated throughout the atmospheric column. diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json new file mode 100644 index 000000000..c8185a9a1 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json @@ -0,0 +1,126 @@ +{ + "id": "met-office-global-deterministic-whole-atmosphere", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedBy", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Met Office Global Deterministic Whole Atmosphere Level", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] + }, + "temporal": { + "interval": [["2023-12-04T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": ["MetOffice", "Global", "Cloud"], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "description": "{{ collection.description }}", + "item_assets": { + "CAPE_mixed_layer_lowest_500m": { + "type": "application/netcdf", + "title": "Convective Available Potential Energy mixed layer lowest 500m", + "roles": ["data"] + }, + "CAPE_most_unstable_below_500hPa": { + "type": "application/netcdf", + "title": "Convective Available Potential Energy most unstable below 500hPa", + "roles": ["data"] + }, + "CAPE_surface": { + "type": "application/netcdf", + "title": "Convective Available Potential Energy with respect to surface", + "roles": ["data"] + }, + "CIN_mixed_layer_lowest_500m": { + "type": "application/netcdf", + "title": "Convective Inhibition mixed layer lowest 500m", + "roles": ["data"] + }, + "CIN_most_unstable_below_500hPa": { + "type": "application/netcdf", + "title": "Convective Inhibition most unstable below 500hPa", + "roles": ["data"] + }, + "CIN_surface": { + "type": "application/netcdf", + "title": "Convective Inhibition with respect to surface", + "roles": ["data"] + }, + "cloud_amount_below_1000ft_ASL": { + "type": "application/netcdf", + "title": "Cloud amount below 1000ft Above Sea Level", + "roles": ["data"] + }, + "cloud_amount_of_high_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of high cloud", + "roles": ["data"] + }, + "cloud_amount_of_low_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of low cloud", + "roles": ["data"] + }, + "cloud_amount_of_medium_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of medium cloud", + "roles": ["data"] + }, + "cloud_amount_of_total_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of total cloud", + "roles": ["data"] + }, + "cloud_amount_of_total_convective_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of total convective cloud", + "roles": ["data"] + }, + "pressure_at_tropopause": { + "type": "application/netcdf", + "title": "Pressure at tropopause", + "roles": ["data"] + }, + "temperature_at_tropopause": { + "type": "application/netcdf", + "title": "Temperature at tropopause", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/classification/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office Global Deterministic Whole Atmosphere Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json deleted file mode 100644 index 6870f66c2..000000000 --- a/datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "id": "met-office-uk-deterministic-height-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Height levels collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Height levels collection Met Office UKV 2km deterministic forecast thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "Cloud", - "Temperature", - "Wind", - "Height" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "item_assets": { - "cloud_amount_on_height_levels": { - "type": "application/netcdf", - "title": "Cloud amount on height levels", - "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", - "unit": "1", - "roles": [ - "data" - ] - }, - "temperature_on_height_levels": { - "type": "application/netcdf", - "title": "Temperature on height levels", - "description": "Air temperature on height levels.", - "unit": "K", - "roles": [ - "data" - ] - }, - "wind_direction_on_height_levels": { - "type": "application/netcdf", - "title": "Wind direction on height levels", - "description": "Wind direction on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", - "unit": "degrees", - "roles": [ - "data" - ] - }, - "wind_speed_on_height_levels": { - "type": "application/netcdf", - "title": "Wind speed on height levels", - "description": "Wind speed on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "unit": "m/s", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/classification/v1.0.0/schema.json", - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", - "https://stac-extensions.github.io/table/v1.2.0/schema.json", - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Height Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md similarity index 100% rename from datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md rename to datasets/met-office/collection/met-office-uk-deterministic-height/description.md diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json new file mode 100644 index 000000000..46569ba3c --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json @@ -0,0 +1,93 @@ +{ + "id": "met-office-uk-deterministic-height", + "type": "Collection", + "description": "{{ collection.description }}", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Height levels collection Met Office UKV 2km deterministic forecast", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "Cloud", + "Temperature", + "Wind", + "Height" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "item_assets": { + "cloud_amount_on_height_levels": { + "type": "application/netcdf", + "title": "Cloud amount on height levels", + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", + "unit": "1", + "roles": ["data"] + }, + "temperature_on_height_levels": { + "type": "application/netcdf", + "title": "Temperature on height levels", + "description": "Air temperature on height levels.", + "unit": "K", + "roles": ["data"] + }, + "wind_direction_on_height_levels": { + "type": "application/netcdf", + "title": "Wind direction on height levels", + "description": "Wind direction on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", + "unit": "degrees", + "roles": ["data"] + }, + "wind_speed_on_height_levels": { + "type": "application/netcdf", + "title": "Wind speed on height levels", + "description": "Wind speed on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "unit": "m/s", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/classification/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office UK Deterministic Height Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json deleted file mode 100644 index 6ccbd6425..000000000 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json +++ /dev/null @@ -1,420 +0,0 @@ -{ - "id": "met-office-uk-deterministic-near-surface-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Near-surface level collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Near-surface level collection Met Office UKV 2km deterministic forecast Thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "Precipitation", - "Temperature", - "Wind", - "Pressure", - "Humidity" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "item_assets": { - "fog_fraction_at_screen_level": { - "type": "application/netcdf", - "title": "Fog fraction at screen level", - "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused by water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", - "unit": "1", - "height": "1.5m", - "roles": [ - "data" - ] - }, - "hail_fall_accumulation-PT01H": { - "type": "application/netcdf", - "title": "Hourly hail fall accumulation", - "description": "Implied depth of the layer of liquid water equivalent (LWE) hail produced by the model precipitation scheme and deposited on the surface in the previous hour.", - "unit": "m", - "roles": [ - "data" - ] - }, - "hail_fall_rate": { - "type": "application/netcdf", - "title": "Hail fall rate", - "description": "Instantaneous rate at which liquid water equivalent (LWE) hail (as a depth) has been produced by the model precipitation scheme and deposited on the surface.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "height_of_orography": { - "type": "application/netcdf", - "title": "Height of orography", - "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m).", - "unit": "m", - "roles": [ - "data" - ] - }, - "landsea_mask": { - "type": "application/netcdf", - "title": "Land binary mask", - "description": "Binary indicator of whether a point is considered land (value = 1) or sea (value = 0). This is useful to identify the coastline and characterise points for correct interpretation of forecast data by users.", - "unit": "1", - "roles": [ - "data" - ] - }, - "precipitation_accumulation-PT01H": { - "type": "application/netcdf", - "title": "Hourly precipitation accumulation", - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "unit": "m", - "roles": [ - "data" - ] - }, - "precipitation_accumulation-PT03H": { - "type": "application/netcdf", - "title": "Three hourly precipitation accumulation", - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "unit": "m", - "roles": [ - "data" - ] - }, - "precipitation_rate": { - "type": "application/netcdf", - "title": "Precipitation rate", - "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "pressure_at_mean_sea_level": { - "type": "application/netcdf", - "title": "Pressure at mean sea level", - "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", - "unit": "Pa", - "roles": [ - "data" - ] - }, - "pressure_at_surface": { - "type": "application/netcdf", - "title": "Pressure at surface", - "description": "Air pressure at the surface (lower boundary of the atmosphere).", - "unit": "Pa", - "roles": [ - "data" - ] - }, - "radiation_flux_in_longwave_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in longwave downward at surface", - "description": "Longwave radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "radiation_flux_in_shortwave_diffuse_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in shortwave diffuse downward at surface", - "description": "Diffuse component of shortwave radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "radiation_flux_in_shortwave_direct_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in shortwave direct downward at surface", - "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "radiation_flux_in_shortwave_total_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in shortwave total downward at surface", - "description": "Total shortwave radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "radiation_flux_in_uv_downward_at_surface": { - "type": "application/netcdf", - "title": "Radiation flux in uv downward at surface", - "description": "Ultraviolet radiation at the surface from above directed at the ground.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "rainfall_accumulation-PT01H": { - "type": "application/netcdf", - "title": "Hourly rainfall accumulation", - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", - "unit": "m", - "roles": [ - "data" - ] - }, - "rainfall_accumulation-PT03H": { - "type": "application/netcdf", - "title": "Three hourly rainfall accumulation", - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", - "unit": "m", - "roles": [ - "data" - ] - }, - "rainfall_rate": { - "type": "application/netcdf", - "title": "Rainfall rate", - "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "relative_humidity_at_screen_level": { - "type": "application/netcdf", - "title": "Relative humidity at screen level", - "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", - "unit": "1", - "height": "1.5m", - "roles": [ - "data" - ] - }, - "sensible_heat_flux_at_surface": { - "type": "application/netcdf", - "title": "Sensible heat flux at surface", - "description": "Exchange of heat between the surface and the air by motion of air, also called turbulent heat flux.", - "unit": "W/m2", - "roles": [ - "data" - ] - }, - "snow_depth_water_equivalent": { - "type": "application/netcdf", - "title": "Snow depth water equivalent", - "description": "Liquid water equivalent ( LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", - "unit": "m", - "roles": [ - "data" - ] - }, - "snowfall_accumulation-PT01H": { - "type": "application/netcdf", - "title": "Hourly snowfall accumulation", - "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous hour. This excludes the snow produced by the model convection scheme. ", - "unit": "m", - "roles": [ - "data" - ] - }, - "snowfall_accumulation-PT03H": { - "type": "application/netcdf", - "title": "Three hourly snowfall accumulation", - "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous 3 hours. This excludes the snow produced by the model convection scheme.", - "unit": "m", - "roles": [ - "data" - ] - }, - "snowfall_rate": { - "type": "application/netcdf", - "title": "Snowfall rate", - "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the model convection scheme.", - "unit": "m/s", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level": { - "type": "application/netcdf", - "title": "Temperature at screen level", - "description": "Instantaneous air temperature at screen level (1.5m).", - "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_max-PT01H": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level max", - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] - }, - "temperature_at_screen_level_min-PT01H": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level min", - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] - }, - "temperature_at_surface": { - "type": "application/netcdf", - "title": "Temperature at surface", - "description": "Temperature at the surface interface between the air and the ground.", - "unit": "K", - "roles": [ - "data" - ] - }, - "temperature_of_dew_point_at_screen_level": { - "type": "application/netcdf", - "title": "Dew point temperature at screen level", - "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", - "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] - }, - "visibility_at_screen_level": { - "type": "application/netcdf", - "title": "Visibility at screen level", - "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", - "unit": "m", - "height": "1.5m", - "roles": [ - "data" - ] - }, - "wind_direction_at_10m": { - "type": "application/netcdf", - "title": "Wind direction at 10m", - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", - "unit": "degrees", - "height": "10.0m", - "roles": [ - "data" - ] - }, - "wind_gust_at_10m": { - "type": "application/netcdf", - "title": "Wind gust at 10m", - "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", - "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] - }, - "wind_gust_at_10m_max-PT01H": { - "type": "application/netcdf", - "title": "Hourly wind gust at 10m max", - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period. ", - "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] - }, - "wind_gust_at_10m_max-PT03H": { - "type": "application/netcdf", - "title": "Three hourly wind gust at 10m max", - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", - "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] - }, - "wind_speed_at_10m": { - "type": "application/netcdf", - "title": "Wind speed at 10m", - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/classification/v1.0.0/schema.json", - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", - "https://stac-extensions.github.io/table/v1.2.0/schema.json", - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Near Surface Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md similarity index 100% rename from datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/description.md rename to datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json new file mode 100644 index 000000000..c04b6e133 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json @@ -0,0 +1,323 @@ +{ + "id": "met-office-uk-deterministic-near-surface", + "type": "Collection", + "description": "{{ collection.description }}", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Near-surface level collection Met Office UKV 2km deterministic forecast", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "Precipitation", + "Temperature", + "Wind", + "Pressure", + "Humidity" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "item_assets": { + "fog_fraction_at_screen_level": { + "type": "application/netcdf", + "title": "Fog fraction at screen level", + "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused by water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", + "unit": "1", + "height": "1.5m", + "roles": ["data"] + }, + "hail_fall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly hail fall accumulation", + "description": "Implied depth of the layer of liquid water equivalent (LWE) hail produced by the model precipitation scheme and deposited on the surface in the previous hour.", + "unit": "m", + "roles": ["data"] + }, + "hail_fall_rate": { + "type": "application/netcdf", + "title": "Hail fall rate", + "description": "Instantaneous rate at which liquid water equivalent (LWE) hail (as a depth) has been produced by the model precipitation scheme and deposited on the surface.", + "unit": "m/s", + "roles": ["data"] + }, + "height_of_orography": { + "type": "application/netcdf", + "title": "Height of orography", + "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m).", + "unit": "m", + "roles": ["data"] + }, + "landsea_mask": { + "type": "application/netcdf", + "title": "Land binary mask", + "description": "Binary indicator of whether a point is considered land (value = 1) or sea (value = 0). This is useful to identify the coastline and characterise points for correct interpretation of forecast data by users.", + "unit": "1", + "roles": ["data"] + }, + "precipitation_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly precipitation accumulation", + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "unit": "m", + "roles": ["data"] + }, + "precipitation_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly precipitation accumulation", + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "unit": "m", + "roles": ["data"] + }, + "precipitation_rate": { + "type": "application/netcdf", + "title": "Precipitation rate", + "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "unit": "m/s", + "roles": ["data"] + }, + "pressure_at_mean_sea_level": { + "type": "application/netcdf", + "title": "Pressure at mean sea level", + "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", + "unit": "Pa", + "roles": ["data"] + }, + "pressure_at_surface": { + "type": "application/netcdf", + "title": "Pressure at surface", + "description": "Air pressure at the surface (lower boundary of the atmosphere).", + "unit": "Pa", + "roles": ["data"] + }, + "radiation_flux_in_longwave_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in longwave downward at surface", + "description": "Longwave radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "radiation_flux_in_shortwave_diffuse_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave diffuse downward at surface", + "description": "Diffuse component of shortwave radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "radiation_flux_in_shortwave_direct_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave direct downward at surface", + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "radiation_flux_in_shortwave_total_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave total downward at surface", + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "radiation_flux_in_uv_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in uv downward at surface", + "description": "Ultraviolet radiation at the surface from above directed at the ground.", + "unit": "W/m2", + "roles": ["data"] + }, + "rainfall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly rainfall accumulation", + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", + "unit": "m", + "roles": ["data"] + }, + "rainfall_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly rainfall accumulation", + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", + "unit": "m", + "roles": ["data"] + }, + "rainfall_rate": { + "type": "application/netcdf", + "title": "Rainfall rate", + "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", + "unit": "m/s", + "roles": ["data"] + }, + "relative_humidity_at_screen_level": { + "type": "application/netcdf", + "title": "Relative humidity at screen level", + "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", + "unit": "1", + "height": "1.5m", + "roles": ["data"] + }, + "sensible_heat_flux_at_surface": { + "type": "application/netcdf", + "title": "Sensible heat flux at surface", + "description": "Exchange of heat between the surface and the air by motion of air, also called turbulent heat flux.", + "unit": "W/m2", + "roles": ["data"] + }, + "snow_depth_water_equivalent": { + "type": "application/netcdf", + "title": "Snow depth water equivalent", + "description": "Liquid water equivalent ( LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", + "unit": "m", + "roles": ["data"] + }, + "snowfall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly snowfall accumulation", + "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous hour. This excludes the snow produced by the model convection scheme. ", + "unit": "m", + "roles": ["data"] + }, + "snowfall_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly snowfall accumulation", + "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous 3 hours. This excludes the snow produced by the model convection scheme.", + "unit": "m", + "roles": ["data"] + }, + "snowfall_rate": { + "type": "application/netcdf", + "title": "Snowfall rate", + "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the model convection scheme.", + "unit": "m/s", + "roles": ["data"] + }, + "temperature_at_screen_level": { + "type": "application/netcdf", + "title": "Temperature at screen level", + "description": "Instantaneous air temperature at screen level (1.5m).", + "unit": "K", + "height": "1.5m", + "roles": ["data"] + }, + "temperature_at_screen_level_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level max", + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "unit": "K", + "height": "1.5m", + "roles": ["data"] + }, + "temperature_at_screen_level_min-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level min", + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "unit": "K", + "height": "1.5m", + "roles": ["data"] + }, + "temperature_at_surface": { + "type": "application/netcdf", + "title": "Temperature at surface", + "description": "Temperature at the surface interface between the air and the ground.", + "unit": "K", + "roles": ["data"] + }, + "temperature_of_dew_point_at_screen_level": { + "type": "application/netcdf", + "title": "Dew point temperature at screen level", + "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", + "unit": "K", + "height": "1.5m", + "roles": ["data"] + }, + "visibility_at_screen_level": { + "type": "application/netcdf", + "title": "Visibility at screen level", + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "unit": "m", + "height": "1.5m", + "roles": ["data"] + }, + "wind_direction_at_10m": { + "type": "application/netcdf", + "title": "Wind direction at 10m", + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", + "unit": "degrees", + "height": "10.0m", + "roles": ["data"] + }, + "wind_gust_at_10m": { + "type": "application/netcdf", + "title": "Wind gust at 10m", + "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", + "unit": "m/s", + "height": "10.0m", + "roles": ["data"] + }, + "wind_gust_at_10m_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly wind gust at 10m max", + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period. ", + "unit": "m/s", + "height": "10.0m", + "roles": ["data"] + }, + "wind_gust_at_10m_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly wind gust at 10m max", + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", + "unit": "m/s", + "height": "10.0m", + "roles": ["data"] + }, + "wind_speed_at_10m": { + "type": "application/netcdf", + "title": "Wind speed at 10m", + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "unit": "m/s", + "height": "10.0m", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/classification/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office UK Deterministic Near Surface Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json deleted file mode 100644 index f4df35a92..000000000 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "id": "met-office-UK-deterministic-pressure-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Pressure levels collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Pressure levels collection Met Office UKV 2km deterministic forecast Thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "Temperature", - "Wind", - "Pressure", - "Humidity" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "item_assets": { - "geopotential_height_on_pressure_levels ": { - "type": "application/netcdf", - "title": "Geopotential height of the pressure levels", - "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", - "unit": "m", - "roles": [ - "data" - ] - }, - "height_ASL_on_pressure_levels": { - "type": "application/netcdf", - "title": "Height above sea level of the pressure levels", - "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", - "unit": "m", - "roles": [ - "data" - ] - }, - "relative_humidity_on_pressure_levels": { - "type": "application/netcdf", - "title": "Fractional relative humidity on pressure levels.", - "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", - "unit": "1", - "roles": [ - "data" - ] - }, - "temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Temperature on pressure levels", - "description": "Air temperature on pressure levels.", - "unit": "K", - "roles": [ - "data" - ] - }, - "wet_bulb_potential_temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wet bulb potential temperature on pressure levels", - "description": "Wet bulb potential temperature is defined as the temperature that a parcel of air would have if it were brought down to the standard pressure of 1000hPa following a saturated adiabatic lapse rate. Available on levels: 85000.0, 70000.0, 50000.0 Pa", - "unit": "K", - "roles": [ - "data" - ] - }, - "wind_direction_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind direction on pressure levels", - "description": "Wind direction on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", - "unit": "degrees", - "roles": [ - "data" - ] - }, - "wind_speed_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind speed on pressure levels", - "description": "Wind speed on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "unit": "m/s", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/classification/v1.0.0/schema.json", - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", - "https://stac-extensions.github.io/table/v1.2.0/schema.json", - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Pressure Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md similarity index 100% rename from datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md rename to datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json new file mode 100644 index 000000000..df0776586 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json @@ -0,0 +1,114 @@ +{ + "id": "met-office-uk-deterministic-pressure", + "type": "Collection", + "description": "{{ collection.description }}", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Pressure levels collection Met Office UKV 2km deterministic forecast", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "Temperature", + "Wind", + "Pressure", + "Humidity" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "item_assets": { + "geopotential_height_on_pressure_levels ": { + "type": "application/netcdf", + "title": "Geopotential height of the pressure levels", + "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", + "unit": "m", + "roles": ["data"] + }, + "height_ASL_on_pressure_levels": { + "type": "application/netcdf", + "title": "Height above sea level of the pressure levels", + "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", + "unit": "m", + "roles": ["data"] + }, + "relative_humidity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Fractional relative humidity on pressure levels.", + "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", + "unit": "1", + "roles": ["data"] + }, + "temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Temperature on pressure levels", + "description": "Air temperature on pressure levels.", + "unit": "K", + "roles": ["data"] + }, + "wet_bulb_potential_temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wet bulb potential temperature on pressure levels", + "description": "Wet bulb potential temperature is defined as the temperature that a parcel of air would have if it were brought down to the standard pressure of 1000hPa following a saturated adiabatic lapse rate. Available on levels: 85000.0, 70000.0, 50000.0 Pa", + "unit": "K", + "roles": ["data"] + }, + "wind_direction_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind direction on pressure levels", + "description": "Wind direction on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", + "unit": "degrees", + "roles": ["data"] + }, + "wind_speed_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind speed on pressure levels", + "description": "Wind speed on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "unit": "m/s", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/classification/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office UK Deterministic Pressure Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json deleted file mode 100644 index 76fed3f11..000000000 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json +++ /dev/null @@ -1,192 +0,0 @@ -{ - "id": "met-office-uk-deterministic-whole-atmosphere-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "CAPE", - "Cloud", - "Freezing", - "Wet Bulb", - "Lightning" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "item_assets": { - "CAPE_most_unstable_below_500hPa": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy most unstable below 500hPa", - "description": "CAPE (Convective Available Potential Energy) calculated for the most unstable parcel where the most unstable parcel is defined as the parcel with the highest fixed level CAPE launched from any level (including screen-level=1.5m) within 500hPa of the surface pressure.", - "unit": "J/kg", - "roles": [ - "data" - ] - }, - "CAPE_surface": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy with respect to surface", - "description": "Value of CAPE (Convective Available Potential Energy) calculated for a surface based parcel where a surface based parcel is defined as a parcel initiated with thermodynamic properties at screen level height (1.5m) i.e. the parcel is launched from screen level.", - "unit": "J/kg", - "roles": [ - "data" - ] - }, - "cloud_amount_below_1000ft_ASL": { - "type": "application/netcdf", - "title": "Cloud amount below 1000ft Above Sea Level", - "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", - "unit": "1", - "roles": [ - "data" - ] - }, - "cloud_amount_of_high_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of high cloud", - "description": "Fraction of horizontal grid square occupied by cloud in the high-level cloud height range (from the lowest model layer containing the 5574m height level up to but excluding the lowest model layer containing 13608m height level).", - "unit": "1", - "roles": [ - "data" - ] - }, - "cloud_amount_of_low_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of low cloud", - "description": "Fraction of horizontal grid square occupied by cloud in the low-level cloud height range (from the lowest model layer containing the 111m height level up to but excluding the lowest model layer containing 1949m height level).", - "unit": "1", - "roles": [ - "data" - ] - }, - "cloud_amount_of_medium_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of medium cloud", - "description": "Fraction of horizontal grid square occupied by cloud in the mid-level cloud height range (from the lowest model layer containing the 1949m height level up to but excluding the lowest model layer containing 5574m height level).", - "unit": "1", - "roles": [ - "data" - ] - }, - "cloud_amount_of_total_cloud": { - "type": "application/netcdf", - "title": "Cloud amount of total cloud", - "description": "Fraction of horizontal grid square occupied by cloud as diagnosed by the model cloud scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", - "unit": "1", - "roles": [ - "data" - ] - }, - "height_AGL_at_cloud_base_where_cloud_cover_2p5_oktas": { - "type": "application/netcdf", - "title": "Height above ground level at cloud base where cloud cover 2p5 oktas", - "description": "Height of the base of the lowest cloud above the surface (ground) where there is at least 2.5 oktas (eighths) of cloud cover. This corresponds to scattered cloud.", - "unit": "m", - "roles": [ - "data" - ] - }, - "height_AGL_at_freezing_level": { - "type": "application/netcdf", - "title": "Height above ground level at freezing level", - "description": "Height of the 0oC isotherm (freezing level) above the surface (ground).", - "unit": "m", - "roles": [ - "data" - ] - }, - "height_AGL_at_wet_bulb_freezing_level": { - "type": "application/netcdf", - "title": "Height above ground level at wet bulb freezing level", - "description": "Height of the wet bulb freezing level (i.e. where the wet bulb temperature is 0oC) above sea level. This is also referred to as the altitude of the wet bulb freezing level or (geometric) height above the geoid, which is the reference geopotential surface. Wet bulb temperature is defined as the temperature of a parcel of air cooled to saturation (100% relative humidity) by the evaporation of water into it with the latent heat supplied by the parcel.", - "unit": "m", - "roles": [ - "data" - ] - }, - "lightning_flash_accumulation-PT01H": { - "type": "application/netcdf", - "title": "Hourly number of lightning flashes per unit area", - "description": "This represents the total (cloud-to-cloud and cloud-to-ground) lightning flashes per square metre within the previous hour", - "unit": "count/m2", - "roles": [ - "data" - ] - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/classification/v1.0.0/schema.json", - "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", - "https://stac-extensions.github.io/table/v1.2.0/schema.json", - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Whole Atmosphere Level", - "msft:region": "westeurope" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md similarity index 100% rename from datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/description.md rename to datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json new file mode 100644 index 000000000..0455d2a48 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json @@ -0,0 +1,143 @@ +{ + "id": "met-office-uk-deterministic-whole-atmosphere", + "type": "Collection", + "description": "{{ collection.description }}", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast", + "assets": {}, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "CAPE", + "Cloud", + "Freezing", + "Wet Bulb", + "Lightning" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "item_assets": { + "CAPE_most_unstable_below_500hPa": { + "type": "application/netcdf", + "title": "Convective Available Potential Energy most unstable below 500hPa", + "description": "CAPE (Convective Available Potential Energy) calculated for the most unstable parcel where the most unstable parcel is defined as the parcel with the highest fixed level CAPE launched from any level (including screen-level=1.5m) within 500hPa of the surface pressure.", + "unit": "J/kg", + "roles": ["data"] + }, + "CAPE_surface": { + "type": "application/netcdf", + "title": "Convective Available Potential Energy with respect to surface", + "description": "Value of CAPE (Convective Available Potential Energy) calculated for a surface based parcel where a surface based parcel is defined as a parcel initiated with thermodynamic properties at screen level height (1.5m) i.e. the parcel is launched from screen level.", + "unit": "J/kg", + "roles": ["data"] + }, + "cloud_amount_below_1000ft_ASL": { + "type": "application/netcdf", + "title": "Cloud amount below 1000ft Above Sea Level", + "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", + "unit": "1", + "roles": ["data"] + }, + "cloud_amount_of_high_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of high cloud", + "description": "Fraction of horizontal grid square occupied by cloud in the high-level cloud height range (from the lowest model layer containing the 5574m height level up to but excluding the lowest model layer containing 13608m height level).", + "unit": "1", + "roles": ["data"] + }, + "cloud_amount_of_low_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of low cloud", + "description": "Fraction of horizontal grid square occupied by cloud in the low-level cloud height range (from the lowest model layer containing the 111m height level up to but excluding the lowest model layer containing 1949m height level).", + "unit": "1", + "roles": ["data"] + }, + "cloud_amount_of_medium_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of medium cloud", + "description": "Fraction of horizontal grid square occupied by cloud in the mid-level cloud height range (from the lowest model layer containing the 1949m height level up to but excluding the lowest model layer containing 5574m height level).", + "unit": "1", + "roles": ["data"] + }, + "cloud_amount_of_total_cloud": { + "type": "application/netcdf", + "title": "Cloud amount of total cloud", + "description": "Fraction of horizontal grid square occupied by cloud as diagnosed by the model cloud scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", + "unit": "1", + "roles": ["data"] + }, + "height_AGL_at_cloud_base_where_cloud_cover_2p5_oktas": { + "type": "application/netcdf", + "title": "Height above ground level at cloud base where cloud cover 2p5 oktas", + "description": "Height of the base of the lowest cloud above the surface (ground) where there is at least 2.5 oktas (eighths) of cloud cover. This corresponds to scattered cloud.", + "unit": "m", + "roles": ["data"] + }, + "height_AGL_at_freezing_level": { + "type": "application/netcdf", + "title": "Height above ground level at freezing level", + "description": "Height of the 0oC isotherm (freezing level) above the surface (ground).", + "unit": "m", + "roles": ["data"] + }, + "height_AGL_at_wet_bulb_freezing_level": { + "type": "application/netcdf", + "title": "Height above ground level at wet bulb freezing level", + "description": "Height of the wet bulb freezing level (i.e. where the wet bulb temperature is 0oC) above sea level. This is also referred to as the altitude of the wet bulb freezing level or (geometric) height above the geoid, which is the reference geopotential surface. Wet bulb temperature is defined as the temperature of a parcel of air cooled to saturation (100% relative humidity) by the evaporation of water into it with the latent heat supplied by the parcel.", + "unit": "m", + "roles": ["data"] + }, + "lightning_flash_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly number of lightning flashes per unit area", + "description": "This represents the total (cloud-to-cloud and cloud-to-ground) lightning flashes per square metre within the previous hour", + "unit": "count/m2", + "roles": ["data"] + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "staging", + "stac_extensions": [ + "https://stac-extensions.github.io/classification/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json", + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" + ], + "msft:storage_account": "ukmoforecasts", + "msft:short_description": "Met Office UK Deterministic Whole Atmosphere Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index 37b4a2273..d47d112b1 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -1,18 +1,32 @@ id: met-office -image: ${{ args.registry }}/pctasks-task-base:2025.4.8.2 +image: ${{ args.registry }}/pctasks-task-base:latest args: - registry code: src: ${{ local.path(./met_office.py) }} + requirements: ${{ local.path(./requirements.txt) }} environment: APPLICATIONINSIGHTS_CONNECTION_STRING: ${{ secrets.task-application-insights-connection-string }} + DB_CONNECTION_STRING: ${{ secrets.staging-db-connection-string }} collections: - - id: met-office-global-deterministic-height-level - template: ${{ local.path(./collection/met-office-global-deterministic-near-surface-level) }} + - id: met-office-global-deterministic-height + template: ${{ local.path(./collection/met-office-global-deterministic-height) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/staging/global/height + chunks: + options: + min_depth: 1 + max_depth: 1 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/staging/staging-chunks/ + - id: met-office-global-deterministic-near-surface + template: ${{ local.path(./collection/met-office-global-deterministic-near-surface) }} class: met_office:MetOfficeCollection asset_storage: - uri: blob://ukmoforecasts/staging/global/near-surface @@ -23,3 +37,75 @@ collections: chunk_length: 20000 chunk_storage: uri: blob://ukmoforecasts/staging/staging-chunks/ + - id: met-office-global-deterministic-pressure + template: ${{ local.path(./collection/met-office-global-deterministic-pressure) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/staging/global/pressure + chunks: + options: + min_depth: 1 + max_depth: 1 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/staging/staging-chunks/ + - id: met-office-global-deterministic-whole-atmosphere + template: ${{ local.path(./collection/met-office-global-deterministic-whole-atmosphere) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/staging/global/whole-atmosphere + chunks: + options: + min_depth: 1 + max_depth: 1 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/staging/staging-chunks/ + - id: met-office-uk-deterministic-height + template: ${{ local.path(./collection/met-office-uk-deterministic-height) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/staging/uk/height + chunks: + options: + min_depth: 1 + max_depth: 1 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/staging/staging-chunks/ + - id: met-office-uk-deterministic-near-surface + template: ${{ local.path(./collection/met-office-uk-deterministic-near-surface) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/staging/uk/near-surface + chunks: + options: + min_depth: 1 + max_depth: 1 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/staging/staging-chunks/ + - id: met-office-uk-deterministic-pressure + template: ${{ local.path(./collection/met-office-uk-deterministic-pressure) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/staging/uk/pressure + chunks: + options: + min_depth: 1 + max_depth: 1 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/staging/staging-chunks/ + - id: met-office-uk-deterministic-whole-atmosphere + template: ${{ local.path(./collection/met-office-uk-deterministic-whole-atmosphere) }} + class: met_office:MetOfficeCollection + asset_storage: + - uri: blob://ukmoforecasts/staging/uk/whole-atmosphere + chunks: + options: + min_depth: 1 + max_depth: 1 + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoforecasts/staging/staging-chunks/ From c71cc1d5e57cb1c211edc6556c68466232622c1e Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Fri, 5 Dec 2025 07:11:41 -0700 Subject: [PATCH 06/15] fix: ingestion --- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- datasets/met-office/dataset.yaml | 88 ++++++++++--------- datasets/met-office/met_office.py | 56 +++++++++++- datasets/met-office/requirements.txt | 2 +- 11 files changed, 112 insertions(+), 50 deletions(-) diff --git a/datasets/met-office/collection/met-office-global-deterministic-height/template.json b/datasets/met-office/collection/met-office-global-deterministic-height/template.json index bddf7f113..323246417 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-height/template.json @@ -52,7 +52,7 @@ "stac_extensions": [ "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Height Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json index 39a3fe0ec..48eaed86f 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json @@ -401,7 +401,7 @@ "https://stac-extensions.github.io/table/v1.2.0/schema.json", "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Near Surface Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json index 1e66608a2..9add32883 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json @@ -85,7 +85,7 @@ "https://stac-extensions.github.io/table/v1.2.0/schema.json", "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Pressure Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json index c8185a9a1..e903b2b23 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json @@ -120,7 +120,7 @@ "https://stac-extensions.github.io/table/v1.2.0/schema.json", "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Whole Atmosphere Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json index 46569ba3c..f3b8bdf59 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json @@ -87,7 +87,7 @@ "https://stac-extensions.github.io/table/v1.2.0/schema.json", "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Height Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json index c04b6e133..555f3c7fb 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json @@ -317,7 +317,7 @@ "https://stac-extensions.github.io/table/v1.2.0/schema.json", "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Near Surface Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json index df0776586..bcfd8d607 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json @@ -108,7 +108,7 @@ "https://stac-extensions.github.io/table/v1.2.0/schema.json", "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Pressure Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json index 0455d2a48..33c8c66f3 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json @@ -137,7 +137,7 @@ "https://stac-extensions.github.io/table/v1.2.0/schema.json", "https://stac-extensions.github.io/forecast/v0.2.0/schema.json" ], - "msft:storage_account": "ukmoforecasts", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Whole Atmosphere Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index d47d112b1..2977dc183 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -15,97 +15,105 @@ environment: collections: - id: met-office-global-deterministic-height template: ${{ local.path(./collection/met-office-global-deterministic-height) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeGlobalHeightCollection asset_storage: - - uri: blob://ukmoforecasts/staging/global/height + - uri: blob://ukmoeuwest/staging/global/height chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-global-deterministic-near-surface template: ${{ local.path(./collection/met-office-global-deterministic-near-surface) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeGlobalNearSurfaceCollection asset_storage: - - uri: blob://ukmoforecasts/staging/global/near-surface + - uri: blob://ukmoeuwest/staging/global/near-surface chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-global-deterministic-pressure template: ${{ local.path(./collection/met-office-global-deterministic-pressure) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeGlobalPressureCollection asset_storage: - - uri: blob://ukmoforecasts/staging/global/pressure + - uri: blob://ukmoeuwest/staging/global/pressure chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-global-deterministic-whole-atmosphere template: ${{ local.path(./collection/met-office-global-deterministic-whole-atmosphere) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeGlobalWholeAtmosphereCollection asset_storage: - - uri: blob://ukmoforecasts/staging/global/whole-atmosphere + - uri: blob://ukmoeuwest/staging/global/whole-atmosphere chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-height template: ${{ local.path(./collection/met-office-uk-deterministic-height) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeUkHeightCollection asset_storage: - - uri: blob://ukmoforecasts/staging/uk/height + - uri: blob://ukmoeuwest/staging/uk/height chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-near-surface template: ${{ local.path(./collection/met-office-uk-deterministic-near-surface) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeUkNearSurfaceCollection asset_storage: - - uri: blob://ukmoforecasts/staging/uk/near-surface + - uri: blob://ukmoeuwest/staging/uk/near-surface chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-pressure template: ${{ local.path(./collection/met-office-uk-deterministic-pressure) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeUkPressureCollection asset_storage: - - uri: blob://ukmoforecasts/staging/uk/pressure + - uri: blob://ukmoeuwest/staging/uk/pressure chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-whole-atmosphere template: ${{ local.path(./collection/met-office-uk-deterministic-whole-atmosphere) }} - class: met_office:MetOfficeCollection + class: met_office:MetOfficeUkWholeAtmosphereCollection asset_storage: - - uri: blob://ukmoforecasts/staging/uk/whole-atmosphere + - uri: blob://ukmoeuwest/staging/uk/whole-atmosphere chunks: options: - min_depth: 1 - max_depth: 1 + min_depth: 0 + max_depth: 0 chunk_length: 20000 + list_folders: true chunk_storage: - uri: blob://ukmoforecasts/staging/staging-chunks/ + uri: blob://ukmoeuwest/staging/staging-chunks/ diff --git a/datasets/met-office/met_office.py b/datasets/met-office/met_office.py index e3de84eeb..a8aadeea9 100644 --- a/datasets/met-office/met_office.py +++ b/datasets/met-office/met_office.py @@ -1,3 +1,4 @@ +import logging from typing import Union from pctasks.core.models.task import WaitTaskResult @@ -5,14 +6,67 @@ from pctasks.dataset.collection import Collection from pystac import Item from stactools.met_office_deterministic import stac +from stactools.met_office_deterministic.constants import Model, Theme + +handler = logging.StreamHandler() +handler.setFormatter(logging.Formatter("[%(levelname)s]:%(asctime)s: %(message)s")) +handler.setLevel(logging.INFO) +logger = logging.getLogger(__name__) +logger.addHandler(handler) +logger.setLevel(logging.INFO) class MetOfficeCollection(Collection): + model: Model + theme: Theme + @classmethod def create_item( cls, asset_uri: str, storage_factory: StorageFactory ) -> Union[list[Item], WaitTaskResult]: + logger.info(f"Creating items for {asset_uri}") storage = storage_factory.get_storage(asset_uri) hrefs = list(storage.get_url(path) for path in storage.list_files()) - items = stac.create_items(hrefs) + logger.info(f"Found {len(hrefs)} hrefs") + items = stac.create_items(hrefs, model=cls.model, theme=cls.theme) return items + + +class MetOfficeGlobalHeightCollection(MetOfficeCollection): + model = Model.global_ + theme = Theme.height + + +class MetOfficeGlobalNearSurfaceCollection(MetOfficeCollection): + model = Model.global_ + theme = Theme.near_surface + + +class MetOfficeGlobalPressureCollection(MetOfficeCollection): + model = Model.global_ + theme = Theme.pressure_level + + +class MetOfficeGlobalWholeAtmosphereCollection(MetOfficeCollection): + model = Model.global_ + theme = Theme.whole_atmosphere + + +class MetOfficeUkHeightCollection(MetOfficeCollection): + model = Model.uk + theme = Theme.height + + +class MetOfficeUkNearSurfaceCollection(MetOfficeCollection): + model = Model.uk + theme = Theme.near_surface + + +class MetOfficeUkPressureCollection(MetOfficeCollection): + model = Model.uk + theme = Theme.pressure_level + + +class MetOfficeUkWholeAtmosphereCollection(MetOfficeCollection): + model = Model.uk + theme = Theme.whole_atmosphere diff --git a/datasets/met-office/requirements.txt b/datasets/met-office/requirements.txt index 870f0a74f..4fdd82a6f 100644 --- a/datasets/met-office/requirements.txt +++ b/datasets/met-office/requirements.txt @@ -1 +1 @@ -stactools-met-office-deterministic==0.2.0 +stactools-met-office-deterministic==0.3.0 From 880fdc939d54559474c9cacbbf3e770a6b27e928 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Fri, 5 Dec 2025 07:18:07 -0700 Subject: [PATCH 07/15] fix: collection bounding boxes --- .../collection/met-office-uk-deterministic-height/template.json | 2 +- .../met-office-uk-deterministic-near-surface/template.json | 2 +- .../met-office-uk-deterministic-pressure/template.json | 2 +- .../met-office-uk-deterministic-whole-atmosphere/template.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json index f3b8bdf59..fef3d7b5e 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[5, 50, 15, 62]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json index 555f3c7fb..cf3075946 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[5, 50, 15, 62]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json index bcfd8d607..80c242c83 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[5, 50, 15, 62]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json index 33c8c66f3..500f1b48c 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[5, 50, 15, 62]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] From 35f67bb0444e45b391c256071f51f93a31d489cd Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Fri, 5 Dec 2025 07:27:21 -0700 Subject: [PATCH 08/15] feat: add simple notebook --- datasets/met-office/met_office.ipynb | 25910 +++++++++++++++++++++++++ 1 file changed, 25910 insertions(+) create mode 100644 datasets/met-office/met_office.ipynb diff --git a/datasets/met-office/met_office.ipynb b/datasets/met-office/met_office.ipynb new file mode 100644 index 000000000..b3a6993bc --- /dev/null +++ b/datasets/met-office/met_office.ipynb @@ -0,0 +1,25910 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e75047bd", + "metadata": {}, + "source": [ + "# Met office (UK) deterministic forecast models\n", + "\n", + "A light notebook demonstrating access of the met office STAC items in our test database." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "358009bf", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gadomski/Code/microsoft/planetary-computer-tasks/.venv/lib/python3.12/site-packages/pystac_client/collection_search.py:306: UserWarning: Server does not conform to COLLECTION_SEARCH. Filtering will be performed client-side where only bbox, datetime, and q arguments are supported\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "met-office-global-deterministic-near-surface\n", + "met-office-global-deterministic-whole-atmosphere\n", + "met-office-global-deterministic-height\n", + "met-office-global-deterministic-pressure\n", + "met-office-uk-deterministic-near-surface\n", + "met-office-uk-deterministic-height\n", + "met-office-uk-deterministic-pressure\n", + "met-office-uk-deterministic-whole-atmosphere\n" + ] + } + ], + "source": [ + "from IPython.display import display\n", + "from pystac_client import Client\n", + "\n", + "client = Client.open(\"https://planetarycomputer-test.microsoft.com/stac\")\n", + "collection_search = client.collection_search(q=\"met-office\")\n", + "collections = list(collection_search.collections())\n", + "for collection in collections:\n", + " print(collection.id)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "afa211f9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 59 items for collection: met-office-global-deterministic-near-surface\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Item id=20251205T0000Z-PT0066H00M>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 60 items for collection: met-office-global-deterministic-whole-atmosphere\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Item id=20251205T0000Z-PT0066H00M>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 59 items for collection: met-office-global-deterministic-height\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Item id=20251205T0000Z-PT0066H00M>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No items found for collection: met-office-global-deterministic-pressure\n", + "Found 133 items for collection: met-office-uk-deterministic-near-surface\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Item id=20251203T1800Z-PT0033H00M>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 40 items for collection: met-office-uk-deterministic-height\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Item id=20251203T1300Z-PT0028H00M>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No items found for collection: met-office-uk-deterministic-pressure\n", + "Found 40 items for collection: met-office-uk-deterministic-whole-atmosphere\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " <Item id=20251203T1500Z-PT0030H00M>\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for collection in collections:\n", + " item_search = client.search(collections=[collection.id])\n", + " items = list(item_search.items())\n", + " if items:\n", + " print(f\"Found {len(items)} items for collection: {collection.id}\")\n", + " display(items[0])\n", + " else:\n", + " print(\"No items found for collection:\", collection.id)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "planetary-computer-tasks", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 3b191a5deecbaaf9c27c8b5f1ace0ea657f95793 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Fri, 5 Dec 2025 08:38:11 -0700 Subject: [PATCH 09/15] fix: notebooks --- .../collection/met-office-uk-deterministic-height/template.json | 2 +- .../met-office-uk-deterministic-near-surface/template.json | 2 +- .../met-office-uk-deterministic-pressure/template.json | 2 +- .../met-office-uk-deterministic-whole-atmosphere/template.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json index fef3d7b5e..ec3c6ee7a 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[5, 50, 15, 62]] + "bbox": [[-24.51, 44.52, 15.28, 61.93]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json index cf3075946..d79ff1343 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[5, 50, 15, 62]] + "bbox": [[-24.51, 44.52, 15.28, 61.93]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json index 80c242c83..c56cd70fc 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[5, 50, 15, 62]] + "bbox": [[-24.51, 44.52, 15.28, 61.93]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json index 500f1b48c..361a2b894 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json @@ -19,7 +19,7 @@ "assets": {}, "extent": { "spatial": { - "bbox": [[5, 50, 15, 62]] + "bbox": [[-24.51, 44.52, 15.28, 61.93]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] From 216cb8b543ef6915f459ebbfbe97ffff0f4247bd Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Mon, 8 Dec 2025 09:54:51 -0700 Subject: [PATCH 10/15] fix: update collections --- .../template.json | 166 +-- .../template.json | 1322 ++++++++--------- .../template.json | 336 ++--- .../template.json | 458 +++--- .../template.json | 231 ++- .../template.json | 999 ++++++------- .../template.json | 305 ++-- .../template.json | 373 +++-- 8 files changed, 2000 insertions(+), 2190 deletions(-) diff --git a/datasets/met-office/collection/met-office-global-deterministic-height/template.json b/datasets/met-office/collection/met-office-global-deterministic-height/template.json index b681107d6..bc19fbe59 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-height/template.json @@ -1,101 +1,73 @@ { - "id": "met-office-global-deterministic-height-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "cite-as", - "title": "British Crown copyright 2023-2025, the Met Office, is licensed under CC BY-SA" - }, - { - "rel": "describedBy", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Met Office Global Deterministic Height Level", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Met Office Global Deterministic Height Level Thumbnail" - } + "id": "met-office-global-deterministic-height", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } + + { + "rel": "describedBy", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Met Office Global Deterministic Height Level", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-height.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Met Office Global Deterministic Height Level Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] }, - "license": "proprietary", - "keywords": [ - "MetOffice", - "Global", - "Cloud" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "description": "The Met Office Global Deterministic Height Level dataset provides a composite of weather parameters generated for specific atmospheric height levels.", - "cube:variables": { - "cloud_amount_on_height_levels": { - "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels. The levels are height above ground.", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - } + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": ["MetOffice", "Global", "Cloud"], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Height Level", - "msft:region": "westeurope" -} \ No newline at end of file + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "description": "The Met Office Global Deterministic Height Level dataset provides a composite of weather parameters generated for specific atmospheric height levels.", + "cube:variables": { + "cloud_amount_on_height_levels": { + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels. The levels are height above ground.", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office Global Deterministic Height Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json index ca2a7e7e4..9904e49f7 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json @@ -1,673 +1,651 @@ { - "id": "met-office-global-deterministic-near-surface-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Near-surface level collection Met Office global deterministic 10km forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Near-surface level collection Met Office global deterministic 10km forecast thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Global", - "Forecast", - "Cloud", - "Fog", - "Heat Flux", - "Precipitation", - "Pressure", - "Radiation", - "Rainfall", - "Humidity", - "Snow", - "Temperature", - "Wind" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "cube:variables": { - "fog_fraction_at_screen_level": { - "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", - "dimensions": [], - "unit": "1", - "attrs": { - "height": "1.5m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "height_of_orography": { - "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m)", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 only", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "latent_heat_flux_at_surface_mean-PT01H": { - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "latent_heat_flux_at_surface_mean-PT03H": { - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "latent_heat_flux_at_surface_mean-PT06H": { - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "precipitation_accumulation-PT01H": { - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "T+1 to T+48", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "precipitation_accumulation-PT03H": { - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "T+51 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "precipitation_accumulation-PT06H": { - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 6 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "precipitation_rate": { - "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "pressure_at_mean_sea_level": { - "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", - "dimensions": [], - "unit": "Pa", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_longwave_downward_at_surface": { - "description": "Longwave radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_shortwave_direct_downward_at_surface": { - "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_shortwave_total_downward_at_surface": { - "description": "Total shortwave radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_uv_downward_at_surface": { - "description": "Ultaviolet radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "T+0 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "rainfall_accumulation-PT01H": { - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "rainfall_accumulation-PT03H": { - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "rainfall_accumulation-PT06H": { - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 6 hours. This excludes the rain produced by the model convection scheme.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "rainfall_rate": { - "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "rainfall_rate_from_convection": { - "description": "Instantaneous rate at which rain (as a depth) was produced by the model convection scheme and deposited on the surface. The rainfall rate can be added to this to get the total rainfall rate.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "rainfall_rate_from_convection_max-PT01H": { - "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "rainfall_rate_from_convection_max-PT03H": { - "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "rainfall_rate_from_convection_max-PT06H": { - "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "relative_humidity_at_screen_level": { - "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", - "dimensions": [], - "unit": "1", - "attrs": { - "height": "1.5m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "snow_depth_water_equivalent": { - "description": "Liquid water equivalent (LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "snowfall_rate": { - "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the the model convection scheme.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "snowfall_rate_from_convection": { - "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface. The snowfall rate can be added to this to get the total snowfall rate.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "snowfall_rate_from_convection_max-PT01H": { - "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - - }, - "snowfall_rate_from_convection_max-PT03H": { - "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "snowfall_rate_from_convection_max-PT06H": { - "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "snowfall_rate_from_convection_mean-PT01H": { - "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "snowfall_rate_from_convection_mean-PT03H": { - "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "snowfall_rate_from_convection_mean-PT06H": { - "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level": { - "description": "Instantaneous air temperature at screen level (1.5m).", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_max-PT01H": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_max-PT03H": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_max-PT06H": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_min-PT01H": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_min-PT03H": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_min-PT06H": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "temperature_at_surface": { - "description": "Temperature at the surface interface between the air and the ground.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "surface", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "temperature_of_dew_point_at_screen_level": { - "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "visibility_at_screen_level": { - "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "1.5m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wind_direction_at_10m": { - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", - "dimensions": [], - "unit": "degrees", - "attrs": { - "height": "10.0m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wind_gust_at_10m": { - "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wind_gust_at_10m_max-PT01H": { - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "wind_gust_at_10m_max-PT03H": { - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "wind_gust_at_10m_max-PT06H": { - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 6 hours. This can be considered as the extreme wind speed that might be experienced in this period.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "1H_timesteps": "-", - "3H_timesteps": "-", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wind_speed_at_10m": { - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Near Surface Level", - "msft:region": "westeurope" -} \ No newline at end of file + "id": "met-office-global-deterministic-near-surface", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Near-surface level collection Met Office global deterministic 10km forecast", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-near-surface.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Near-surface level collection Met Office global deterministic 10km forecast thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Global", + "Forecast", + "Cloud", + "Fog", + "Heat Flux", + "Precipitation", + "Pressure", + "Radiation", + "Rainfall", + "Humidity", + "Snow", + "Temperature", + "Wind" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "cube:variables": { + "fog_fraction_at_screen_level": { + "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", + "dimensions": [], + "unit": "1", + "attrs": { + "height": "1.5m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "height_of_orography": { + "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m)", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 only", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "latent_heat_flux_at_surface_mean-PT01H": { + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "latent_heat_flux_at_surface_mean-PT03H": { + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "latent_heat_flux_at_surface_mean-PT06H": { + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "precipitation_accumulation-PT01H": { + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+48", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "precipitation_accumulation-PT03H": { + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+51 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "precipitation_accumulation-PT06H": { + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 6 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "precipitation_rate": { + "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "pressure_at_mean_sea_level": { + "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", + "dimensions": [], + "unit": "Pa", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_longwave_downward_at_surface": { + "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_shortwave_direct_downward_at_surface": { + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_shortwave_total_downward_at_surface": { + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_uv_downward_at_surface": { + "description": "Ultaviolet radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+0 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "rainfall_accumulation-PT01H": { + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "rainfall_accumulation-PT03H": { + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "rainfall_accumulation-PT06H": { + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 6 hours. This excludes the rain produced by the model convection scheme.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "rainfall_rate": { + "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "rainfall_rate_from_convection": { + "description": "Instantaneous rate at which rain (as a depth) was produced by the model convection scheme and deposited on the surface. The rainfall rate can be added to this to get the total rainfall rate.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "rainfall_rate_from_convection_max-PT01H": { + "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "rainfall_rate_from_convection_max-PT03H": { + "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "rainfall_rate_from_convection_max-PT06H": { + "description": "Maximum instantaneous rate at which rain (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "relative_humidity_at_screen_level": { + "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", + "dimensions": [], + "unit": "1", + "attrs": { + "height": "1.5m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "snow_depth_water_equivalent": { + "description": "Liquid water equivalent (LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "snowfall_rate": { + "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the the model convection scheme.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "snowfall_rate_from_convection": { + "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface. The snowfall rate can be added to this to get the total snowfall rate.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "snowfall_rate_from_convection_max-PT01H": { + "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "snowfall_rate_from_convection_max-PT03H": { + "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "snowfall_rate_from_convection_max-PT06H": { + "description": "Maximum instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "snowfall_rate_from_convection_mean-PT01H": { + "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous hour.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "snowfall_rate_from_convection_mean-PT03H": { + "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 3 hours.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "snowfall_rate_from_convection_mean-PT06H": { + "description": "Mean rate at which liquid water equivalent (LWE) snow (as a depth) has been produced by the model convection scheme and deposited on the surface in the previous 6 hours.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level": { + "description": "Instantaneous air temperature at screen level (1.5m).", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_max-PT01H": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_max-PT03H": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_max-PT06H": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_min-PT01H": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_min-PT03H": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_min-PT06H": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "temperature_at_surface": { + "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "temperature_of_dew_point_at_screen_level": { + "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "visibility_at_screen_level": { + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "1.5m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wind_direction_at_10m": { + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", + "dimensions": [], + "unit": "degrees", + "attrs": { + "height": "10.0m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wind_gust_at_10m": { + "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wind_gust_at_10m_max-PT01H": { + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "wind_gust_at_10m_max-PT03H": { + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "wind_gust_at_10m_max-PT06H": { + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 6 hours. This can be considered as the extreme wind speed that might be experienced in this period.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wind_speed_at_10m": { + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office Global Deterministic Near Surface Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json index f77d0ed65..909ec603e 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json @@ -1,186 +1,158 @@ { - "id": "met-office-global-deterministic-pressure-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "cite-as", - "title": "British Crown copyright 2023-2025, the Met Office, is licensed under CC BY-SA" - }, - { - "rel": "describedBy", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Met Office Global Deterministic Pressure Level", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Met Office Global Deterministic Pressure Level Thumbnail" - } + "id": "met-office-global-deterministic-pressure", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } + + { + "rel": "describedBy", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Met Office Global Deterministic Pressure Level", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-pressure.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Met Office Global Deterministic Pressure Level Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] }, - "license": "proprietary", - "keywords": [ - "MetOffice", - "Global", - "Cloud" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "description": "The Met Office Global Deterministic Pressure Level dataset provides a composite of weather parameters generated for specific atmospheric pressure levels.", - "cube:variables": { - "geopotential_height_on_pressure_levels": { - "description": "Geopotential height of the pressure levels. Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels", - "dimensions": [], - "unit": "m", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "height_ASL_on_pressure_levels": { - "description": "Height above sea level of the pressure levels. Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels", - "dimensions": [], - "unit": "m", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "relative_humidity_on_pressure_levels": { - "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) on pressure levels", - "dimensions": [], - "unit": "1", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "temperature_on_pressure_levels": { - "description": "Air temperature on pressure levels", - "dimensions": [], - "unit": "K", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wet_bulb_potential_temperature_on_pressure_levels": { - "description": "Wet bulb potential temperature on pressure levels. Wet bulb potential temperature is defined as the temperature that a parcel of air would have if it were brought down to the standard pressure of 1000hPa following a saturated adiabatic lapse rate.", - "dimensions": [], - "unit": "K", - "attrs": { - "pressure_levels": "92500.0, 85000.0, 70000.0", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wind_direction_on_pressure_levels": { - "description": "Wind direction on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", - "dimensions": [], - "unit": "degrees", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wind_speed_on_pressure_levels": { - "description": "Wind speed on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "wind_vertical_velocity_on_pressure_levels": { - "description": "Speed of the vertical component of the air motion at a pressure levels. Upwards is positive and downwards is negative.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "pressure_levels": "70000.0", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - } + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": ["MetOffice", "Global", "Cloud"], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Pressure Level", - "msft:region": "westeurope" -} \ No newline at end of file + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "description": "The Met Office Global Deterministic Pressure Level dataset provides a composite of weather parameters generated for specific atmospheric pressure levels.", + "cube:variables": { + "geopotential_height_on_pressure_levels": { + "description": "Geopotential height of the pressure levels. Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels", + "dimensions": [], + "unit": "m", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "height_ASL_on_pressure_levels": { + "description": "Height above sea level of the pressure levels. Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels", + "dimensions": [], + "unit": "m", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "relative_humidity_on_pressure_levels": { + "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) on pressure levels", + "dimensions": [], + "unit": "1", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "temperature_on_pressure_levels": { + "description": "Air temperature on pressure levels", + "dimensions": [], + "unit": "K", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wet_bulb_potential_temperature_on_pressure_levels": { + "description": "Wet bulb potential temperature on pressure levels. Wet bulb potential temperature is defined as the temperature that a parcel of air would have if it were brought down to the standard pressure of 1000hPa following a saturated adiabatic lapse rate.", + "dimensions": [], + "unit": "K", + "attrs": { + "pressure_levels": "92500.0, 85000.0, 70000.0", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wind_direction_on_pressure_levels": { + "description": "Wind direction on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", + "dimensions": [], + "unit": "degrees", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wind_speed_on_pressure_levels": { + "description": "Wind speed on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "wind_vertical_velocity_on_pressure_levels": { + "description": "Speed of the vertical component of the air motion at a pressure levels. Upwards is positive and downwards is negative.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "pressure_levels": "70000.0", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office Global Deterministic Pressure Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json index 96af004c4..5b5adee39 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json @@ -1,244 +1,216 @@ { - "id": "met-office-global-deterministic-whole-atmosphere-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "cite-as", - "title": "British Crown copyright 2023-2025, the Met Office, is licensed under CC BY-SA" - }, - { - "rel": "describedBy", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Met Office Global Deterministic Whole Atmosphere Level", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Met Office Global Deterministic Whole Atmosphere Level Thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "MetOffice", - "Global", - "Cloud" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "description": "The Met Office Global Deterministic Whole Atmosphere Level dataset provides a composite of weather parameters generated throughout the atmospheric column.", - "cube:variables": { - "CAPE_mixed_layer_lowest_500m": { - "description": "CAPE (Convective Available Potential Energy) calculated for a mixed layer parcel where a mixed layer parcel is defined as a parcel with thermodynamic properties of the density-weighted mean of the lowest 500 m above ground level.", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "CAPE_most_unstable_below_500hPa": { - "description": "CAPE (Convective Available Potential Energy) calculated for the most unstable parcel where the most unstable parcel is defined as the parcel with the highest fixed level CAPE launched from any level (including screen-level=1.5m) within 500hPa of the surface pressure.", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "CAPE_surface": { - "description": "Value of CAPE (Convective Available Potential Energy) calculated for a surface based parcel where a surface based parcel is defined as a parcel initiated with thermodynamic properties at screen level height (1.5m) i.e. the parcel is launched from screen level.", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "CIN_mixed_layer_lowest_500m": { - "description": "Convective Inhibition calculated as the additional energy required to lift a mixed-layer parcel to its level of free convection. Where a mixed layer parcel is defined as parcel with thermodynamic properties of the density weighted mean of the lowest 500 m above ground level (AGL).", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "CIN_most_unstable_below_500hPa": { - "description": "Convective Inhibition calculated as the additional energy required to lift the most unstable parcel to its level of free convection. Where most unstable parcel is defined as the parcel with the highest fixed-level CAPE launched from any level (including screen-level) within 500 hPa of the surface pressure.", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "CIN_surface": { - "description": "Convective Inhibition calculated as the additional energy required to lift a surface based parcel (i.e. a parcel launched from screen-level (1.5m)) to its level of free convection.", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "cloud_amount_below_1000ft_ASL": { - "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_high_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud in the high-level cloud height range (from the lowest model layer containing the 5574m height level up to but excluding the lowest model layer containing 13608m height level).", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_low_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud in the low-level cloud height range (from the lowest model layer containing the 111m height level up to but excluding the lowest model layer containing 1949m height level).", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_medium_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud in the mid-level cloud height range (from the lowest model layer containing the 1949m height level up to but excluding the lowest model layer containing 5574m height level).", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_total_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud as diagnosed by the model cloud scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_total_convective_cloud": { - "description": "Fraction of horizontal grid square occupied by convective cloud as diagnosed by the model convection scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "pressure_at_tropopause": { - "description": "Air pressure at the tropopause.", - "dimensions": [], - "unit": "Pa", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - }, - "temperature_at_tropopause": { - "description": "Air temperature at the tropopause.", - "dimensions": [], - "unit": "K", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+144", - "6H_timesteps": "T+150 to T+168", - "content_type": "application/netcdf" - } - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office Global Deterministic Whole Atmosphere Level", - "msft:region": "westeurope" -} \ No newline at end of file + "id": "met-office-global-deterministic-whole-atmosphere", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + + { + "rel": "describedBy", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Met Office Global Deterministic Whole Atmosphere Level", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-whole-atmosphere.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Met Office Global Deterministic Whole Atmosphere Level Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": ["MetOffice", "Global", "Cloud"], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "description": "The Met Office Global Deterministic Whole Atmosphere Level dataset provides a composite of weather parameters generated throughout the atmospheric column.", + "cube:variables": { + "CAPE_mixed_layer_lowest_500m": { + "description": "CAPE (Convective Available Potential Energy) calculated for a mixed layer parcel where a mixed layer parcel is defined as a parcel with thermodynamic properties of the density-weighted mean of the lowest 500 m above ground level.", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "CAPE_most_unstable_below_500hPa": { + "description": "CAPE (Convective Available Potential Energy) calculated for the most unstable parcel where the most unstable parcel is defined as the parcel with the highest fixed level CAPE launched from any level (including screen-level=1.5m) within 500hPa of the surface pressure.", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "CAPE_surface": { + "description": "Value of CAPE (Convective Available Potential Energy) calculated for a surface based parcel where a surface based parcel is defined as a parcel initiated with thermodynamic properties at screen level height (1.5m) i.e. the parcel is launched from screen level.", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "CIN_mixed_layer_lowest_500m": { + "description": "Convective Inhibition calculated as the additional energy required to lift a mixed-layer parcel to its level of free convection. Where a mixed layer parcel is defined as parcel with thermodynamic properties of the density weighted mean of the lowest 500 m above ground level (AGL).", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "CIN_most_unstable_below_500hPa": { + "description": "Convective Inhibition calculated as the additional energy required to lift the most unstable parcel to its level of free convection. Where most unstable parcel is defined as the parcel with the highest fixed-level CAPE launched from any level (including screen-level) within 500 hPa of the surface pressure.", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "CIN_surface": { + "description": "Convective Inhibition calculated as the additional energy required to lift a surface based parcel (i.e. a parcel launched from screen-level (1.5m)) to its level of free convection.", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "cloud_amount_below_1000ft_ASL": { + "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_high_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud in the high-level cloud height range (from the lowest model layer containing the 5574m height level up to but excluding the lowest model layer containing 13608m height level).", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_low_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud in the low-level cloud height range (from the lowest model layer containing the 111m height level up to but excluding the lowest model layer containing 1949m height level).", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_medium_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud in the mid-level cloud height range (from the lowest model layer containing the 1949m height level up to but excluding the lowest model layer containing 5574m height level).", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_total_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud as diagnosed by the model cloud scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_total_convective_cloud": { + "description": "Fraction of horizontal grid square occupied by convective cloud as diagnosed by the model convection scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "pressure_at_tropopause": { + "description": "Air pressure at the tropopause.", + "dimensions": [], + "unit": "Pa", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + }, + "temperature_at_tropopause": { + "description": "Air temperature at the tropopause.", + "dimensions": [], + "unit": "K", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office Global Deterministic Whole Atmosphere Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json index e26e32008..692761156 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json @@ -1,130 +1,109 @@ { - "id": "met-office-uk-deterministic-height-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Height levels collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Height levels collection Met Office UKV 2km deterministic forecast thumbnail" - } + "id": "met-office-uk-deterministic-height", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Height levels collection Met Office UKV 2km deterministic forecast", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-height.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Height levels collection Met Office UKV 2km deterministic forecast thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "Cloud", - "Temperature", - "Wind", - "Height" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "cube:variables": { - "cloud_amount_on_height_levels": { - "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "temperature_on_height_levels": { - "description": "Air temperature on height levels.", - "dimensions": [], - "unit": "K", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_direction_on_height_levels": { - "description": "Wind direction on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", - "dimensions": [], - "unit": "degrees", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_speed_on_height_levels": { - "description": "Wind speed on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - } + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "Cloud", + "Temperature", + "Wind", + "Height" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Height Level", - "msft:region": "westeurope" -} \ No newline at end of file + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "cube:variables": { + "cloud_amount_on_height_levels": { + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "temperature_on_height_levels": { + "description": "Air temperature on height levels.", + "dimensions": [], + "unit": "K", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_direction_on_height_levels": { + "description": "Wind direction on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", + "dimensions": [], + "unit": "degrees", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_speed_on_height_levels": { + "description": "Wind speed on height levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office UK Deterministic Height Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json index b835a7d59..063a8e742 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json @@ -1,511 +1,490 @@ { - "id": "met-office-uk-deterministic-near-surface-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Near-surface level collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Near-surface level collection Met Office UKV 2km deterministic forecast Thumbnail" - } - }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } - }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "Precipitation", - "Temperature", - "Wind", - "Pressure", - "Humidity" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "cube:variables": { - "fog_fraction_at_screen_level": { - "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused by water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", - "dimensions": [], - "unit": "1", - "attrs": { - "height": "1.5m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "hail_fall_accumulation-PT01H": { - "description": "Implied depth of the layer of liquid water equivalent (LWE) hail produced by the model precipitation scheme and deposited on the surface in the previous hour.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "hail_fall_rate": { - "description": "Instantaneous rate at which liquid water equivalent (LWE) hail (as a depth) has been produced by the model precipitation scheme and deposited on the surface.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "15M_timesteps": "T+0 to T+54", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "height_of_orography": { - "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m).", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "landsea_mask": { - "description": "Binary indicator of whether a point is considered land (value = 1) or sea (value = 0). This is useful to identify the coastline and characterise points for correct interpretation of forecast data by users.", - "dimensions": [], - "unit": "1", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "precipitation_accumulation-PT01H": { - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "precipitation_accumulation-PT03H": { - "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "precipitation_rate": { - "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "15M_timesteps": "T+0 to T+54", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "pressure_at_mean_sea_level": { - "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", - "dimensions": [], - "unit": "Pa", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "pressure_at_surface": { - "description": "Air pressure at the surface (lower boundary of the atmosphere).", - "dimensions": [], - "unit": "Pa", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_longwave_downward_at_surface": { - "description": "Longwave radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_shortwave_diffuse_downward_at_surface": { - "description": "Diffuse component of shortwave radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_shortwave_direct_downward_at_surface": { - "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_shortwave_total_downward_at_surface": { - "description": "Total shortwave radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "radiation_flux_in_uv_downward_at_surface": { - "description": "Ultraviolet radiation at the surface from above directed at the ground.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "rainfall_accumulation-PT01H": { - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "rainfall_accumulation-PT03H": { - "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "rainfall_rate": { - "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "15M_timesteps": "T+0 to T+54", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "relative_humidity_at_screen_level": { - "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", - "dimensions": [], - "unit": "1", - "attrs": { - "height": "1.5m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "sensible_heat_flux_at_surface": { - "description": "Exchange of heat between the surface and the air by motion of air, also called turbulent heat flux.", - "dimensions": [], - "unit": "W/m2", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "snow_depth_water_equivalent": { - "description": "Liquid water equivalent (LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "snowfall_accumulation-PT01H": { - "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous hour. This excludes the snow produced by the model convection scheme.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "snowfall_accumulation-PT03H": { - "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous 3 hours. This excludes the snow produced by the model convection scheme.", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "snowfall_rate": { - "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the model convection scheme.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "surface", - "15M_timesteps": "T+0 to T+54", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level": { - "description": "Instantaneous air temperature at screen level (1.5m).", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_max-PT01H": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "15M_timesteps": "-", - "1H_timesteps": "T+1 to T+120", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "temperature_at_screen_level_min-PT01H": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "15M_timesteps": "-", - "1H_timesteps": "T+1 to T+120", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "temperature_at_surface": { - "description": "Temperature at the surface interface between the air and the ground.", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "surface", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "temperature_of_dew_point_at_screen_level": { - "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", - "dimensions": [], - "unit": "K", - "attrs": { - "height": "1.5m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "visibility_at_screen_level": { - "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", - "dimensions": [], - "unit": "m", - "attrs": { - "height": "1.5m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_direction_at_10m": { - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", - "dimensions": [], - "unit": "degrees", - "attrs": { - "height": "10.0m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_gust_at_10m": { - "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_gust_at_10m_max-PT01H": { - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "15M_timesteps": "-", - "1H_timesteps": "T+1 to T+54", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - }, - "wind_gust_at_10m_max-PT03H": { - "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "15M_timesteps": "-", - "1H_timesteps": "-", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_speed_at_10m": { - "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "height": "10.0m", - "15M_timesteps": "-", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - } - }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Near Surface Level", - "msft:region": "westeurope" -} \ No newline at end of file + "id": "met-office-uk-deterministic-near-surface", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" + }, + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Near-surface level collection Met Office UKV 2km deterministic forecast", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-near-surface.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Near-surface level collection Met Office UKV 2km deterministic forecast Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] + }, + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "Precipitation", + "Temperature", + "Wind", + "Pressure", + "Humidity" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] + }, + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "cube:variables": { + "fog_fraction_at_screen_level": { + "description": "Here fog means a visibility of 1000 m or lower. The reduction in visibility is caused by water droplets or minute ice crystals forming close to the surface. This quantity represents the fraction of horizontal grid square occupied by fog. An alternative interpretation is that this represents the fractional probability of fog being present at any location in the grid square.", + "dimensions": [], + "unit": "1", + "attrs": { + "height": "1.5m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "hail_fall_accumulation-PT01H": { + "description": "Implied depth of the layer of liquid water equivalent (LWE) hail produced by the model precipitation scheme and deposited on the surface in the previous hour.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "hail_fall_rate": { + "description": "Instantaneous rate at which liquid water equivalent (LWE) hail (as a depth) has been produced by the model precipitation scheme and deposited on the surface.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "height_of_orography": { + "description": "Altitude or (geometric) height above the geoid of the surface (ground). It is worth remembering that orographic height can be negative, particularly in some of the inland sea areas (e.g. Caspian Sea at -27m and Dead Sea at -430m).", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "landsea_mask": { + "description": "Binary indicator of whether a point is considered land (value = 1) or sea (value = 0). This is useful to identify the coastline and characterise points for correct interpretation of forecast data by users.", + "dimensions": [], + "unit": "1", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "precipitation_accumulation-PT01H": { + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous hour. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "precipitation_accumulation-PT03H": { + "description": "Implied depth of the layer of liquid water which has been deposited on the surface in the previous 3 hours. This includes rain, snow and hail, with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "precipitation_rate": { + "description": "Instantaneous rate at which liquid water (as a depth) was being deposited on the surface. This includes rain, snow and hail with the ice phase precipitation being considered as a liquid water equivalent (LWE) value. It includes the contribution from the model convection scheme if this is invoked.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "pressure_at_mean_sea_level": { + "description": "Air pressure at mean sea level which is close to the geoid in sea areas. Air pressure at sea level is the quantity often abbreviated as MSLP or PMSL.", + "dimensions": [], + "unit": "Pa", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "pressure_at_surface": { + "description": "Air pressure at the surface (lower boundary of the atmosphere).", + "dimensions": [], + "unit": "Pa", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_longwave_downward_at_surface": { + "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_shortwave_diffuse_downward_at_surface": { + "description": "Diffuse component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_shortwave_direct_downward_at_surface": { + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_shortwave_total_downward_at_surface": { + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "radiation_flux_in_uv_downward_at_surface": { + "description": "Ultraviolet radiation at the surface from above directed at the ground.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "rainfall_accumulation-PT01H": { + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous hour. This excludes the rain produced by the model convection scheme.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "rainfall_accumulation-PT03H": { + "description": "Implied depth of the rain produced by the model precipitation scheme which has been deposited on the surface in the previous 3 hours. This excludes the rain produced by the model convection scheme.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "rainfall_rate": { + "description": "Instantaneous rate at which rain (as a depth) was being produced by the model precipitation scheme and deposited on the surface. This excludes the rain produced by the model convection scheme.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "relative_humidity_at_screen_level": { + "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) at screen level (1.5m above the surface.)", + "dimensions": [], + "unit": "1", + "attrs": { + "height": "1.5m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "sensible_heat_flux_at_surface": { + "description": "Exchange of heat between the surface and the air by motion of air, also called turbulent heat flux.", + "dimensions": [], + "unit": "W/m2", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "snow_depth_water_equivalent": { + "description": "Liquid water equivalent (LWE) depth of the snow lying on the surface (ground). Typically water is 10 times as dense as snow, so multiplying by 10 gives an approximate depth of the snow, although wet snow can be significantly denser and powder snow much less dense.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "snowfall_accumulation-PT01H": { + "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous hour. This excludes the snow produced by the model convection scheme.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "snowfall_accumulation-PT03H": { + "description": "Implied depth of the (LWE) snow (as a depth) produced by the model precipitation scheme and deposited on the surface in the previous 3 hours. This excludes the snow produced by the model convection scheme.", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "snowfall_rate": { + "description": "Instantaneous rate at which liquid water equivalent (LWE) snow (as a depth) was produced by the model precipitation scheme and deposited on the surface. This excludes the snow produced by the model convection scheme.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "surface", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level": { + "description": "Instantaneous air temperature at screen level (1.5m).", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_max-PT01H": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+120", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "temperature_at_screen_level_min-PT01H": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+120", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "temperature_at_surface": { + "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "surface", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "temperature_of_dew_point_at_screen_level": { + "description": "Instantaneous dew point temperature (temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity) at screen level (1.5m).", + "dimensions": [], + "unit": "K", + "attrs": { + "height": "1.5m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "visibility_at_screen_level": { + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [], + "unit": "m", + "attrs": { + "height": "1.5m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_direction_at_10m": { + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing. Note: This with wind speed at 10m replaces x wind at 10m and y wind at 10m.", + "dimensions": [], + "unit": "degrees", + "attrs": { + "height": "10.0m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_gust_at_10m": { + "description": "Diagnosed instantaneous wind gust at 10m. This can be considered as the extreme rather than steady wind speed that might be experienced at this specific time.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_gust_at_10m_max-PT01H": { + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous hour. This can be considered as the extreme wind speed that might be experienced in this period.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + }, + "wind_gust_at_10m_max-PT03H": { + "description": "Maximum diagnosed instantaneous wind gust at 10m in the previous 3 hours. This can be considered as the extreme wind speed that might be experienced in this period.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_speed_at_10m": { + "description": "Wind at 10m above the surface is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "height": "10.0m", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office UK Deterministic Near Surface Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json index 651918d3b..2885978ff 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json @@ -1,167 +1,146 @@ { - "id": "met-office-UK-deterministic-pressure-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Pressure levels collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Pressure levels collection Met Office UKV 2km deterministic forecast Thumbnail" - } + "id": "met-office-uk-deterministic-pressure", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Pressure levels collection Met Office UKV 2km deterministic forecast", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-pressure.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Pressure levels collection Met Office UKV 2km deterministic forecast Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "Temperature", - "Wind", - "Pressure", - "Humidity" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "cube:variables": { - "geopotential_height_on_pressure_levels": { - "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", - "dimensions": [], - "unit": "m", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "height_ASL_on_pressure_levels": { - "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", - "dimensions": [], - "unit": "m", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "relative_humidity_on_pressure_levels": { - "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", - "dimensions": [], - "unit": "1", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "temperature_on_pressure_levels": { - "description": "Air temperature on pressure levels.", - "dimensions": [], - "unit": "K", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wet_bulb_potential_temperature_on_pressure_levels": { - "description": "Wet bulb potential temperature is defined as the temperature that a parcel of air would have if it were brought down to the standard pressure of 1000hPa following a saturated adiabatic lapse rate. Available on levels: 85000.0, 70000.0, 50000.0 Pa", - "dimensions": [], - "unit": "K", - "attrs": { - "pressure_levels": "85000.0, 70000.0, 50000.0", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_direction_on_pressure_levels": { - "description": "Wind direction on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", - "dimensions": [], - "unit": "degrees", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "wind_speed_on_pressure_levels": { - "description": "Wind speed on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", - "dimensions": [], - "unit": "m/s", - "attrs": { - "pressure_levels": "All", - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - } + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "Temperature", + "Wind", + "Pressure", + "Humidity" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Pressure Level", - "msft:region": "westeurope" -} \ No newline at end of file + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "cube:variables": { + "geopotential_height_on_pressure_levels": { + "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", + "dimensions": [], + "unit": "m", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "height_ASL_on_pressure_levels": { + "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", + "dimensions": [], + "unit": "m", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "relative_humidity_on_pressure_levels": { + "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", + "dimensions": [], + "unit": "1", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "temperature_on_pressure_levels": { + "description": "Air temperature on pressure levels.", + "dimensions": [], + "unit": "K", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wet_bulb_potential_temperature_on_pressure_levels": { + "description": "Wet bulb potential temperature is defined as the temperature that a parcel of air would have if it were brought down to the standard pressure of 1000hPa following a saturated adiabatic lapse rate. Available on levels: 85000.0, 70000.0, 50000.0 Pa", + "dimensions": [], + "unit": "K", + "attrs": { + "pressure_levels": "85000.0, 70000.0, 50000.0", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_direction_on_pressure_levels": { + "description": "Wind direction on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. In meteorological reports the direction of the wind vector is given as the direction from which it is blowing.", + "dimensions": [], + "unit": "degrees", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "wind_speed_on_pressure_levels": { + "description": "Wind speed on pressure levels is defined as a two-dimensional (horizontal) air velocity vector with no vertical component. The speed is the magnitude of velocity.", + "dimensions": [], + "unit": "m/s", + "attrs": { + "pressure_levels": "All", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office UK Deterministic Pressure Level", + "msft:region": "westeurope" +} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json index f09f21567..e1ea5a006 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json @@ -1,201 +1,180 @@ { - "id": "met-office-uk-deterministic-whole-atmosphere-level", - "type": "Collection", - "links": [ - { - "rel": "license", - "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", - "type": "text/html", - "title": "Creative Commons Attribution-ShareAlike 4.0" - }, - { - "rel": "describedby", - "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", - "title": "Met Office Dataset Documentation" - } - ], - "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast thumbnail" - } + "id": "met-office-uk-deterministic-whole-atmosphere", + "type": "Collection", + "links": [ + { + "rel": "license", + "href": "https://creativecommons.org/licenses/by-sa/4.0/deed.en", + "type": "text/html", + "title": "Creative Commons Attribution-ShareAlike 4.0" }, - "extent": { - "spatial": { - "bbox": [ - [ - 15, - 50, - 5, - 62 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] - } + { + "rel": "describedby", + "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", + "title": "Met Office Dataset Documentation" + } + ], + "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-whole-atmosphere.jpg", + "type": "image/png", + "roles": ["thumbnail"], + "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[15, 50, 5, 62]] }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "UK", - "CAPE", - "Cloud", - "Freezing", - "Wet Bulb", - "Lightning" - ], - "providers": [ - { - "url": "https://www.metoffice.gov.uk/", - "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] - }, - { - "url": "https://planetarycomputer.microsoft.com", - "name": "Microsoft", - "roles": [ - "host", - "processor" - ] - } - ], - "cube:variables": { - "CAPE_most_unstable_below_500hPa": { - "description": "CAPE (Convective Available Potential Energy) calculated for the most unstable parcel where the most unstable parcel is defined as the parcel with the highest fixed level CAPE launched from any level (including screen-level=1.5m) within 500hPa of the surface pressure.", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "CAPE_surface": { - "description": "Value of CAPE (Convective Available Potential Energy) calculated for a surface based parcel where a surface based parcel is defined as a parcel initiated with thermodynamic properties at screen level height (1.5m) i.e. the parcel is launched from screen level.", - "dimensions": [], - "unit": "J/kg", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "cloud_amount_below_1000ft_ASL": { - "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_high_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud in the high-level cloud height range (from the lowest model layer containing the 5574m height level up to but excluding the lowest model layer containing 13608m height level).", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_low_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud in the low-level cloud height range (from the lowest model layer containing the 111m height level up to but excluding the lowest model layer containing 1949m height level).", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_medium_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud in the mid-level cloud height range (from the lowest model layer containing the 1949m height level up to but excluding the lowest model layer containing 5574m height level).", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "cloud_amount_of_total_cloud": { - "description": "Fraction of horizontal grid square occupied by cloud as diagnosed by the model cloud scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", - "dimensions": [], - "unit": "1", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "height_AGL_at_cloud_base_where_cloud_cover_2p5_oktas": { - "description": "Height of the base of the lowest cloud above the surface (ground) where there is at least 2.5 oktas (eighths) of cloud cover. This corresponds to scattered cloud.", - "dimensions": [], - "unit": "m", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "height_AGL_at_freezing_level": { - "description": "Height of the 0oC isotherm (freezing level) above the surface (ground).", - "dimensions": [], - "unit": "m", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "height_AGL_at_wet_bulb_freezing_level": { - "description": "Height of the wet bulb freezing level (i.e. where the wet bulb temperature is 0oC) above sea level. This is also referred to as the altitude of the wet bulb freezing level or (geometric) height above the geoid, which is the reference geopotential surface. Wet bulb temperature is defined as the temperature of a parcel of air cooled to saturation (100% relative humidity) by the evaporation of water into it with the latent heat supplied by the parcel.", - "dimensions": [], - "unit": "m", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "T+57 to T+120", - "content_type": "application/netcdf" - } - }, - "lightning_flash_accumulation-PT01H": { - "description": "This represents the total (cloud-to-cloud and cloud-to-ground) lightning flashes per square metre within the previous hour", - "dimensions": [], - "unit": "count/m2", - "attrs": { - "1H_timesteps": "T+0 to T+54", - "3H_timesteps": "-", - "content_type": "application/netcdf" - } - } + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "UK", + "CAPE", + "Cloud", + "Freezing", + "Wet Bulb", + "Lightning" + ], + "providers": [ + { + "url": "https://www.metoffice.gov.uk/", + "name": "Met Office", + "roles": ["producer", "licensor", "processor"] }, - "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "", - "stac_extensions": [ - "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", - "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" - ], - "msft:storage_account": "metofficeeuwest", - "msft:short_description": "Met Office UK Deterministic Whole Atmosphere Level", - "msft:region": "westeurope" -} \ No newline at end of file + { + "url": "https://planetarycomputer.microsoft.com", + "name": "Microsoft", + "roles": ["host", "processor"] + } + ], + "cube:variables": { + "CAPE_most_unstable_below_500hPa": { + "description": "CAPE (Convective Available Potential Energy) calculated for the most unstable parcel where the most unstable parcel is defined as the parcel with the highest fixed level CAPE launched from any level (including screen-level=1.5m) within 500hPa of the surface pressure.", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "CAPE_surface": { + "description": "Value of CAPE (Convective Available Potential Energy) calculated for a surface based parcel where a surface based parcel is defined as a parcel initiated with thermodynamic properties at screen level height (1.5m) i.e. the parcel is launched from screen level.", + "dimensions": [], + "unit": "J/kg", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "cloud_amount_below_1000ft_ASL": { + "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_high_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud in the high-level cloud height range (from the lowest model layer containing the 5574m height level up to but excluding the lowest model layer containing 13608m height level).", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_low_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud in the low-level cloud height range (from the lowest model layer containing the 111m height level up to but excluding the lowest model layer containing 1949m height level).", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_medium_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud in the mid-level cloud height range (from the lowest model layer containing the 1949m height level up to but excluding the lowest model layer containing 5574m height level).", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "cloud_amount_of_total_cloud": { + "description": "Fraction of horizontal grid square occupied by cloud as diagnosed by the model cloud scheme. This is for the whole atmosphere column as seen from the surface or the top of the atmosphere.", + "dimensions": [], + "unit": "1", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "height_AGL_at_cloud_base_where_cloud_cover_2p5_oktas": { + "description": "Height of the base of the lowest cloud above the surface (ground) where there is at least 2.5 oktas (eighths) of cloud cover. This corresponds to scattered cloud.", + "dimensions": [], + "unit": "m", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "height_AGL_at_freezing_level": { + "description": "Height of the 0oC isotherm (freezing level) above the surface (ground).", + "dimensions": [], + "unit": "m", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "height_AGL_at_wet_bulb_freezing_level": { + "description": "Height of the wet bulb freezing level (i.e. where the wet bulb temperature is 0oC) above sea level. This is also referred to as the altitude of the wet bulb freezing level or (geometric) height above the geoid, which is the reference geopotential surface. Wet bulb temperature is defined as the temperature of a parcel of air cooled to saturation (100% relative humidity) by the evaporation of water into it with the latent heat supplied by the parcel.", + "dimensions": [], + "unit": "m", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } + }, + "lightning_flash_accumulation-PT01H": { + "description": "This represents the total (cloud-to-cloud and cloud-to-ground) lightning flashes per square metre within the previous hour", + "dimensions": [], + "unit": "count/m2", + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "-", + "content_type": "application/netcdf" + } + } + }, + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "msft:container": "", + "stac_extensions": [ + "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", + "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" + ], + "msft:storage_account": "metofficeeuwest", + "msft:short_description": "Met Office UK Deterministic Whole Atmosphere Level", + "msft:region": "westeurope" +} From 0efdd5a6c06a1603ae26aa806ad97d238da76c0e Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Mon, 8 Dec 2025 10:45:41 -0700 Subject: [PATCH 11/15] feat: add scripts --- .../met-office/scripts/ingest-collections.sh | 35 ++++++++++++++ .../scripts/process-items-and-monitor.sh | 46 +++++++++++++++++++ datasets/met-office/scripts/upload-all.sh | 46 +++++++++++++++++++ 3 files changed, 127 insertions(+) create mode 100755 datasets/met-office/scripts/ingest-collections.sh create mode 100755 datasets/met-office/scripts/process-items-and-monitor.sh create mode 100755 datasets/met-office/scripts/upload-all.sh diff --git a/datasets/met-office/scripts/ingest-collections.sh b/datasets/met-office/scripts/ingest-collections.sh new file mode 100755 index 000000000..7328ee8cb --- /dev/null +++ b/datasets/met-office/scripts/ingest-collections.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -e + +echo "Ingesting all Met Office collections" +echo "" + +for collection in \ + met-office-global-deterministic-height \ + met-office-global-deterministic-near-surface \ + met-office-global-deterministic-pressure \ + met-office-global-deterministic-whole-atmosphere \ + met-office-uk-deterministic-height \ + met-office-uk-deterministic-near-surface \ + met-office-uk-deterministic-pressure \ + met-office-uk-deterministic-whole-atmosphere +do + echo "========================================" + echo "Ingesting collection: ${collection}" + echo "========================================" + + pctasks dataset ingest-collection \ + -d datasets/met-office/dataset.yaml \ + -a registry pccomponents \ + -c "$collection" \ + --submit + + echo "" + echo "Submitted ingest for ${collection}" + echo "" +done + +echo "========================================" +echo "All collections submitted successfully!" +echo "========================================" diff --git a/datasets/met-office/scripts/process-items-and-monitor.sh b/datasets/met-office/scripts/process-items-and-monitor.sh new file mode 100755 index 000000000..1bea56d7d --- /dev/null +++ b/datasets/met-office/scripts/process-items-and-monitor.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +if [ $# -ne 2 ]; then + echo "Usage: $0 " + echo "Example: $0 my-chunkset met-office-global-deterministic-height" + exit 1 +fi + +CHUNKSET_ID="$1" +COLLECTION_ID="$2" + +echo "Creating chunks for collection: ${COLLECTION_ID}" +echo "Chunkset ID: ${CHUNKSET_ID}" + +# Run create-chunks and capture output to a temp file while still showing it +TEMP_FILE=$(mktemp) +trap "rm -f ${TEMP_FILE}" EXIT + +pctasks dataset process-items "${CHUNKSET_ID}" \ + -d dataset.yaml \ + -c "${COLLECTION_ID}" \ + --submit \ + -a registry pccomponents.azurecr.io | tee "${TEMP_FILE}" + +# Extract the run ID from the captured output +RUN_ID=$(grep -oE '[a-f0-9-]{36}' "${TEMP_FILE}" | tail -1) + +if [ -z "${RUN_ID}" ]; then + echo "Error: Could not extract run ID from output" + exit 1 +fi + +echo "" +echo "Monitoring run: ${RUN_ID}" +echo "" + +# Monitor the run status +if ! pctasks runs status -w "${RUN_ID}"; then + echo "" + echo "Status command failed. Fetching run log..." + echo "" + pctasks runs get run-log "${RUN_ID}" + exit 1 +fi diff --git a/datasets/met-office/scripts/upload-all.sh b/datasets/met-office/scripts/upload-all.sh new file mode 100755 index 000000000..687875409 --- /dev/null +++ b/datasets/met-office/scripts/upload-all.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + echo "Example: $0 my-chunkset" + exit 1 +fi + +CHUNKSET_ID="$1" + +echo "Processing items for all Met Office collections" +echo "Chunkset ID: ${CHUNKSET_ID}" +echo "" + +COLLECTIONS=( + "met-office-global-deterministic-height" + "met-office-global-deterministic-near-surface" + "met-office-global-deterministic-pressure" + "met-office-global-deterministic-whole-atmosphere" + "met-office-uk-deterministic-height" + "met-office-uk-deterministic-near-surface" + "met-office-uk-deterministic-pressure" + "met-office-uk-deterministic-whole-atmosphere" +) + +for COLLECTION_ID in "${COLLECTIONS[@]}"; do + echo "========================================" + echo "Processing collection: ${COLLECTION_ID}" + echo "========================================" + + pctasks dataset process-items "${CHUNKSET_ID}" \ + -d dataset.yaml \ + -c "${COLLECTION_ID}" \ + --submit \ + -a registry pccomponents.azurecr.io + + echo "" + echo "Submitted workflow for ${COLLECTION_ID}" + echo "" +done + +echo "========================================" +echo "All collections submitted successfully!" +echo "========================================" From 754a8813774f22f84aec18fb875ab470b32f10b8 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Mon, 8 Dec 2025 10:48:30 -0700 Subject: [PATCH 12/15] docs: add readme --- datasets/met-office/README.md | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 datasets/met-office/README.md diff --git a/datasets/met-office/README.md b/datasets/met-office/README.md new file mode 100644 index 000000000..a8e3e7ff6 --- /dev/null +++ b/datasets/met-office/README.md @@ -0,0 +1,43 @@ +# Met Office Dataset + +This directory contains the configuration and scripts for ingesting Met Office weather forecast data into the Planetary Computer. + +## Collections + +This dataset includes eight collections: + +### Global Collections (10km resolution) + +- **met-office-global-deterministic-height** - Weather parameters at specific atmospheric height levels +- **met-office-global-deterministic-near-surface** - Near-surface weather parameters (precipitation, temperature, wind, etc.) +- **met-office-global-deterministic-pressure** - Weather parameters at specific atmospheric pressure levels +- **met-office-global-deterministic-whole-atmosphere** - Whole atmosphere parameters (CAPE, cloud amounts, etc.) + +### UK Collections (2km resolution) + +- **met-office-uk-deterministic-height** - Weather parameters at specific atmospheric height levels +- **met-office-uk-deterministic-near-surface** - Near-surface weather parameters +- **met-office-uk-deterministic-pressure** - Weather parameters at specific atmospheric pressure levels +- **met-office-uk-deterministic-whole-atmosphere** - Whole atmosphere parameters + +## Scripts + +The `scripts/` directory contains shell scripts for managing the dataset workflow: + +- **`ingest-collections.sh`** - Ingest all eight Met Office collections into the STAC catalog: + + ```bash + ./scripts/ingest-collections.sh + ``` + +- **`upload-all.sh`** - Process items for all collections using a specified chunkset id: + + ```bash + ./scripts/upload-all.sh + ``` + +- **`process-items-and-monitor.sh`** - Process items for a specific collection and monitor the workflow progress: + + ```bash + ./scripts/process-items-and-monitor.sh + ``` From bea336681be9ec32222a212bfbea6e4031cc7a50 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Mon, 8 Dec 2025 10:49:29 -0700 Subject: [PATCH 13/15] fix: remove claude --- CLAUDE.md | 336 ------------------------------------------------------ 1 file changed, 336 deletions(-) delete mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 02768110b..000000000 --- a/CLAUDE.md +++ /dev/null @@ -1,336 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## What is PCTasks? - -PCTasks is a scalable workflow orchestration system built on Azure and Kubernetes. It's the reactive ETL system that powers the Microsoft Planetary Computer STAC catalog, managing dataset ingestion, processing, and updates. - -**Core Concept**: PCTasks takes dataset configurations (`dataset.yaml`), generates workflows, and executes them as containerized tasks on Kubernetes (via Argo Workflows) or Azure Batch. - -## Architecture Overview - -### Multi-Package Monorepo Structure - -This is a Python monorepo with 12 distinct packages under `pctasks/`: - -``` -pctasks/ -├── core/ # Base models, storage, templating, shared utilities -├── cli/ # Top-level CLI entry point -├── client/ # Client library for API interaction, profile management -├── server/ # FastAPI server exposing REST API -├── task/ # Task execution runtime (runs inside containers) -├── run/ # Workflow/task runners (Argo, Batch, local) -├── dataset/ # Dataset model and processing logic -├── ingest/ # Ingest workflow generation -├── ingest_task/ # Ingest task implementations (PgSTAC database operations) -├── router/ # Message routing between queues -├── notify/ # Notification handling -└── dev/ # Development utilities (setup, testing) -``` - -Each package has its own `pyproject.toml` and can be installed independently, but they depend on each other (e.g., most depend on `pctasks.core`). - -### Request Flow - -1. **Client** → API Server (FastAPI) -2. **Server** → CosmosDB (workflow definitions) + Azure Queues (submission) -3. **Router** (Azure Function) → Reads queue, creates Argo Workflow -4. **Argo** → Schedules tasks as Kubernetes Pods -5. **Task Container** → Executes `pctasks.task` runtime -6. **Task** → Reads from Blob Storage, processes data, writes to PgSTAC -7. **Notifications** → Item updates sent to queue for downstream consumers - -### Key Subsystems - -- **Templating**: Jinja2-like syntax (`${{ ... }}`) for dynamic values in workflow/dataset configs - - `${{ secrets.* }}`: KeyVault secrets - - `${{ args.* }}`: Workflow arguments - - `${{ local.path(...) }}`: Local file references - - `${{ pc.get_token(...) }}`: SAS token generation - -- **Storage Abstraction**: `StorageFactory` provides unified access to Azure Blob Storage with automatic SAS token handling - -- **Chunking**: Large datasets split into "chunk files" (lists of asset URIs) for parallel processing - -- **Code Injection**: Custom Python code/requirements uploaded to Blob Storage, downloaded at task runtime - -## Development Commands - -### Initial Setup - -```bash -# One-time setup: creates dev environment with Azurite, CosmosDB emulator, Kubernetes (kind) -scripts/setup - -# Drop into development container -scripts/console -``` - -Inside the dev container, the `pctasks` CLI is available with access to local services. - -### Testing - -```bash -# Run all tests (lint + unit tests) -scripts/test - -# Test specific package -scripts/test --subpackage core - -# Only run tests, skip linting -scripts/test --test-only - -# Only lint -scripts/test --lint-only - -# Run integration tests (requires cluster running) -scripts/test-integration -``` - -**Test Location**: Each package has a `tests/` directory (e.g., `pctasks/core/tests/`). - -**Linters Used**: mypy, black, isort, flake8 - -### Code Formatting - -```bash -# Auto-format all code -scripts/format -``` - -Runs black and isort on all packages. - -### Local Development Workflow - -```bash -# Start local servers (API, Argo, etc.) -scripts/server - -# Or start in background -scripts/server --detached - -# Install packages in editable mode after code changes -scripts/install -``` - -### Building and Publishing Images - -```bash -# Build all Docker images locally -scripts/build - -# Publish images to ACR (requires authentication) -scripts/publish --acr --tag -``` - -**Core Images**: -- `pctasks-task-base`: Base image with all pctasks packages -- `pctasks-ingest`: Ingest-specific image -- `pctasks-server`: API server image -- `pctasks-run`: Workflow runner image - -**Dataset Images**: Built manually per dataset (e.g., `pctasks-aster`): -```bash -az acr build -r --subscription \ - -t pctasks-aster:latest \ - -f datasets/aster/Dockerfile . -``` - -### Profile Management - -PCTasks uses profiles to target different environments (dev, staging, production): - -```bash -# Create new profile -pctasks profile create staging - -# Set default profile -pctasks profile set staging - -# Use specific profile -pctasks -p staging - -# Or via environment variable -export PCTASKS_PROFILE=staging -``` - -Profiles stored in `~/.pctasks/.yaml`. - -## Working with Datasets - -### Dataset Configuration (`dataset.yaml`) - -Each dataset in `datasets/` has a `dataset.yaml` that defines: -- **image**: Docker image to use for tasks -- **code**: Custom Python modules/requirements to inject -- **collections**: STAC Collections with asset/chunk storage locations -- **environment**: Environment variables (e.g., Azure credentials) - -### Common Dataset Commands - -```bash -# Ingest collection metadata to database -pctasks dataset ingest-collection -d datasets/aster/dataset.yaml --submit - -# Process items (ETL workflow) -pctasks dataset process-items -d datasets/aster/dataset.yaml --limit 10 --submit - -# Generate chunks (asset inventory) -pctasks dataset create-chunks -d datasets/aster/dataset.yaml --submit - -# Target staging environment -pctasks dataset process-items -d dataset.yaml --target staging --submit -``` - -### Ingest Commands (Direct Collection/NDJSON Ingest) - -```bash -# Ingest collection -pctasks ingest collection ./collection/ --target staging --submit - -# Ingest NDJSON items -pctasks ingest ndjsons blob://account/container/path/ \ - --target staging \ - --num-workers 8 \ - --submit -``` - -### Workflow Management - -```bash -# Submit workflow from YAML file -pctasks workflow upsert-and-submit workflow.yaml - -# List workflows -pctasks workflow list - -# Get workflow details -pctasks workflow get - -# Submit existing workflow with arguments -pctasks workflow submit --arg since 2024-01-01 -``` - -### Creating a New Dataset - -See `docs/getting_started/creating_a_dataset.md` for full guide. Quick checklist: - -1. Create `datasets//dataset.yaml` -2. Create collection template in `datasets//collection/` -3. Implement `Collection` subclass (or use `PremadeItemCollection`) -4. Add `requirements.txt` if using custom packages -5. Test with `--limit` flag first -6. Optionally build custom Docker image if dependencies are heavy - -## Important Configuration Files - -- `scripts/env`: Defines `PACKAGE_DIRS` array and helper functions used by scripts -- `docker-compose.console.yml`: Dev container configuration -- `dev-secrets.yaml`: Local secrets (created from `dev-secrets.template.yaml`) -- `deployment/terraform/`: Infrastructure as Code for Azure resources -- `.github/workflows/cicd.yml`: CI/CD pipeline - -## Common Patterns - -### Using Custom Code with `pctasks-task-base` - -Instead of building a custom Docker image, you can inject code at runtime: - -```yaml -# dataset.yaml -image: ${{ args.registry }}/pctasks-task-base:latest -code: - src: ${{ local.path(./my_module.py) }} - requirements: ${{ local.path(./requirements.txt) }} -``` - -Code is uploaded to Blob Storage, downloaded, and installed before task execution. - -### Collection Implementation - -```python -from pctasks.dataset.collection import Collection - -class MyCollection(Collection): - @classmethod - def create_item(cls, asset_uri: str, storage_factory: StorageFactory): - # Return a pystac.Item or list of Items - return [item] -``` - -### Accessing Secrets in Workflows - -```yaml -environment: - DB_CONNECTION_STRING: ${{ secrets.pgstac-connection-string }} -``` - -Secrets retrieved from Azure KeyVault at runtime. - -## Running a Single Test - -```bash -# Enter dev container -scripts/console - -# Run specific test file -pytest pctasks/core/tests/test_storage.py - -# Run specific test function -pytest pctasks/core/tests/test_storage.py::test_blob_storage - -# Run with verbose output -pytest -vv pctasks/core/tests/test_storage.py -``` - -## Deployment - -Deployment is handled via Terraform and Helm: - -```bash -# Enter deployment container -scripts/console --deploy - -# Deploy to dev stack -bin/deploy -t terraform/dev - -# Staging/production deployed via CI/CD only -``` - -**Environments**: -- `dev`: Local kind cluster, personal development -- `staging`: Deployed to "Planetary Computer Test" subscription via CI/CD -- `production`: Deployed to production subscription via CI/CD - -## Troubleshooting - -### Local Development - -- **Azurite not responding**: Run `scripts/setup --azurite` -- **CosmosDB emulator issues**: Run `scripts/setup --reset-cosmos` -- **Clear test data**: Run `scripts/setup --clear-records` -- **Services not running**: Check `docker compose ps` or restart with `scripts/server` - -### Task Execution - -- **Import errors**: Ensure code is in `code.src` or requirements are in `code.requirements` -- **Storage access denied**: Check SAS tokens in `asset_storage.token` or service principal credentials -- **Task timeout**: Increase timeout in task definition or batch pool settings - -### Workflow Issues - -- **Workflow won't submit**: Validate YAML syntax and required fields (workflow_id, dataset, jobs) -- **Template errors**: Check `${{ }}` syntax and available template variables -- **Missing secrets**: Ensure secrets exist in KeyVault and are referenced correctly - -## Documentation - -Full documentation: https://planetary-computer-tasks.readthedocs.io - -Key docs to reference: -- `docs/getting_started/creating_a_dataset.md`: Dataset creation guide -- `docs/user_guide/templating.md`: Template syntax reference -- `docs/user_guide/chunking.md`: Chunking system explanation -- `docs/development/deploying.md`: Deployment guide From 88ba438b8f6da1329ecbec7007fad0f7d90afcfd Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 9 Dec 2025 05:28:14 -0700 Subject: [PATCH 14/15] fix: re-add container and storage account --- .../met-office-global-deterministic-height/template.json | 4 ++-- .../template.json | 4 ++-- .../met-office-global-deterministic-pressure/template.json | 4 ++-- .../template.json | 4 ++-- .../met-office-uk-deterministic-height/template.json | 4 ++-- .../met-office-uk-deterministic-near-surface/template.json | 4 ++-- .../met-office-uk-deterministic-pressure/template.json | 4 ++-- .../template.json | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/datasets/met-office/collection/met-office-global-deterministic-height/template.json b/datasets/met-office/collection/met-office-global-deterministic-height/template.json index bc19fbe59..6c98f99b1 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-height/template.json @@ -62,12 +62,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Height Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json index 9904e49f7..599dbde64 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json @@ -640,12 +640,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Near Surface Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json index 909ec603e..0009b0646 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json @@ -147,12 +147,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Pressure Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json index 5b5adee39..c6bf12343 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json @@ -205,12 +205,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office Global Deterministic Whole Atmosphere Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json index 692761156..cb6a5df92 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json @@ -98,12 +98,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Height Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json index 063a8e742..875c96789 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json @@ -479,12 +479,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Near Surface Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json index 2885978ff..70a80cc8f 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json @@ -135,12 +135,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Pressure Level", "msft:region": "westeurope" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json index e1ea5a006..99a661c48 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json @@ -169,12 +169,12 @@ }, "stac_version": "1.0.0", "msft:group_id": "metoffice", - "msft:container": "", + "msft:container": "staging", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" ], - "msft:storage_account": "metofficeeuwest", + "msft:storage_account": "ukmoeuwest", "msft:short_description": "Met Office UK Deterministic Whole Atmosphere Level", "msft:region": "westeurope" } From b179beee4ce92481a066e704baaa5b570b165062 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Fri, 12 Dec 2025 05:27:15 -0700 Subject: [PATCH 15/15] fix: use .updated files --- datasets/met-office/dataset.yaml | 56 ++++++++++++++++------------ datasets/met-office/met_office.py | 21 +++++++++-- datasets/met-office/requirements.txt | 2 +- 3 files changed, 51 insertions(+), 28 deletions(-) diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index 2977dc183..b84858ffc 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -20,10 +20,11 @@ collections: - uri: blob://ukmoeuwest/staging/global/height chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-global-deterministic-near-surface @@ -33,10 +34,11 @@ collections: - uri: blob://ukmoeuwest/staging/global/near-surface chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-global-deterministic-pressure @@ -46,10 +48,11 @@ collections: - uri: blob://ukmoeuwest/staging/global/pressure chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-global-deterministic-whole-atmosphere @@ -59,10 +62,11 @@ collections: - uri: blob://ukmoeuwest/staging/global/whole-atmosphere chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-height @@ -72,10 +76,11 @@ collections: - uri: blob://ukmoeuwest/staging/uk/height chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-near-surface @@ -85,10 +90,11 @@ collections: - uri: blob://ukmoeuwest/staging/uk/near-surface chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-pressure @@ -98,10 +104,11 @@ collections: - uri: blob://ukmoeuwest/staging/uk/pressure chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ - id: met-office-uk-deterministic-whole-atmosphere @@ -111,9 +118,10 @@ collections: - uri: blob://ukmoeuwest/staging/uk/whole-atmosphere chunks: options: - min_depth: 0 - max_depth: 0 + min_depth: 1 + max_depth: 1 + extensions: + - .updated chunk_length: 20000 - list_folders: true chunk_storage: uri: blob://ukmoeuwest/staging/staging-chunks/ diff --git a/datasets/met-office/met_office.py b/datasets/met-office/met_office.py index a8aadeea9..0a4cbec3e 100644 --- a/datasets/met-office/met_office.py +++ b/datasets/met-office/met_office.py @@ -24,11 +24,26 @@ class MetOfficeCollection(Collection): def create_item( cls, asset_uri: str, storage_factory: StorageFactory ) -> Union[list[Item], WaitTaskResult]: - logger.info(f"Creating items for {asset_uri}") - storage = storage_factory.get_storage(asset_uri) - hrefs = list(storage.get_url(path) for path in storage.list_files()) + logger.info(f"Found sentinel file: {asset_uri}") + parts = asset_uri.split("/") + storage_uri = "/".join(parts[0:-1]) + item_id = parts[-1].split(".")[0] + storage = storage_factory.get_storage(storage_uri) + logger.info(f"Listing {storage_uri} for item {item_id}") + hrefs = list( + storage.get_url(path) + for path in storage.list_files(name_starts_with=item_id, extensions=[".nc"]) + ) logger.info(f"Found {len(hrefs)} hrefs") + # Should only create one items = stac.create_items(hrefs, model=cls.model, theme=cls.theme) + if len(items) > 1: + logger.warning( + f"Expected to only create 1 item, but created {len(items)} instead. Ids: {', '.join(item.id for item in items)}" + ) + logger.info(f"Deleting sentinel file: {asset_uri}") + blob_client, path = storage_factory.get_storage_for_file(asset_uri) + blob_client.delete_file(path) return items diff --git a/datasets/met-office/requirements.txt b/datasets/met-office/requirements.txt index 4fdd82a6f..e923ea9a2 100644 --- a/datasets/met-office/requirements.txt +++ b/datasets/met-office/requirements.txt @@ -1 +1 @@ -stactools-met-office-deterministic==0.3.0 +stactools-met-office-deterministic==0.3.2