From a96726d104dfc87d4e5fe58bb2cc757c09c66dbb Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 4 Nov 2025 15:51:08 +0000 Subject: [PATCH 01/42] add global height level dataset --- .../template.json | 99 +++++++++++++++++++ datasets/met-office/dataset.yaml | 85 ++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 datasets/met-office/collection/met-office-global-deterministic-height-level/template.json create mode 100644 datasets/met-office/dataset.yaml 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 new file mode 100644 index 000000000..c0739fbae --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-height-level/template.json @@ -0,0 +1,99 @@ +{ + "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 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": { + "netcdf": { + "type": "application/x-netcdf", + "roles": [ + "data" + ], + "title": "Source data containing all heights" + } + }, + "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 Height Level", + "msft:region": "westeurope" +} \ No newline at end of file diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml new file mode 100644 index 000000000..5d4beb29b --- /dev/null +++ b/datasets/met-office/dataset.yaml @@ -0,0 +1,85 @@ +id: met-office +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 }} + +collections: + - id: met-office-global-deterministic-height-level + template: ${{ local.path(./collection/met-office-global-deterministic-height-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/global-deterministic-height-level/ + chunks: + options: + extensions: [.netcdf] + + - id: met-office-global-deterministic-pressure-level + template: ${{ local.path(./collection/met-office-global-deterministic-pressure-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/global-deterministic-pressure-level/ + chunks: + options: + extensions: [.netcdf] + + - id: met-office-global-deterministic-near-surface-level + template: ${{ local.path(./collection/met-office-global-deterministic-near-surface-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/global-deterministic-near-surface-level/ + chunks: + options: + extensions: [.netcdf] + + - id: met-office-global-deterministic-whole-atmosphere-level + template: ${{ local.path(./collection/met-office-global-deterministic-whole-atmosphere-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/global-deterministic-whole-atmosphere-level/ + chunks: + options: + extensions: [.netcdf] + + - id: met-office-uk-deterministic-height-level + template: ${{ local.path(./collection/met-office-uk-deterministic-height-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/uk-deterministic-height-level/ + chunks: + options: + extensions: [.netcdf] + + - id: met-office-uk-deterministic-pressure-level + template: ${{ local.path(./collection/met-office-uk-deterministic-pressure-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/uk-deterministic-pressure-level/ + chunks: + options: + extensions: [.netcdf] + + - id: met-office-uk-deterministic-near-surface-level + template: ${{ local.path(./collection/met-office-uk-deterministic-near-surface-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/uk-deterministic-near-surface-level/ + chunks: + options: + extensions: [.netcdf] + + - id: met-office-uk-deterministic-whole-atmosphere-level + template: ${{ local.path(./collection/met-office-uk-deterministic-whole-atmosphere-level/) }} + asset_storage: + # This depends how you want to store the netcdf locally + - uri: blob://metofficeeuwest/uk-deterministic-whole-atmosphere-level/ + chunks: + options: + extensions: [.netcdf] \ No newline at end of file From 5588033a547892096644b47a834503f818e4f60a Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 18 Nov 2025 17:05:15 +0000 Subject: [PATCH 02/42] add remaining dataset documentation for global and uk collections --- .../template.json | 10 +- .../template.json | 421 ++++++++++++++++++ .../template.json | 141 ++++++ .../template.json | 190 ++++++++ .../template.json | 120 +++++ .../template.json | 330 ++++++++++++++ .../template.json | 127 ++++++ .../template.json | 169 +++++++ datasets/met-office/dataset.yaml | 85 ---- 9 files changed, 1503 insertions(+), 90 deletions(-) create mode 100644 datasets/met-office/collection/met-office-global-deterministic-near-surface-level/template.json create 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-whole-atmosphere-level/template.json create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json delete mode 100644 datasets/met-office/dataset.yaml 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 index c0739fbae..296604fd7 100644 --- 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 @@ -26,7 +26,7 @@ "roles": [ "thumbnail" ], - "title": "Met Office Height Level thumbnail" + "title": "Met Office Global Deterministic Height Level Thumbnail" } }, "extent": { @@ -76,12 +76,12 @@ ], "description": "The Met Office Global Deterministic Height Level dataset provides a composite of weather parameters generated for specific atmospheric height levels.", "item_assets": { - "netcdf": { - "type": "application/x-netcdf", + "cloud_amount_on_height_levels": { + "type": "application/netcdf", + "title": "Cloud amount on height levels", "roles": [ "data" - ], - "title": "Source data containing all heights" + ] } }, "stac_version": "1.0.0", 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 new file mode 100644 index 000000000..43fedb913 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface-level/template.json @@ -0,0 +1,421 @@ +{ + "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": "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 Near Surface Level", + "assets": { + "thumbnail": { + "href": "", + "type": "image/png", + "roles": [ + "thumbnail" + ], + "title": "Met Office Global Deterministic Near Surface 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 Near Surface Level dataset provides a composite of weather parameters generated for near surface levels.", + "item_assets": { + "fog_fraction_at_screen_level": { + "type": "application/netcdf", + "title": "Fog fraction at screen level", + "roles": [ + "data" + ] + }, + "latent_heat_flux_at_surface_mean-PT01H": { + "type": "application/netcdf", + "title": "Hourly latent heat flux at surface mean", + "roles": [ + "data" + ] + }, + "latent_heat_flux_at_surface_mean-PT03H": { + "type": "application/netcdf", + "title": "Three hourly latent heat flux at surface mean", + "roles": [ + "data" + ] + }, + "latent_heat_flux_at_surface_mean-PT06H": { + "type": "application/netcdf", + "title": "Six hourly latent heat flux at surface mean", + "roles": [ + "data" + ] + }, + "precipitation_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly precipitation accumulation", + "roles": [ + "data" + ] + }, + "precipitation_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly precipitation accumulation", + "roles": [ + "data" + ] + }, + "precipitation_accumulation-PT06H": { + "type": "application/netcdf", + "title": "Six hourly precipitation accumulation", + "roles": [ + "data" + ] + }, + "precipitation_rate": { + "type": "application/netcdf", + "title": "Precipitation rate", + "roles": [ + "data" + ] + }, + "pressure_at_mean_sea_level": { + "type": "application/netcdf", + "title": "Pressure at mean sea level", + "roles": [ + "data" + ] + }, + "radiation_flux_in_longwave_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in longwave downward at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_shortwave_direct_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave direct downward at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_shortwave_total_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave total downward at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_uv_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in uv downward at surface", + "roles": [ + "data" + ] + }, + "rainfall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly rainfall accumulation", + "roles": [ + "data" + ] + }, + "rainfall_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly rainfall accumulation", + "roles": [ + "data" + ] + }, + "rainfall_accumulation-PT06H": { + "type": "application/netcdf", + "title": "Six hourly rainfall accumulation", + "roles": [ + "data" + ] + }, + "rainfall_rate": { + "type": "application/netcdf", + "title": "Rainfall rate", + "roles": [ + "data" + ] + }, + "rainfall_rate_from_convection": { + "type": "application/netcdf", + "title": "Rainfall rate from convection", + "roles": [ + "data" + ] + }, + "rainfall_rate_from_convection_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly rainfall rate from convection max", + "roles": [ + "data" + ] + }, + "rainfall_rate_from_convection_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly rainfall rate from convection max", + "roles": [ + "data" + ] + }, + "rainfall_rate_from_convection_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly rainfall rate from convection max", + "roles": [ + "data" + ] + }, + "relative_humidity_at_screen_level": { + "type": "application/netcdf", + "title": "Relative humidity at screen level", + "roles": [ + "data" + ] + }, + "snow_depth_water_equivalent": { + "type": "application/netcdf", + "title": "Snow depth water equivalent", + "roles": [ + "data" + ] + }, + "snowfall_rate": { + "type": "application/netcdf", + "title": "Snowfall rate", + "roles": [ + "data" + ] + }, + "snowfall_rate_from_convection": { + "type": "application/netcdf", + "title": "Snowfall rate from convection", + "roles": [ + "data" + ] + }, + "snowfall_rate_from_convection_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly snowfall rate from convection max", + "roles": [ + "data" + ] + }, + "snowfall_rate_from_convection_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly snowfall rate from convection max", + "roles": [ + "data" + ] + }, + "snowfall_rate_from_convection_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly snowfall rate from convection max", + "roles": [ + "data" + ] + }, + "snowfall_rate_from_convection_mean-PT01H": { + "type": "application/netcdf", + "title": "Hourly snowfall rate from convection mean", + "roles": [ + "data" + ] + }, + "snowfall_rate_from_convection_mean-PT03H": { + "type": "application/netcdf", + "title": "Three hourly snowfall rate from convection mean", + "roles": [ + "data" + ] + }, + "snowfall_rate_from_convection_mean-PT06H": { + "type": "application/netcdf", + "title": "Six hourly snowfall rate from convection mean", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level": { + "type": "application/netcdf", + "title": "Temperature at screen level", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level max", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly temperature at screen level max", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly temperature at screen level max", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_min-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level min", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_min-PT03H": { + "type": "application/netcdf", + "title": "Three hourly temperature at screen level min", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_min-PT06H": { + "type": "application/netcdf", + "title": "Six hourly temperature at screen level min", + "roles": [ + "data" + ] + }, + "temperature_at_surface": { + "type": "application/netcdf", + "title": "Temperature at surface", + "roles": [ + "data" + ] + }, + "temperature_of_dew_point_at_screen_level": { + "type": "application/netcdf", + "title": "Dew point temperature at screen level", + "roles": [ + "data" + ] + }, + "visibility_at_screen_level": { + "type": "application/netcdf", + "title": "Visibility at screen level", + "roles": [ + "data" + ] + }, + "wind_direction_at_10m": { + "type": "application/netcdf", + "title": "Wind direction at 10m", + "roles": [ + "data" + ] + }, + "wind_gust_at_10m": { + "type": "application/netcdf", + "title": "Wind gust at 10m", + "roles": [ + "data" + ] + }, + "wind_gust_at_10m_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly wind gust at 10m max", + "roles": [ + "data" + ] + }, + "wind_gust_at_10m_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly wind gust at 10m max", + "roles": [ + "data" + ] + }, + "wind_gust_at_10m_max-PT06H": { + "type": "application/netcdf", + "title": "Six hourly wind gust at 10m max", + "roles": [ + "data" + ] + }, + "wind_speed_at_10m": { + "type": "application/netcdf", + "title": "Wind speed at 10m", + "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-pressure-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json new file mode 100644 index 000000000..fc38fa3c2 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json @@ -0,0 +1,141 @@ +{ + "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-whole-atmosphere-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json new file mode 100644 index 000000000..88c6e4950 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json @@ -0,0 +1,190 @@ +{ + "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-uk-deterministic-height-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json new file mode 100644 index 000000000..c926426fd --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json @@ -0,0 +1,120 @@ +{ + "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": "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 UK Deterministic Height Level", + "assets": { + "thumbnail": { + "href": "", + "type": "image/png", + "roles": [ + "thumbnail" + ], + "title": "Met Office UK Deterministic Height Level Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [ + [ + 15, + 50, + 5, + 62 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2 years ago", + null + ] + ] + } + }, + "license": "proprietary", + "keywords": [ + "MetOffice", + "UK", + "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 UK 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" + ] + }, + "temperature_on_height_levels": { + "type": "application/netcdf", + "title": "Temperature on height levels", + "roles": [ + "data" + ] + }, + "wind_direction_on_height_levels": { + "type": "application/netcdf", + "title": "Wind direction on height levels", + "roles": [ + "data" + ] + }, + "wind_speed_on_height_levels": { + "type": "application/netcdf", + "title": "Wind speed on height 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 UK Deterministic Height Level", + "msft:region": "westeurope" +} \ No newline at end of file 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 new file mode 100644 index 000000000..2ad2f0386 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json @@ -0,0 +1,330 @@ +{ + "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": "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 UK Deterministic Near Surface Level", + "assets": { + "thumbnail": { + "href": "", + "type": "image/png", + "roles": [ + "thumbnail" + ], + "title": "Met Office UK Deterministic Near Surface Level Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [ + [ + 15, + 50, + 5, + 62 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2 years ago", + null + ] + ] + } + }, + "license": "proprietary", + "keywords": [ + "MetOffice", + "UK", + "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 UK Deterministic Near Surface Level dataset provides a composite of weather parameters generated for near surface levels.", + "item_assets": { + "fog_fraction_at_screen_level": { + "type": "application/netcdf", + "title": "Fog fraction at screen level", + "roles": [ + "data" + ] + }, + "hail_fall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly hail fall accumulation", + "roles": [ + "data" + ] + }, + "hail_fall_rate": { + "type": "application/netcdf", + "title": "Hail fall rate", + "roles": [ + "data" + ] + }, + "landsea_mask": { + "type": "application/netcdf", + "title": "Land binary mask", + "roles": [ + "data" + ] + }, + "precipitation_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly precipitation accumulation", + "roles": [ + "data" + ] + }, + "precipitation_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly precipitation accumulation", + "roles": [ + "data" + ] + }, + "precipitation_rate": { + "type": "application/netcdf", + "title": "Precipitation rate", + "roles": [ + "data" + ] + }, + "pressure_at_mean_sea_level": { + "type": "application/netcdf", + "title": "Pressure at mean sea level", + "roles": [ + "data" + ] + }, + "pressure_at_surface": { + "type": "application/netcdf", + "title": "Pressure at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_longwave_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in longwave downward at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_shortwave_diffuse_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave diffuse downward at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_shortwave_direct_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave direct downward at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_shortwave_total_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in shortwave total downward at surface", + "roles": [ + "data" + ] + }, + "radiation_flux_in_uv_downward_at_surface": { + "type": "application/netcdf", + "title": "Radiation flux in uv downward at surface", + "roles": [ + "data" + ] + }, + "rainfall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly rainfall accumulation", + "roles": [ + "data" + ] + }, + "rainfall_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly rainfall accumulation", + "roles": [ + "data" + ] + }, + "rainfall_rate": { + "type": "application/netcdf", + "title": "Rainfall rate", + "roles": [ + "data" + ] + }, + "relative_humidity_at_screen_level": { + "type": "application/netcdf", + "title": "Relative humidity at screen level", + "roles": [ + "data" + ] + }, + "sensible_heat_flux_at_surface": { + "type": "application/netcdf", + "title": "Sensible heat flux at surface", + "roles": [ + "data" + ] + }, + "snow_depth_water_equivalent": { + "type": "application/netcdf", + "title": "Snow depth water equivalent", + "roles": [ + "data" + ] + }, + "snowfall_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly snowfall accumulation", + "roles": [ + "data" + ] + }, + "snowfall_accumulation-PT03H": { + "type": "application/netcdf", + "title": "Three hourly snowfall accumulation", + "roles": [ + "data" + ] + }, + "snowfall_rate": { + "type": "application/netcdf", + "title": "Snowfall rate", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level": { + "type": "application/netcdf", + "title": "Temperature at screen level", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level max", + "roles": [ + "data" + ] + }, + "temperature_at_screen_level_min-PT01H": { + "type": "application/netcdf", + "title": "Hourly temperature at screen level min", + "roles": [ + "data" + ] + }, + "temperature_at_surface": { + "type": "application/netcdf", + "title": "Temperature at surface", + "roles": [ + "data" + ] + }, + "temperature_of_dew_point_at_screen_level": { + "type": "application/netcdf", + "title": "Dew point temperature at screen level", + "roles": [ + "data" + ] + }, + "visibility_at_screen_level": { + "type": "application/netcdf", + "title": "Visibility at screen level", + "roles": [ + "data" + ] + }, + "wind_direction_at_10m": { + "type": "application/netcdf", + "title": "Wind direction at 10m", + "roles": [ + "data" + ] + }, + "wind_gust_at_10m": { + "type": "application/netcdf", + "title": "Wind gust at 10m", + "roles": [ + "data" + ] + }, + "wind_gust_at_10m_max-PT01H": { + "type": "application/netcdf", + "title": "Hourly wind gust at 10m max", + "roles": [ + "data" + ] + }, + "wind_gust_at_10m_max-PT03H": { + "type": "application/netcdf", + "title": "Three hourly wind gust at 10m max", + "roles": [ + "data" + ] + }, + "wind_speed_at_10m": { + "type": "application/netcdf", + "title": "Wind speed at 10m", + "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-pressure-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json new file mode 100644 index 000000000..6b0276028 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json @@ -0,0 +1,127 @@ +{ + "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": "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 UK Deterministic Pressure Level", + "assets": { + "thumbnail": { + "href": "", + "type": "image/png", + "roles": [ + "thumbnail" + ], + "title": "Met Office UK Deterministic Pressure Level Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [ + [ + 15, + 50, + 5, + 62 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2 years ago", + null + ] + ] + } + }, + "license": "proprietary", + "keywords": [ + "MetOffice", + "UK", + "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 UK 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" + ] + }, + "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" + ] + } + }, + "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-whole-atmosphere-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json new file mode 100644 index 000000000..ed8ca0ac9 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json @@ -0,0 +1,169 @@ +{ + "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": "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 UK Deterministic Whole Atmosphere Level", + "assets": { + "thumbnail": { + "href": "", + "type": "image/png", + "roles": [ + "thumbnail" + ], + "title": "Met Office UK Deterministic Whole Atmosphere Level Thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [ + [ + 15, + 50, + 5, + 62 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2 years ago", + null + ] + ] + } + }, + "license": "proprietary", + "keywords": [ + "MetOffice", + "UK", + "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 UK Deterministic Whole Atmosphere Level dataset provides a composite of weather parameters generated throughout the atmospheric column.", + "item_assets": { + "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" + ] + }, + "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" + ] + }, + "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", + "roles": [ + "data" + ] + }, + "height_AGL_at_freezing_level": { + "type": "application/netcdf", + "title": "Height above ground level at freezing level", + "roles": [ + "data" + ] + }, + "height_AGL_at_wet_bulb_freezing_level": { + "type": "application/netcdf", + "title": "Height above ground level at wet bulb freezing level", + "roles": [ + "data" + ] + }, + "lightning_flash_accumulation-PT01H": { + "type": "application/netcdf", + "title": "Hourly number of lightning flashes per unit area", + "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/dataset.yaml b/datasets/met-office/dataset.yaml deleted file mode 100644 index 5d4beb29b..000000000 --- a/datasets/met-office/dataset.yaml +++ /dev/null @@ -1,85 +0,0 @@ -id: met-office -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 }} - -collections: - - id: met-office-global-deterministic-height-level - template: ${{ local.path(./collection/met-office-global-deterministic-height-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/global-deterministic-height-level/ - chunks: - options: - extensions: [.netcdf] - - - id: met-office-global-deterministic-pressure-level - template: ${{ local.path(./collection/met-office-global-deterministic-pressure-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/global-deterministic-pressure-level/ - chunks: - options: - extensions: [.netcdf] - - - id: met-office-global-deterministic-near-surface-level - template: ${{ local.path(./collection/met-office-global-deterministic-near-surface-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/global-deterministic-near-surface-level/ - chunks: - options: - extensions: [.netcdf] - - - id: met-office-global-deterministic-whole-atmosphere-level - template: ${{ local.path(./collection/met-office-global-deterministic-whole-atmosphere-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/global-deterministic-whole-atmosphere-level/ - chunks: - options: - extensions: [.netcdf] - - - id: met-office-uk-deterministic-height-level - template: ${{ local.path(./collection/met-office-uk-deterministic-height-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/uk-deterministic-height-level/ - chunks: - options: - extensions: [.netcdf] - - - id: met-office-uk-deterministic-pressure-level - template: ${{ local.path(./collection/met-office-uk-deterministic-pressure-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/uk-deterministic-pressure-level/ - chunks: - options: - extensions: [.netcdf] - - - id: met-office-uk-deterministic-near-surface-level - template: ${{ local.path(./collection/met-office-uk-deterministic-near-surface-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/uk-deterministic-near-surface-level/ - chunks: - options: - extensions: [.netcdf] - - - id: met-office-uk-deterministic-whole-atmosphere-level - template: ${{ local.path(./collection/met-office-uk-deterministic-whole-atmosphere-level/) }} - asset_storage: - # This depends how you want to store the netcdf locally - - uri: blob://metofficeeuwest/uk-deterministic-whole-atmosphere-level/ - chunks: - options: - extensions: [.netcdf] \ No newline at end of file From acba9acf009cd4cc577dd620eec26299faffb255 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Wed, 19 Nov 2025 15:10:39 +0000 Subject: [PATCH 03/42] Update datasets/met-office/collection/met-office-global-deterministic-height-level/template.json Co-authored-by: Pete Gadomski --- .../template.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) 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 index 296604fd7..c485ee38b 100644 --- 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 @@ -88,10 +88,7 @@ "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" + "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", From 21b9fbb4e077a044e2a419b333cc3d8a6b11a0f3 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Wed, 19 Nov 2025 15:14:49 +0000 Subject: [PATCH 04/42] Update datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json Co-authored-by: Pete Gadomski --- .../template.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 index c926426fd..07f7a32e3 100644 --- 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 @@ -33,10 +33,10 @@ "spatial": { "bbox": [ [ - 15, - 50, - 5, - 62 + -24.51, + 44.52, + 15.28, + 61.83 ] ] }, From 851c4baf8da2566d8bbadad3ea91d566ded201c2 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Wed, 3 Dec 2025 17:49:17 +0000 Subject: [PATCH 05/42] add template docs and description markdown for UKV Near Surface Collection --- .../description.md | 58 +++++++++ .../template.json | 110 ++++++++++++++++-- 2 files changed, 158 insertions(+), 10 deletions(-) create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/description.md 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-level/description.md new file mode 100644 index 000000000..2dd933ce4 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/description.md @@ -0,0 +1,58 @@ +This collection offers 35 parameters at near-surface level from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. + +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. + +## Coverage area +The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: +* Southwest: 48.8643°N, 10.6734°W +* Northwest: 61.3322°N, 13.7254°W +* Northeast: 61.6102°N, 4.3408°E +* Southeast: 49.0594°N, 2.4654°E + +## Timesteps +The following time steps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 120 hours + +## Update frequency +There are three lengths of model run, each with its own update frequency: +* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. + +## Archive length and latency + +As of January 2026, the archive contains data from January 2024 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available approximately 3-3.5 hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* variables store the data +* dimensions give relevant dimension information for the variables +* attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer + +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite + +UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. + +## License + +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file 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 index 2ad2f0386..221f3cb9e 100644 --- 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 @@ -8,17 +8,13 @@ "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 UK Deterministic Near Surface Level", + "title": "Near-surface level collection Met Office UKV 2km deterministic forecast", "assets": { "thumbnail": { "href": "", @@ -26,7 +22,7 @@ "roles": [ "thumbnail" ], - "title": "Met Office UK Deterministic Near Surface Level Thumbnail" + "title": "Near-surface level collection Met Office UKV 2km deterministic forecast Thumbnail" } }, "extent": { @@ -43,7 +39,7 @@ "temporal": { "interval": [ [ - "2 years ago", + "2024-01-01T00:00:00Z", null ] ] @@ -51,9 +47,15 @@ }, "license": "proprietary", "keywords": [ - "MetOffice", + "Met Office", + "Weather", + "Forecast", "UK", - "Cloud" + "Precipitation", + "Temperature", + "Wind", + "Pressure", + "Humidity" ], "providers": [ { @@ -74,11 +76,13 @@ ] } ], - "description": "The Met Office UK Deterministic Near Surface Level dataset provides a composite of weather parameters generated for near surface levels.", "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" ] @@ -86,6 +90,8 @@ "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" ] @@ -93,6 +99,17 @@ "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" ] @@ -100,6 +117,8 @@ "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" ] @@ -107,6 +126,8 @@ "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" ] @@ -114,6 +135,8 @@ "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" ] @@ -121,6 +144,8 @@ "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" ] @@ -128,6 +153,8 @@ "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" ] @@ -135,6 +162,8 @@ "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" ] @@ -142,6 +171,8 @@ "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" ] @@ -149,6 +180,8 @@ "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" ] @@ -156,6 +189,8 @@ "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" ] @@ -163,6 +198,8 @@ "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" ] @@ -170,6 +207,8 @@ "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" ] @@ -177,6 +216,8 @@ "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" ] @@ -184,6 +225,8 @@ "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" ] @@ -191,6 +234,8 @@ "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" ] @@ -198,6 +243,9 @@ "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" ] @@ -205,6 +253,8 @@ "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" ] @@ -212,6 +262,8 @@ "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" ] @@ -219,6 +271,8 @@ "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" ] @@ -226,6 +280,8 @@ "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" ] @@ -233,6 +289,8 @@ "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" ] @@ -240,6 +298,9 @@ "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" ] @@ -247,6 +308,9 @@ "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" ] @@ -254,6 +318,9 @@ "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" ] @@ -261,6 +328,8 @@ "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" ] @@ -268,6 +337,9 @@ "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" ] @@ -275,6 +347,9 @@ "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" ] @@ -282,6 +357,9 @@ "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" ] @@ -289,6 +367,9 @@ "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" ] @@ -296,6 +377,9 @@ "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" ] @@ -303,6 +387,9 @@ "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" ] @@ -310,6 +397,9 @@ "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" ] From dbb235ae7dfc96700ba7beecbab5855b3b00f6a6 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Thu, 4 Dec 2025 09:50:04 +0000 Subject: [PATCH 06/42] Update datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json Co-authored-by: Pete Gadomski --- .../template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 221f3cb9e..59fe23b5f 100644 --- 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 @@ -9,7 +9,7 @@ "title": "Creative Commons Attribution-ShareAlike 4.0" }, { - "rel": "describedBy", + "rel": "describedby", "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", "title": "Met Office Dataset Documentation" } From ebe9b91ea79770df25b9652dda66b59f5016816b Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Thu, 4 Dec 2025 09:53:57 +0000 Subject: [PATCH 07/42] Update datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json Co-authored-by: Pete Gadomski --- .../template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 59fe23b5f..325c36903 100644 --- 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 @@ -105,7 +105,7 @@ "data" ] }, - "height_of_orography ": { + "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).", From 6de0113981c11b976cfe49bde96ebbb79897abb8 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Thu, 4 Dec 2025 12:41:03 +0000 Subject: [PATCH 08/42] finish UKV and add Global Near Surface --- .../description.md | 49 +++++++ .../template.json | 133 ++++++++++++++++-- .../description.md | 59 ++++++++ .../template.json | 46 +++--- .../description.md | 22 ++- .../template.json | 4 +- .../description.md | 62 ++++++++ .../template.json | 54 +++++-- .../description.md | 56 ++++++++ .../template.json | 47 +++++-- 10 files changed, 461 insertions(+), 71 deletions(-) create mode 100644 datasets/met-office/collection/met-office-global-deterministic-near-surface-level/description.md create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md create mode 100644 datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/description.md 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-level/description.md new file mode 100644 index 000000000..a42e1372b --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface-level/description.md @@ -0,0 +1,49 @@ +This collection offers 48 parameters at near-surface level from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). + +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. + +## Timesteps +The following timesteps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 144 hours +* every 6 hours from 150 to 168 hours + +## Update Frequency +The model is run four times each day, with forecast reference times of 00:00, 06:00, 12:00 and 18:00 (UTC). + +The runs at 00:00 and 12:00 provide data for the next 168 hours. The runs at 12:00 and 18:00 provide data for the next 66 hours. + +The forecast reference time represents the nominal data time or start time of a model forecast run, rather than the time when the data is available. + +## Archive length and latency +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available approximately Y hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* Variables store the data +* Dimensions give relevant dimension information for the variables +* Attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite +Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. + +## License +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file 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 index 43fedb913..899eb617f 100644 --- 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 @@ -7,18 +7,14 @@ "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", + "rel": "describedby", "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", "title": "Met Office Dataset Documentation" } ], - "title": "Met Office Global Deterministic Near Surface Level", + "title": "Near-surface level collection Met Office global deterministic 10km forecast", "assets": { "thumbnail": { "href": "", @@ -26,7 +22,7 @@ "roles": [ "thumbnail" ], - "title": "Met Office Global Deterministic Near Surface Level Thumbnail" + "title": "Near-surface level collection Met Office global deterministic 10km forecast thumbnail" } }, "extent": { @@ -43,7 +39,7 @@ "temporal": { "interval": [ [ - "2 years ago", + "2023-12-15T00:00:00Z", null ] ] @@ -51,9 +47,20 @@ }, "license": "proprietary", "keywords": [ - "MetOffice", + "Met Office", "Global", - "Cloud" + "Forecast", + "Cloud", + "Fog", + "Heat Flux", + "Precipitation", + "Pressure", + "Radiation", + "Rainfall", + "Humidity", + "Snow", + "Temperature", + "Wind" ], "providers": [ { @@ -74,11 +81,21 @@ ] } ], - "description": "The Met Office Global Deterministic Near Surface Level dataset provides a composite of weather parameters generated for near surface levels.", "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" ] @@ -86,6 +103,8 @@ "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" ] @@ -93,6 +112,8 @@ "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" ] @@ -100,6 +121,8 @@ "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" ] @@ -107,6 +130,8 @@ "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" ] @@ -114,6 +139,8 @@ "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" ] @@ -121,6 +148,8 @@ "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" ] @@ -128,6 +157,8 @@ "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" ] @@ -135,6 +166,8 @@ "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" ] @@ -142,6 +175,8 @@ "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" ] @@ -149,6 +184,8 @@ "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" ] @@ -156,6 +193,8 @@ "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" ] @@ -163,6 +202,8 @@ "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" ] @@ -170,6 +211,8 @@ "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" ] @@ -177,6 +220,8 @@ "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" ] @@ -184,6 +229,8 @@ "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" ] @@ -191,6 +238,8 @@ "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" ] @@ -198,6 +247,8 @@ "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" ] @@ -205,6 +256,8 @@ "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" ] @@ -212,6 +265,8 @@ "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" ] @@ -219,6 +274,8 @@ "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" ] @@ -226,6 +283,8 @@ "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" ] @@ -233,6 +292,8 @@ "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" ] @@ -240,6 +301,8 @@ "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" ] @@ -247,6 +310,8 @@ "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" ] @@ -254,6 +319,8 @@ "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" ] @@ -261,6 +328,8 @@ "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" ] @@ -268,6 +337,8 @@ "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" ] @@ -275,6 +346,8 @@ "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" ] @@ -282,6 +355,8 @@ "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" ] @@ -289,6 +364,8 @@ "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" ] @@ -296,6 +373,8 @@ "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" ] @@ -303,6 +382,8 @@ "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" ] @@ -310,6 +391,8 @@ "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" ] @@ -317,6 +400,8 @@ "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" ] @@ -324,6 +409,8 @@ "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" ] @@ -331,6 +418,8 @@ "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" ] @@ -338,6 +427,8 @@ "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" ] @@ -345,6 +436,8 @@ "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" ] @@ -352,6 +445,8 @@ "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" ] @@ -359,6 +454,8 @@ "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" ] @@ -366,6 +463,8 @@ "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" ] @@ -373,6 +472,8 @@ "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" ] @@ -380,6 +481,8 @@ "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" ] @@ -387,6 +490,8 @@ "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" ] @@ -394,6 +499,8 @@ "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" ] @@ -401,6 +508,8 @@ "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" ] 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-level/description.md new file mode 100644 index 000000000..bc01689e0 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md @@ -0,0 +1,59 @@ +This collection offers 4 parameters at 33 available height levels (5m to 6000m) from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. The data is available as NetCDF files. + +Available height levels, in metres (m) above ground, are: +* 5.0 10.0 20.0 30.0 50.0 75.0 100.0 150.0 200.0 250.0 300.0 400.0 500.0 600.0 700.0 800.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 3250.0 3500.0 3750.0 4000.0 4500.0 5000.0 5500.0 6000.0 + +## Coverage area +The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: +* Southwest: 48.8643°N, 10.6734°W +* Northwest: 61.3322°N, 13.7254°W +* Northeast: 61.6102°N, 4.3408°E +* Southeast: 49.0594°N, 2.4654°E + +## Timesteps +The following time steps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 120 hours + +## Update frequency +There are three lengths of model run, each with its own update frequency: +* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. + +## Archive length and latency + +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available approximately 3-3.5 hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* variables store the data +* dimensions give relevant dimension information for the variables +* attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer + +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite + +UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. + +## License + +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file 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 index 07f7a32e3..6870f66c2 100644 --- 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 @@ -7,18 +7,14 @@ "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", + "rel": "describedby", "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", "title": "Met Office Dataset Documentation" } ], - "title": "Met Office UK Deterministic Height Level", + "title": "Height levels collection Met Office UKV 2km deterministic forecast", "assets": { "thumbnail": { "href": "", @@ -26,24 +22,24 @@ "roles": [ "thumbnail" ], - "title": "Met Office UK Deterministic Height Level Thumbnail" + "title": "Height levels collection Met Office UKV 2km deterministic forecast thumbnail" } }, "extent": { "spatial": { "bbox": [ [ - -24.51, - 44.52, - 15.28, - 61.83 + 15, + 50, + 5, + 62 ] ] }, "temporal": { "interval": [ [ - "2 years ago", + "2023-12-15T00:00:00Z", null ] ] @@ -51,9 +47,14 @@ }, "license": "proprietary", "keywords": [ - "MetOffice", + "Met Office", + "Weather", + "Forecast", "UK", - "Cloud" + "Cloud", + "Temperature", + "Wind", + "Height" ], "providers": [ { @@ -74,32 +75,39 @@ ] } ], - "description": "The Met Office UK 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", + "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", + "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", + "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", + "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" ] 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-level/description.md index 2dd933ce4..b88895181 100644 --- 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-level/description.md @@ -2,31 +2,30 @@ This collection offers 35 parameters at near-surface level from the Met Office U The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. -## Coverage area +## Coverage area The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: * Southwest: 48.8643°N, 10.6734°W * Northwest: 61.3322°N, 13.7254°W * Northeast: 61.6102°N, 4.3408°E * Southeast: 49.0594°N, 2.4654°E -## Timesteps +## Timesteps The following time steps are available: * every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) * every 3 hours from 57 to 120 hours -## Update frequency +## Update frequency There are three lengths of model run, each with its own update frequency: * The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. * The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. * The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. ## Archive length and latency - -As of January 2026, the archive contains data from January 2024 onwards. Forecasts will continue to be available for at least two years from their data date. +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. The data is typically available approximately 3-3.5 hours after the model run time. -## Technical specs +## Technical specs The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: * variables store the data * dimensions give relevant dimension information for the variables @@ -38,21 +37,18 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) -## Help us improve the data services we offer - +## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## How to cite - +## How to cite UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. ## License - British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). -## Providers +## Providers [Met Office](https://www.metoffice.gov.uk/) See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) -## Contact +## Contact [servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file 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 index 221f3cb9e..46d262b07 100644 --- 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 @@ -9,7 +9,7 @@ "title": "Creative Commons Attribution-ShareAlike 4.0" }, { - "rel": "describedBy", + "rel": "describedby", "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", "title": "Met Office Dataset Documentation" } @@ -39,7 +39,7 @@ "temporal": { "interval": [ [ - "2024-01-01T00:00:00Z", + "2023-12-15T00:00:00Z", null ] ] 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-level/description.md new file mode 100644 index 000000000..b9aeccd75 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md @@ -0,0 +1,62 @@ +This collection offers 7 parameters at 33 available pressure levels (from 100000Pa to 1000Pa) from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. + +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. + +## Pressure Levels +Available pressure levels, in Pascals (Pa), are: +* 100000.0 97500.0 95000.0 92500.0 90000.0 85000.0 80000.0 75000.0 70000.0 65000.0 60000.0 55000.0 50000.0 45000.0 40000.0 37500.0 35000.0 32500.0 30000.0 27500.0 25000.0 22500.0 20000.0 17500.0 15000.0 12500.0 10000.0 7000.0 5000.0 4000.0 3000.0 2000.0 1000.0 + +## Coverage area +The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: +* Southwest: 48.8643°N, 10.6734°W +* Northwest: 61.3322°N, 13.7254°W +* Northeast: 61.6102°N, 4.3408°E +* Southeast: 49.0594°N, 2.4654°E + +## Timesteps +The following time steps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 120 hours + +## Update frequency +There are three lengths of model run, each with its own update frequency: +* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. + +## Archive length and latency + +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available approximately 3-3.5 hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* variables store the data +* dimensions give relevant dimension information for the variables +* attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer + +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite + +UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. + +## License + +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file 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 index 6b0276028..f4df35a92 100644 --- 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 @@ -9,16 +9,12 @@ "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", + "rel": "describedby", "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", "title": "Met Office Dataset Documentation" } ], - "title": "Met Office UK Deterministic Pressure Level", + "title": "Pressure levels collection Met Office UKV 2km deterministic forecast", "assets": { "thumbnail": { "href": "", @@ -26,7 +22,7 @@ "roles": [ "thumbnail" ], - "title": "Met Office UK Deterministic Pressure Level Thumbnail" + "title": "Pressure levels collection Met Office UKV 2km deterministic forecast Thumbnail" } }, "extent": { @@ -43,7 +39,7 @@ "temporal": { "interval": [ [ - "2 years ago", + "2023-12-15T00:00:00Z", null ] ] @@ -51,9 +47,14 @@ }, "license": "proprietary", "keywords": [ - "MetOffice", + "Met Office", + "Weather", + "Forecast", "UK", - "Cloud" + "Temperature", + "Wind", + "Pressure", + "Humidity" ], "providers": [ { @@ -74,18 +75,30 @@ ] } ], - "description": "The Met Office UK Deterministic Pressure Level dataset provides a composite of weather parameters generated for specific atmospheric pressure levels.", "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 on pressure levels", + "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": "Relative humidity on pressure levels", + "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" ] @@ -93,13 +106,26 @@ "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" ] @@ -107,6 +133,8 @@ "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" ] 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-level/description.md new file mode 100644 index 000000000..230f82c81 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/description.md @@ -0,0 +1,56 @@ +This collection offers 11 whole-atmosphere parameters from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. The data is available as NetCDF files. + +## Coverage area +The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: +* Southwest: 48.8643°N, 10.6734°W +* Northwest: 61.3322°N, 13.7254°W +* Northeast: 61.6102°N, 4.3408°E +* Southeast: 49.0594°N, 2.4654°E + +## Timesteps +The following time steps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 120 hours + +## Update frequency +There are three lengths of model run, each with its own update frequency: +* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. + +## Archive length and latency + +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available approximately 3-3.5 hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* variables store the data +* dimensions give relevant dimension information for the variables +* attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer + +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite + +UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. + +## License + +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file 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 index ed8ca0ac9..76fed3f11 100644 --- 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 @@ -7,18 +7,14 @@ "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", + "rel": "describedby", "href": "https://www.metoffice.gov.uk/services/data/external-data-channels", "title": "Met Office Dataset Documentation" } ], - "title": "Met Office UK Deterministic Whole Atmosphere Level", + "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast", "assets": { "thumbnail": { "href": "", @@ -26,7 +22,7 @@ "roles": [ "thumbnail" ], - "title": "Met Office UK Deterministic Whole Atmosphere Level Thumbnail" + "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast thumbnail" } }, "extent": { @@ -43,7 +39,7 @@ "temporal": { "interval": [ [ - "2 years ago", + "2023-12-15T00:00:00Z", null ] ] @@ -51,9 +47,15 @@ }, "license": "proprietary", "keywords": [ - "MetOffice", + "Met Office", + "Weather", + "Forecast", "UK", - "Cloud" + "CAPE", + "Cloud", + "Freezing", + "Wet Bulb", + "Lightning" ], "providers": [ { @@ -74,11 +76,12 @@ ] } ], - "description": "The Met Office UK Deterministic Whole Atmosphere Level dataset provides a composite of weather parameters generated throughout the atmospheric column.", "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" ] @@ -86,6 +89,8 @@ "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" ] @@ -93,6 +98,8 @@ "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" ] @@ -100,6 +107,8 @@ "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" ] @@ -107,6 +116,8 @@ "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" ] @@ -114,6 +125,8 @@ "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" ] @@ -121,6 +134,8 @@ "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" ] @@ -128,6 +143,8 @@ "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" ] @@ -135,6 +152,8 @@ "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" ] @@ -142,6 +161,8 @@ "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" ] @@ -149,6 +170,8 @@ "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" ] From 325513f6bf96b2fbb16d4c26aab138125592238c Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Mon, 8 Dec 2025 11:26:42 +0000 Subject: [PATCH 09/42] refactor UK Near Surface to use datacube STAC extension & update model latency wording --- .../description.md | 2 +- .../description.md | 14 +- .../template.json | 471 +++++++++++------- .../description.md | 3 +- .../description.md | 2 +- 5 files changed, 293 insertions(+), 199 deletions(-) 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-level/description.md index bc01689e0..d9bdf7cb2 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md @@ -25,7 +25,7 @@ There are three lengths of model run, each with its own update frequency: As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. -The data is typically available approximately 3-3.5 hours after the model run time. +The data is typically available 3-6 hours after the model run time. ## Technical specs The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: 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-level/description.md index b88895181..a2e099cdd 100644 --- 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-level/description.md @@ -10,20 +10,20 @@ The forecast covers the UK and Ireland, with the following latitude and longitud * Southeast: 49.0594°N, 2.4654°E ## Timesteps -The following time steps are available: -* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) -* every 3 hours from 57 to 120 hours +For most parameters, the following time steps are available (see parameter table for exceptions): +* every hour from 0 to 54 hours +* every 3 hours from 57 to 120 hours ## Update frequency There are three lengths of model run, each with its own update frequency: -* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. -* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. -* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. +* Nowcast: forecasts the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* Short: forecasts the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* Medium: forecasts the next 120 hours and are at 0300 and 1500 UTC. ## Archive length and latency As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. -The data is typically available approximately 3-3.5 hours after the model run time. +The data is typically available 3-6 hours after the model run time. ## Technical specs The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: 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 index 6ccbd6425..3dcb7b11b 100644 --- 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 @@ -76,333 +76,426 @@ ] } ], - "item_assets": { + "cube:variables": { "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.", + "dimensions": [], "unit": "1", - "height": "1.5m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "15m_timesteps": "-", + "1h_timesteps": "T+1 to T+54", + "3h_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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).", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "15m_timesteps": "-", + "1h_timesteps": "T+1 to T+54", + "3h_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "15m_timesteps": "-", + "1h_timesteps": "-", + "3h_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "Pa", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Pressure at surface", "description": "Air pressure at the surface (lower boundary of the atmosphere).", + "dimensions": [], "unit": "Pa", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Radiation flux in longwave downward at surface", "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Radiation flux in uv downward at surface", "description": "Ultraviolet radiation at the surface from above directed at the ground.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "15m_timesteps": "-", + "1h_timesteps": "T+1 to T+54", + "3h_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "15m_timesteps": "-", + "1h_timesteps": "-", + "3h_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.)", + "dimensions": [], "unit": "1", - "height": "1.5m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "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", - "roles": [ - "data" - ] + "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": { - "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. ", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "15m_timesteps": "-", + "1h_timesteps": "T+1 to T+54", + "3h_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "15m_timesteps": "-", + "1h_timesteps": "-", + "3h_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Temperature at screen level", "description": "Instantaneous air temperature at screen level (1.5m).", + "dimensions": [], "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level max", "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level min", "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] + "attrs": { + "height": "1.5m", + "15m_timesteps": "-", + "1h_timesteps": "T+1 to T+120", + "3h_timesteps": "-", + "content_type": "application/netcdf" + } }, "temperature_at_surface": { - "type": "application/netcdf", - "title": "Temperature at surface", "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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).", + "dimensions": [], "unit": "K", - "height": "1.5m", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Visibility at screen level", "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [], "unit": "m", - "height": "1.5m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "degrees", - "height": "10.0m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] + "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": { - "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. ", + "dimensions": [], "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] + "attrs": { + "height": "10.0m", + "15m_timesteps": "-", + "1h_timesteps": "-", + "3h_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "height": "10.0m", - "roles": [ - "data" - ] + "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", 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-level/description.md index b9aeccd75..161ebc6ab 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md @@ -28,7 +28,8 @@ There are three lengths of model run, each with its own update frequency: As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. -The data is typically available approximately 3-3.5 hours after the model run time. +The data is typically available 3-6 hours after the model run time. + ## Technical specs The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: 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-level/description.md index 230f82c81..205eda0b1 100644 --- 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-level/description.md @@ -22,7 +22,7 @@ There are three lengths of model run, each with its own update frequency: As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. -The data is typically available approximately 3-3.5 hours after the model run time. +The data is typically available 3-6 hours after the model run time. ## Technical specs The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: From 20691cf66394a7e9f7d1893934bb63dd2036dc54 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Mon, 8 Dec 2025 12:09:35 +0000 Subject: [PATCH 10/42] update Global Near Surface with datacube extension & update description --- .../description.md | 4 +- .../template.json | 627 +++++++++++------- .../template.json | 204 +++--- 3 files changed, 490 insertions(+), 345 deletions(-) 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-level/description.md index a42e1372b..9ad6da66b 100644 --- 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-level/description.md @@ -11,14 +11,14 @@ The following timesteps are available: ## Update Frequency The model is run four times each day, with forecast reference times of 00:00, 06:00, 12:00 and 18:00 (UTC). -The runs at 00:00 and 12:00 provide data for the next 168 hours. The runs at 12:00 and 18:00 provide data for the next 66 hours. +The runs at 00:00 and 12:00 provide data for the next 168 hours. The runs at 06:00 and 18:00 provide data for the next 67 hours. The forecast reference time represents the nominal data time or start time of a model forecast run, rather than the time when the data is available. ## Archive length and latency As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. -The data is typically available approximately Y hours after the model run time. +The data is typically available 6 hours after the model run time. ## Technical specs The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: 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 index 899eb617f..f5263bb69 100644 --- 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 @@ -81,438 +81,583 @@ ] } ], - "item_assets": { + "cube:variables": { "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.", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "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": { - "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)", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "T+0 only", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+48", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+51 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "Pa", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Radiation flux in longwave downward at surface", "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Radiation flux in uv downward at surface", "description": "Ultaviolet radiation at the surface from above directed at the ground.", + "dimensions": [], "unit": "W/m2", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "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.)", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } + }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+144", + "6H_timesteps": "-", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "surface", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "temperature_at_screen_level": { - "type": "application/netcdf", - "title": "Temperature at screen level", "description": "Instantaneous air temperature at screen level (1.5m).", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level max", "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Hourly temperature at screen level min", "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "attrs": { + "height": "1.5m", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "temperature_at_surface": { - "type": "application/netcdf", - "title": "Temperature at surface", "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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).", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Visibility at screen level", "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "degrees", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "attrs": { + "height": "10.0m", + "1H_timesteps": "-", + "3H_timesteps": "-", + "6H_timesteps": "T+150 to T+168", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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", 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 index 3dcb7b11b..124049a63 100644 --- 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 @@ -95,9 +95,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+1 to T+54", - "3h_timesteps": "-", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", "content_type": "application/netcdf" } }, @@ -107,9 +107,9 @@ "unit": "m/s", "attrs": { "height": "surface", - "15m_timesteps": "T+0 to T+54", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -119,9 +119,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -131,9 +131,9 @@ "unit": "1", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -143,9 +143,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+1 to T+54", - "3h_timesteps": "-", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", "content_type": "application/netcdf" } }, @@ -155,9 +155,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -167,9 +167,9 @@ "unit": "m/s", "attrs": { "height": "surface", - "15m_timesteps": "T+0 to T+54", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -179,9 +179,9 @@ "unit": "Pa", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -191,9 +191,9 @@ "unit": "Pa", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -203,9 +203,9 @@ "unit": "W/m2", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -215,9 +215,9 @@ "unit": "W/m2", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -227,9 +227,9 @@ "unit": "W/m2", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -239,9 +239,9 @@ "unit": "W/m2", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -251,9 +251,9 @@ "unit": "W/m2", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -263,9 +263,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+1 to T+54", - "3h_timesteps": "-", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", "content_type": "application/netcdf" } }, @@ -275,9 +275,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -287,9 +287,9 @@ "unit": "m/s", "attrs": { "height": "surface", - "15m_timesteps": "T+0 to T+54", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -299,9 +299,9 @@ "unit": "1", "attrs": { "height": "1.5m", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -311,9 +311,9 @@ "unit": "W/m2", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -323,9 +323,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -335,9 +335,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+1 to T+54", - "3h_timesteps": "-", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", "content_type": "application/netcdf" } }, @@ -347,9 +347,9 @@ "unit": "m", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -359,9 +359,9 @@ "unit": "m/s", "attrs": { "height": "surface", - "15m_timesteps": "T+0 to T+54", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "T+0 to T+54", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -371,9 +371,9 @@ "unit": "K", "attrs": { "height": "1.5m", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -383,9 +383,9 @@ "unit": "K", "attrs": { "height": "1.5m", - "15m_timesteps": "-", - "1h_timesteps": "T+1 to T+120", - "3h_timesteps": "-", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+120", + "3H_timesteps": "-", "content_type": "application/netcdf" } }, @@ -395,9 +395,9 @@ "unit": "K", "attrs": { "height": "1.5m", - "15m_timesteps": "-", - "1h_timesteps": "T+1 to T+120", - "3h_timesteps": "-", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+120", + "3H_timesteps": "-", "content_type": "application/netcdf" } }, @@ -407,9 +407,9 @@ "unit": "K", "attrs": { "height": "surface", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -419,9 +419,9 @@ "unit": "K", "attrs": { "height": "1.5m", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -431,9 +431,9 @@ "unit": "m", "attrs": { "height": "1.5m", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -443,9 +443,9 @@ "unit": "degrees", "attrs": { "height": "10.0m", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -455,9 +455,9 @@ "unit": "m/s", "attrs": { "height": "10.0m", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -467,9 +467,9 @@ "unit": "m/s", "attrs": { "height": "10.0m", - "15m_timesteps": "-", - "1h_timesteps": "T+1 to T+54", - "3h_timesteps": "-", + "15M_timesteps": "-", + "1H_timesteps": "T+1 to T+54", + "3H_timesteps": "-", "content_type": "application/netcdf" } }, @@ -479,9 +479,9 @@ "unit": "m/s", "attrs": { "height": "10.0m", - "15m_timesteps": "-", - "1h_timesteps": "-", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "-", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } }, @@ -491,9 +491,9 @@ "unit": "m/s", "attrs": { "height": "10.0m", - "15m_timesteps": "-", - "1h_timesteps": "T+0 to T+54", - "3h_timesteps": "T+57 to T+120", + "15M_timesteps": "-", + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", "content_type": "application/netcdf" } } From c458572c4e3bdfce75099e588af2c0f2c8817142 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Mon, 8 Dec 2025 12:21:02 +0000 Subject: [PATCH 11/42] tidy up Update Frequency docs for UK Collection --- .../description.md | 8 ++++---- .../description.md | 8 ++++---- .../description.md | 7 ++++--- 3 files changed, 12 insertions(+), 11 deletions(-) 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-level/description.md index d9bdf7cb2..c5a66d5d1 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md @@ -16,10 +16,10 @@ The following time steps are available: * every 3 hours from 57 to 120 hours ## Update frequency -There are three lengths of model run, each with its own update frequency: -* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. -* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. -* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. +There are three lengths of model run, each with its own update frequency: +* Nowcast: forecasts the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* Short: forecasts the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* Medium: forecasts the next 120 hours and are at 0300 and 1500 UTC. ## Archive length and latency 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-level/description.md index 161ebc6ab..aa80c9709 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/description.md @@ -19,10 +19,10 @@ The following time steps are available: * every 3 hours from 57 to 120 hours ## Update frequency -There are three lengths of model run, each with its own update frequency: -* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. -* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. -* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. +There are three lengths of model run, each with its own update frequency: +* Nowcast: forecasts the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* Short: forecasts the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* Medium: forecasts the next 120 hours and are at 0300 and 1500 UTC. ## Archive length and latency 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-level/description.md index 205eda0b1..f77ba483a 100644 --- 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-level/description.md @@ -14,9 +14,10 @@ The following time steps are available: ## Update frequency There are three lengths of model run, each with its own update frequency: -* The Nowcast-length runs forecast the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. -* The Short-length runs forecast the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. -* The Medium-Length runs forecast the next 120 hours and are at 0300 and 1500 UTC. +There are three lengths of model run, each with its own update frequency: +* Nowcast: forecasts the next 12 hours and are at 0100, 0200, 0400, 0500, 0700, 0800, 1000, 1100, 1300, 1400, 1600, 1700, 1900, 2000, 2200 and 2300 UTC. +* Short: forecasts the next 54 hours and are at 0000, 0600, 0900, 1200, 1800 and 2100 UTC. +* Medium: forecasts the next 120 hours and are at 0300 and 1500 UTC. ## Archive length and latency From fa8446cc53e7a54a8ce70ee4da30b54526537a34 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Mon, 8 Dec 2025 13:13:04 +0000 Subject: [PATCH 12/42] add Global collection documentation markdown --- .../description.md | 53 +++++++++++++++++++ .../description.md | 53 +++++++++++++++++++ .../description.md | 49 +++++++++++++++++ .../description.md | 1 + 4 files changed, 156 insertions(+) create mode 100644 datasets/met-office/collection/met-office-global-deterministic-height-level/description.md create mode 100644 datasets/met-office/collection/met-office-global-deterministic-pressure-level/description.md create mode 100644 datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/description.md diff --git a/datasets/met-office/collection/met-office-global-deterministic-height-level/description.md b/datasets/met-office/collection/met-office-global-deterministic-height-level/description.md new file mode 100644 index 000000000..dd7a01d1b --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-height-level/description.md @@ -0,0 +1,53 @@ +This collection offers 1 parameter at 33 available height levels (5m to 6000m) from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). + +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. + +## Height Levels +Available height levels, in metres (m) above ground, are: +* 5.0 10.0 20.0 30.0 50.0 75.0 100.0 150.0 200.0 250.0 300.0 400.0 500.0 600.0 700.0 800.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 3250.0 3500.0 3750.0 4000.0 4500.0 5000.0 5500.0 6000.0 + +## Timesteps +The following timesteps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 144 hours +* every 6 hours from 150 to 168 hours + +## Update Frequency +The model is run four times each day, with forecast reference times of 00:00, 06:00, 12:00 and 18:00 (UTC). + +The runs at 00:00 and 12:00 provide data for the next 168 hours. The runs at 06:00 and 18:00 provide data for the next 67 hours. + +The forecast reference time represents the nominal data time or start time of a model forecast run, rather than the time when the data is available. + +## Archive length and latency +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available 6 hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* Variables store the data +* Dimensions give relevant dimension information for the variables +* Attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite +Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. + +## License +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure-level/description.md b/datasets/met-office/collection/met-office-global-deterministic-pressure-level/description.md new file mode 100644 index 000000000..61a8282e1 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure-level/description.md @@ -0,0 +1,53 @@ +This collection offers 8 parameters at 33 available pressure levels (from 100000Pa to 1000Pa) from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). + +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. + +## Pressure Levels +Available pressure levels, in Pascals (Pa), are: +* 100000.0 97500.0 95000.0 92500.0 90000.0 85000.0 80000.0 75000.0 70000.0 65000.0 60000.0 55000.0 50000.0 45000.0 40000.0 37500.0 35000.0 32500.0 30000.0 27500.0 25000.0 22500.0 20000.0 17500.0 15000.0 12500.0 10000.0 7000.0 5000.0 4000.0 3000.0 2000.0 1000.0 + +## Timesteps +The following timesteps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 144 hours +* every 6 hours from 150 to 168 hours + +## Update Frequency +The model is run four times each day, with forecast reference times of 00:00, 06:00, 12:00 and 18:00 (UTC). + +The runs at 00:00 and 12:00 provide data for the next 168 hours. The runs at 06:00 and 18:00 provide data for the next 67 hours. + +The forecast reference time represents the nominal data time or start time of a model forecast run, rather than the time when the data is available. + +## Archive length and latency +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available 6 hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* Variables store the data +* Dimensions give relevant dimension information for the variables +* Attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite +Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. + +## License +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/description.md b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/description.md new file mode 100644 index 000000000..dd0fe022d --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/description.md @@ -0,0 +1,49 @@ +This collection offers 14 whole-atmosphere parameters from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). + +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. + +## Timesteps +The following timesteps are available: +* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every 3 hours from 57 to 144 hours +* every 6 hours from 150 to 168 hours + +## Update Frequency +The model is run four times each day, with forecast reference times of 00:00, 06:00, 12:00 and 18:00 (UTC). + +The runs at 00:00 and 12:00 provide data for the next 168 hours. The runs at 06:00 and 18:00 provide data for the next 67 hours. + +The forecast reference time represents the nominal data time or start time of a model forecast run, rather than the time when the data is available. + +## Archive length and latency +As of December 2025, the archive contains data from December 2023 onwards. Forecasts will continue to be available for at least two years from their data date. + +The data is typically available 6 hours after the model run time. + +## Technical specs +The data is available as NetCDF files. NetCDF (Network Common Data Form) is an interface for array-orientated data access and a library that supports the interface. It is composed of 3 components: +* Variables store the data +* Dimensions give relevant dimension information for the variables +* Attributes provide auxiliary information about the variables or dataset itself + +NetCDF is used within the atmospheric and oceanic science communities and is network transparent, allowing for it to be accessed by computers that store integers, characters and floating-point numbers. + +Iris supports NetCDF files through reading, writing and handling. Iris implements a model based on the CF conventions, giving a format-agnostic interface for working with data. + +[Find further support on using Iris with NetCDF files.](https://scitools-iris.readthedocs.io/en/stable/) + +## Help us improve the data services we offer +[Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. + +## How to cite +Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. + +## License +British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). + +## Providers +[Met Office](https://www.metoffice.gov.uk/) +See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +## Contact +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ 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-level/description.md index c5a66d5d1..80a97ed54 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height-level/description.md @@ -1,5 +1,6 @@ This collection offers 4 parameters at 33 available height levels (5m to 6000m) from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. The data is available as NetCDF files. +## Height Levels Available height levels, in metres (m) above ground, are: * 5.0 10.0 20.0 30.0 50.0 75.0 100.0 150.0 200.0 250.0 300.0 400.0 500.0 600.0 700.0 800.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 3250.0 3500.0 3750.0 4000.0 4500.0 5000.0 5500.0 6000.0 From 0fd17ad562f883053964807bf60d5a55a87472cb Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Mon, 8 Dec 2025 13:48:10 +0000 Subject: [PATCH 13/42] convert all Global collections to use datacube extension and add Global collection documentation --- .../template.json | 21 +- .../template.json | 6 +- .../template.json | 127 +++++++---- .../template.json | 206 +++++++++++------- .../template.json | 52 ++--- .../template.json | 10 +- .../template.json | 94 ++++---- .../template.json | 129 ++++++----- 8 files changed, 384 insertions(+), 261 deletions(-) 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 index c485ee38b..b681107d6 100644 --- 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 @@ -43,7 +43,7 @@ "temporal": { "interval": [ [ - "2 years ago", + "2023-12-15T00:00:00Z", null ] ] @@ -75,20 +75,25 @@ } ], "description": "The Met Office Global Deterministic Height Level dataset provides a composite of weather parameters generated for specific atmospheric height levels.", - "item_assets": { + "cube:variables": { "cloud_amount_on_height_levels": { - "type": "application/netcdf", - "title": "Cloud amount on height levels", - "roles": [ - "data" - ] + "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/item-assets/v1.0.0/schema.json" + "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", 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 index f5263bb69..ca2a7e7e4 100644 --- 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 @@ -664,10 +664,8 @@ "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" + "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", 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 index fc38fa3c2..f77d0ed65 100644 --- 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 @@ -43,7 +43,7 @@ "temporal": { "interval": [ [ - "2 years ago", + "2023-12-15T00:00:00Z", null ] ] @@ -75,65 +75,110 @@ } ], "description": "The Met Office Global Deterministic Pressure Level dataset provides a composite of weather parameters generated for specific atmospheric pressure levels.", - "item_assets": { + "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": { - "type": "application/netcdf", - "title": "Height above sea level on pressure levels", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Relative humidity on pressure levels", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Temperature on pressure levels", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Wet bulb temperature on pressure levels", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Wind direction on pressure levels", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Wind speed on pressure levels", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Wind vertical velocity on pressure levels", - "roles": [ - "data" - ] + "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/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" + "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", 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 index 88c6e4950..96af004c4 100644 --- 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 @@ -43,7 +43,7 @@ "temporal": { "interval": [ [ - "2 years ago", + "2023-12-15T00:00:00Z", null ] ] @@ -75,114 +75,168 @@ } ], "description": "The Met Office Global Deterministic Whole Atmosphere Level dataset provides a composite of weather parameters generated throughout the atmospheric column.", - "item_assets": { + "cube:variables": { "CAPE_mixed_layer_lowest_500m": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy mixed layer lowest 500m", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy most unstable below 500hPa", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Convective Available Potential Energy with respect to surface", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Convective Inhibition mixed layer lowest 500m", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Convective Inhibition most unstable below 500hPa", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Convective Inhibition with respect to surface", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Cloud amount below 1000ft Above Sea Level", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Cloud amount of high cloud", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Cloud amount of low cloud", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Cloud amount of medium cloud", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Cloud amount of total cloud", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Cloud amount of total convective cloud", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Pressure at tropopause", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Temperature at tropopause", - "roles": [ - "data" - ] + "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/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" + "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", 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 index 6870f66c2..e26e32008 100644 --- 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 @@ -75,52 +75,54 @@ ] } ], - "item_assets": { + "cube:variables": { "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.", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "temperature_on_height_levels": { - "type": "application/netcdf", - "title": "Temperature on height levels", "description": "Air temperature on height levels.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "degrees", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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/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" + "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", 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 index 124049a63..b835a7d59 100644 --- 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 @@ -330,7 +330,7 @@ } }, "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. ", + "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": { @@ -462,7 +462,7 @@ } }, "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. ", + "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": { @@ -502,10 +502,8 @@ "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" + "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", 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 index f4df35a92..651918d3b 100644 --- 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 @@ -75,79 +75,91 @@ ] } ], - "item_assets": { - "geopotential_height_on_pressure_levels ": { - "type": "application/netcdf", - "title": "Geopotential height of the pressure levels", + "cube:variables": { + "geopotential_height_on_pressure_levels": { "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "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": { - "type": "application/netcdf", - "title": "Temperature on pressure levels", "description": "Air temperature on pressure levels.", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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", + "dimensions": [], "unit": "K", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "degrees", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m/s", - "roles": [ - "data" - ] + "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/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" + "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", 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 index 76fed3f11..f09f21567 100644 --- 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 @@ -76,115 +76,124 @@ ] } ], - "item_assets": { + "cube:variables": { "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.", + "dimensions": [], "unit": "J/kg", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "J/kg", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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).", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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).", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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).", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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.", + "dimensions": [], "unit": "1", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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).", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "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": { - "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.", + "dimensions": [], "unit": "m", - "roles": [ - "data" - ] + "attrs": { + "1H_timesteps": "T+0 to T+54", + "3H_timesteps": "T+57 to T+120", + "content_type": "application/netcdf" + } }, "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", + "dimensions": [], "unit": "count/m2", - "roles": [ - "data" - ] + "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/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" + "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", From 39ceaa9225a8b152e97a2f1af01d9fdde04a1d59 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Fri, 12 Dec 2025 11:47:36 +0000 Subject: [PATCH 14/42] update global height level to refactored STAC spec --- .../template.json | 70 ++++++++++++++----- .../template.json | 2 +- 2 files changed, 55 insertions(+), 17 deletions(-) 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 index b681107d6..97472d38e 100644 --- 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 @@ -1,5 +1,5 @@ { - "id": "met-office-global-deterministic-height-level", + "id": "met-office-global-deterministic-height", "type": "Collection", "links": [ { @@ -74,20 +74,6 @@ ] } ], - "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": "", @@ -97,5 +83,57 @@ ], "msft:storage_account": "metofficeeuwest", "msft:short_description": "Met Office Global Deterministic Height Level", - "msft:region": "westeurope" + "msft:region": "westeurope", + "item_assets": { + "cloud_amount_on_height_levels": { + "type": "application/netcdf", + "title": "Cloud amount on height levels", + "roles": ["data"], + "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "height": { + "type": "spatial", + "values": [ + 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, + 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, + 3500, 3750, 4000, 4500, 5000, 5500, 6000 + ] + }, + "1H_timesteps": { + "type": "temporal", + "extent": [0, 54], + "step": "PT01H" + }, + "3H_timesteps": { + "type": "temporal", + "extent": [57, 144], + "step": "PT03H" + }, + "6H_timesteps": { + "type": "temporal", + "extent": [150, 168], + "step": "PT06H" + } + }, + "cube:variables": { + "cloud_volume_fraction_in_atmosphere_layer": { + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels. The levels are height above ground.", + "dimensions": ["latitude", "longitude", "height", "1H_timesteps", "3H_timesteps", "6H_timesteps"], + "type": "data", + "unit": "1" + } + } + } + } + } \ No newline at end of file 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 index e26e32008..ff6856a2e 100644 --- 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 @@ -1,5 +1,5 @@ { - "id": "met-office-uk-deterministic-height-level", + "id": "met-office-uk-deterministic-height", "type": "Collection", "links": [ { From d913837b0f285278c6746fcdf69b04d945c188ed Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Fri, 12 Dec 2025 11:50:54 +0000 Subject: [PATCH 15/42] update keyword for Global Height collection --- .../template.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 index 97472d38e..f5f568b4b 100644 --- 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 @@ -51,7 +51,9 @@ }, "license": "proprietary", "keywords": [ - "MetOffice", + "Met Office", + "Weather", + "Forecast", "Global", "Cloud" ], From 814bb2e68d60fd4a8ffb636e393861949b156213 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Mon, 15 Dec 2025 07:38:00 -0700 Subject: [PATCH 16/42] feat: add ingest code and workflow --- datasets/met-office/dataset.yaml | 127 +++++++++++++++++++++++++++ datasets/met-office/met_office.py | 87 ++++++++++++++++++ datasets/met-office/requirements.txt | 1 + 3 files changed, 215 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..b84858ffc --- /dev/null +++ b/datasets/met-office/dataset.yaml @@ -0,0 +1,127 @@ +id: met-office +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 + template: ${{ local.path(./collection/met-office-global-deterministic-height) }} + class: met_office:MetOfficeGlobalHeightCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/global/height + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + 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:MetOfficeGlobalNearSurfaceCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/global/near-surface + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoeuwest/staging/staging-chunks/ + - id: met-office-global-deterministic-pressure + template: ${{ local.path(./collection/met-office-global-deterministic-pressure) }} + class: met_office:MetOfficeGlobalPressureCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/global/pressure + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + 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:MetOfficeGlobalWholeAtmosphereCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/global/whole-atmosphere + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoeuwest/staging/staging-chunks/ + - id: met-office-uk-deterministic-height + template: ${{ local.path(./collection/met-office-uk-deterministic-height) }} + class: met_office:MetOfficeUkHeightCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/uk/height + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + 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:MetOfficeUkNearSurfaceCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/uk/near-surface + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoeuwest/staging/staging-chunks/ + - id: met-office-uk-deterministic-pressure + template: ${{ local.path(./collection/met-office-uk-deterministic-pressure) }} + class: met_office:MetOfficeUkPressureCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/uk/pressure + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + 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:MetOfficeUkWholeAtmosphereCollection + asset_storage: + - uri: blob://ukmoeuwest/staging/uk/whole-atmosphere + chunks: + options: + min_depth: 1 + max_depth: 1 + extensions: + - .updated + chunk_length: 20000 + chunk_storage: + uri: blob://ukmoeuwest/staging/staging-chunks/ diff --git a/datasets/met-office/met_office.py b/datasets/met-office/met_office.py new file mode 100644 index 000000000..0a4cbec3e --- /dev/null +++ b/datasets/met-office/met_office.py @@ -0,0 +1,87 @@ +import logging +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 +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"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 + + +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 new file mode 100644 index 000000000..e923ea9a2 --- /dev/null +++ b/datasets/met-office/requirements.txt @@ -0,0 +1 @@ +stactools-met-office-deterministic==0.3.2 From cbcb3761ea8bebe57d9804dd163e75c3be119054 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Mon, 15 Dec 2025 07:44:11 -0700 Subject: [PATCH 17/42] refactor: remove `-level` from folders --- .../description.md | 0 .../template.json | 0 .../template.json | 673 ------------------ .../description.md | 0 .../template.json | 651 +++++++++++++++++ .../template.json | 186 ----- .../description.md | 0 .../template.json | 161 +++++ .../template.json | 244 ------- .../description.md | 0 .../template.json | 219 ++++++ .../description.md | 0 .../template.json | 0 .../template.json | 511 ------------- .../description.md | 0 .../template.json | 490 +++++++++++++ .../template.json | 167 ----- .../description.md | 0 .../template.json | 146 ++++ .../template.json | 201 ------ .../description.md | 0 .../template.json | 180 +++++ 22 files changed, 1847 insertions(+), 1982 deletions(-) rename datasets/met-office/collection/{met-office-global-deterministic-height-level => met-office-global-deterministic-height}/description.md (100%) rename datasets/met-office/collection/{met-office-global-deterministic-height-level => met-office-global-deterministic-height}/template.json (100%) 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 rename datasets/met-office/collection/{met-office-global-deterministic-pressure-level => met-office-global-deterministic-pressure}/description.md (100%) 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 rename datasets/met-office/collection/{met-office-global-deterministic-whole-atmosphere-level => met-office-global-deterministic-whole-atmosphere}/description.md (100%) create mode 100644 datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json rename datasets/met-office/collection/{met-office-uk-deterministic-height-level => met-office-uk-deterministic-height}/description.md (100%) rename datasets/met-office/collection/{met-office-uk-deterministic-height-level => met-office-uk-deterministic-height}/template.json (100%) 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/datasets/met-office/collection/met-office-global-deterministic-height-level/description.md b/datasets/met-office/collection/met-office-global-deterministic-height/description.md similarity index 100% rename from datasets/met-office/collection/met-office-global-deterministic-height-level/description.md rename to datasets/met-office/collection/met-office-global-deterministic-height/description.md 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/template.json similarity index 100% rename from datasets/met-office/collection/met-office-global-deterministic-height-level/template.json rename to datasets/met-office/collection/met-office-global-deterministic-height/template.json 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 ca2a7e7e4..000000000 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface-level/template.json +++ /dev/null @@ -1,673 +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" - ] - } - ], - "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 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..a012a3d44 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/template.json @@ -0,0 +1,651 @@ +{ + "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": "", + "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-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json deleted file mode 100644 index f77d0ed65..000000000 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure-level/template.json +++ /dev/null @@ -1,186 +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": [ - [ - "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 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" -} \ No newline at end of file diff --git a/datasets/met-office/collection/met-office-global-deterministic-pressure-level/description.md b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md similarity index 100% rename from datasets/met-office/collection/met-office-global-deterministic-pressure-level/description.md rename to datasets/met-office/collection/met-office-global-deterministic-pressure/description.md 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..706a997a5 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/template.json @@ -0,0 +1,161 @@ +{ + "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": "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": [["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 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-level/template.json b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json deleted file mode 100644 index 96af004c4..000000000 --- a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/template.json +++ /dev/null @@ -1,244 +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": [ - [ - "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 diff --git a/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/description.md b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/description.md similarity index 100% rename from datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere-level/description.md rename to datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/description.md 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..88c875fd0 --- /dev/null +++ b/datasets/met-office/collection/met-office-global-deterministic-whole-atmosphere/template.json @@ -0,0 +1,219 @@ +{ + "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": "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" +} 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-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-height/template.json similarity index 100% rename from datasets/met-office/collection/met-office-uk-deterministic-height-level/template.json rename to datasets/met-office/collection/met-office-uk-deterministic-height/template.json 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 b835a7d59..000000000 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface-level/template.json +++ /dev/null @@ -1,511 +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" - ] - } - ], - "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 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..677e8265f --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/template.json @@ -0,0 +1,490 @@ +{ + "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": "", + "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-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json deleted file mode 100644 index 651918d3b..000000000 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure-level/template.json +++ /dev/null @@ -1,167 +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" - ] - } - ], - "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" -} \ 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..26b12a794 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/template.json @@ -0,0 +1,146 @@ +{ + "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" + }, + { + "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"] + } + ], + "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-level/template.json b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json deleted file mode 100644 index f09f21567..000000000 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere-level/template.json +++ /dev/null @@ -1,201 +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" - ] - } - ], - "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" -} \ 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..6be2cbee2 --- /dev/null +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/template.json @@ -0,0 +1,180 @@ +{ + "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" + }, + { + "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"] + } + ], + "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 6e705afd0b7a41eecd17985283e034f8098fa992 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 16 Dec 2025 14:53:23 +0000 Subject: [PATCH 18/42] updated uk and global height collections --- .../description.md | 2 +- .../template.json | 25 +-- .../description.md | 2 +- .../template.json | 173 +++++++++++++----- 4 files changed, 136 insertions(+), 66 deletions(-) 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 index dd7a01d1b..f39decfc9 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -8,7 +8,7 @@ Available height levels, in metres (m) above ground, are: ## Timesteps The following timesteps are available: -* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every hour from 0 to 54 hours * every 3 hours from 57 to 144 hours * every 6 hours from 150 to 168 hours 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 f5f568b4b..674033728 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 @@ -8,17 +8,13 @@ "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", + "title": "Height levels collection Met Office Global 10km deterministic weather forecast", "assets": { "thumbnail": { "href": "", @@ -26,7 +22,7 @@ "roles": [ "thumbnail" ], - "title": "Met Office Global Deterministic Height Level Thumbnail" + "title": "Height levels collection Met Office Global 10km deterministic weather forecast thumbnail" } }, "extent": { @@ -110,27 +106,12 @@ 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, 3500, 3750, 4000, 4500, 5000, 5500, 6000 ] - }, - "1H_timesteps": { - "type": "temporal", - "extent": [0, 54], - "step": "PT01H" - }, - "3H_timesteps": { - "type": "temporal", - "extent": [57, 144], - "step": "PT03H" - }, - "6H_timesteps": { - "type": "temporal", - "extent": [150, 168], - "step": "PT06H" } }, "cube:variables": { "cloud_volume_fraction_in_atmosphere_layer": { "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels. The levels are height above ground.", - "dimensions": ["latitude", "longitude", "height", "1H_timesteps", "3H_timesteps", "6H_timesteps"], + "dimensions": ["latitude", "longitude", "height"], "type": "data", "unit": "1" } diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md index 80a97ed54..f141014f2 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md @@ -13,7 +13,7 @@ The forecast covers the UK and Ireland, with the following latitude and longitud ## Timesteps The following time steps are available: -* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +* every hour from 0 to 54 hours * every 3 hours from 57 to 120 hours ## Update frequency 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 ff6856a2e..d36cdbfde 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 @@ -75,56 +75,145 @@ ] } ], - "cube:variables": { + "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", + "item_assets": { "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" + "type": "application/netcdf", + "title": "Cloud amount on height levels", + "roles": ["data"], + "forecast:variable": "", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "height": { + "type": "spatial", + "values": [ + 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, + 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, + 3500, 3750, 4000, 4500, 5000, 5500, 6000 + ] + } } }, "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" - } + "type": "application/netcdf", + "title": "Temperature on height levels", + "roles": ["data"], + "forecast:variable": "", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "height": { + "type": "spatial", + "values": [ + 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, + 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, + 3500, 3750, 4000, 4500, 5000, 5500, 6000 + ] + } + } }, "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" - } + "type": "application/netcdf", + "title": "Wind direction on height levels", + "roles": ["data"], + "forecast:variable": "", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "height": { + "type": "spatial", + "values": [ + 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, + 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, + 3500, 3750, 4000, 4500, 5000, 5500, 6000 + ] + } + } }, "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" + "type": "application/netcdf", + "title": "Wind speed on height levels", + "roles": ["data"], + "forecast:variable": "", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "height": { + "type": "spatial", + "values": [ + 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, + 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, + 3500, 3750, 4000, 4500, 5000, 5500, 6000 + ] + } + } + }, + "cube:variables": { + "cloud_amount_on_height_levels": { + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", + "dimensions": ["latitude", "longitude", "height"], + "type": "data", + "unit": "1" + }, + "temperature_on_height_levels": { + "description": "Air temperature on height levels.", + "dimensions": ["latitude", "longitude", "height"], + "type": "data", + "unit": "K" + }, + "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": ["latitude", "longitude", "height"], + "type": "data", + "unit": "degrees" + }, + "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": ["latitude", "longitude", "height"], + "type": "data", + "unit": "m/s" } } - }, - "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 From fc12847bbb6bc6064f3cc777a3b60266c958721c Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 16 Dec 2025 14:54:18 +0000 Subject: [PATCH 19/42] typo in uk height collection --- .../collection/met-office-uk-deterministic-height/template.json | 1 + 1 file changed, 1 insertion(+) 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 d36cdbfde..139fcebe1 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 @@ -216,4 +216,5 @@ "unit": "m/s" } } + } } \ No newline at end of file From 2040533f72332a7136dda396faf964343c549193 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 16 Dec 2025 14:57:03 +0000 Subject: [PATCH 20/42] add CF standard name to UK Height collection assets --- .../template.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 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 139fcebe1..3470745b6 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 @@ -90,7 +90,7 @@ "type": "application/netcdf", "title": "Cloud amount on height levels", "roles": ["data"], - "forecast:variable": "", + "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer", "cube:dimensions": { "latitude": { "type": "spatial", @@ -116,7 +116,7 @@ "type": "application/netcdf", "title": "Temperature on height levels", "roles": ["data"], - "forecast:variable": "", + "forecast:variable": "air_temperature", "cube:dimensions": { "latitude": { "type": "spatial", @@ -142,7 +142,7 @@ "type": "application/netcdf", "title": "Wind direction on height levels", "roles": ["data"], - "forecast:variable": "", + "forecast:variable": "wind_from_direction", "cube:dimensions": { "latitude": { "type": "spatial", @@ -168,7 +168,7 @@ "type": "application/netcdf", "title": "Wind speed on height levels", "roles": ["data"], - "forecast:variable": "", + "forecast:variable": "wind_speed", "cube:dimensions": { "latitude": { "type": "spatial", @@ -191,25 +191,25 @@ } }, "cube:variables": { - "cloud_amount_on_height_levels": { + "cloud_volume_fraction_in_atmosphere_layer": { "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", "dimensions": ["latitude", "longitude", "height"], "type": "data", "unit": "1" }, - "temperature_on_height_levels": { + "air_temperature": { "description": "Air temperature on height levels.", "dimensions": ["latitude", "longitude", "height"], "type": "data", "unit": "K" }, - "wind_direction_on_height_levels": { + "wind_from_direction": { "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": ["latitude", "longitude", "height"], "type": "data", "unit": "degrees" }, - "wind_speed_on_height_levels": { + "wind_speed": { "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": ["latitude", "longitude", "height"], "type": "data", From cbf7d304fdde60ac1b152bc27eebd34cdbd60b2b Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 16 Dec 2025 15:36:03 +0000 Subject: [PATCH 21/42] refactor global pressure collection --- .../template.json | 382 +++++++++++++----- .../template.json | 62 +-- 2 files changed, 311 insertions(+), 133 deletions(-) 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 706a997a5..aae17854b 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 @@ -8,23 +8,19 @@ "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", + "title": "Pressure levels collection Met Office Global 10km deterministic weather forecast", "assets": { "thumbnail": { "href": "", "type": "image/png", "roles": ["thumbnail"], - "title": "Met Office Global Deterministic Pressure Level Thumbnail" + "title": "Pressure levels collection Met Office Global 10km deterministic weather forecast thumbnail" } }, "extent": { @@ -50,104 +46,6 @@ } ], "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": "", @@ -157,5 +55,279 @@ ], "msft:storage_account": "metofficeeuwest", "msft:short_description": "Met Office Global Deterministic Pressure Level", - "msft:region": "westeurope" + "msft:region": "westeurope", + "item_assets": { + "geopotential_height_on_pressure_levels": { + "type": "application/netcdf", + "title": "Geopotential height on pressure levels", + "roles": ["data"], + "forecast:variable": "geopotential_height", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "geopotential_height": { + "description": "Geopotential height of the pressure levels. Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "m" + } + } + }, + "height_ASL_on_pressure_levels": { + "type": "application/netcdf", + "title": "Height Above Sea Level on pressure levels", + "roles": ["data"], + "forecast:variable": "geopotential_height", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "geopotential_height": { + "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": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "m" + } + } + }, + "relative_humidity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Relative humidity on pressure levels", + "roles": ["data"], + "forecast:variable": "relative_humidity", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "relative_humidity": { + "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) on pressure levels", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "1" + } + } + }, + "temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Air temperature on pressure levels", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "K" + } + } + }, + "wet_bulb_potential_temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wet bulb potential temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "wet_bulb_potential_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 92500, 85000, 70000 + ] + } + }, + "cube:variables": { + "wet_bulb_potential_temperature": { + "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": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "K" + } + } + }, + "wind_direction_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind direction on pressure levels", + "roles": ["data"], + "forecast:variable": "wind_from_direction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "wind_from_direction": { + "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": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "degrees" + } + } + }, + "wind_speed_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind speed on pressure levels", + "roles": ["data"], + "forecast:variable": "wind_speed", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "wind_speed": { + "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": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "m/s" + } + } + }, + "wind_vertical_velocity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind vertical velocity on pressure levels", + "roles": ["data"], + "forecast:variable": "upward_air_velocity", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [70000] + } + }, + "cube:variables": { + "upward_air_velocity": { + "description": "Speed of the vertical component of the air motion at a pressure levels. Upwards is positive and downwards is negative.", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "m/s" + } + } + } + } } 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 3470745b6..b8ef2be22 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 @@ -110,7 +110,15 @@ 3500, 3750, 4000, 4500, 5000, 5500, 6000 ] } - } + }, + "cube:variables": { + "cloud_volume_fraction_in_atmosphere_layer": { + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", + "dimensions": ["latitude", "longitude", "height"], + "type": "data", + "unit": "1" + } + } }, "temperature_on_height_levels": { "type": "application/netcdf", @@ -136,7 +144,15 @@ 3500, 3750, 4000, 4500, 5000, 5500, 6000 ] } - } + }, + "cube:variables": { + "air_temperature": { + "description": "Air temperature on height levels.", + "dimensions": ["latitude", "longitude", "height"], + "type": "data", + "unit": "K" + } + } }, "wind_direction_on_height_levels": { "type": "application/netcdf", @@ -162,7 +178,15 @@ 3500, 3750, 4000, 4500, 5000, 5500, 6000 ] } - } + }, + "cube:variables": { + "wind_from_direction": { + "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": ["latitude", "longitude", "height"], + "type": "data", + "unit": "degrees" + } + } }, "wind_speed_on_height_levels": { "type": "application/netcdf", @@ -188,32 +212,14 @@ 3500, 3750, 4000, 4500, 5000, 5500, 6000 ] } - } - }, - "cube:variables": { - "cloud_volume_fraction_in_atmosphere_layer": { - "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", - "dimensions": ["latitude", "longitude", "height"], - "type": "data", - "unit": "1" }, - "air_temperature": { - "description": "Air temperature on height levels.", - "dimensions": ["latitude", "longitude", "height"], - "type": "data", - "unit": "K" - }, - "wind_from_direction": { - "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": ["latitude", "longitude", "height"], - "type": "data", - "unit": "degrees" - }, - "wind_speed": { - "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": ["latitude", "longitude", "height"], - "type": "data", - "unit": "m/s" + "cube:variables": { + "wind_speed": { + "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": ["latitude", "longitude", "height"], + "type": "data", + "unit": "m/s" + } } } } From 2176cbd0428f85b5a442ad13d00b52da6cb0f035 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 16 Dec 2025 15:51:43 +0000 Subject: [PATCH 22/42] refactor UK Pressure Collection --- .../template.json | 303 ++++++++++++++---- 1 file changed, 234 insertions(+), 69 deletions(-) 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 26b12a794..d79353d3d 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 @@ -54,93 +54,258 @@ "roles": ["host", "processor"] } ], - "cube:variables": { + "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", + "item_assets": { "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" - } + "type": "application/netcdf", + "title": "Geopotential height on pressure levels", + "roles": ["data"], + "forecast:variable": "geopotential_height", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "geopotential_height": { + "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "unit": "m", + "type": "data" + } }, "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" + "type": "application/netcdf", + "title": "Height Above Sea Level on pressure levels", + "roles": ["data"], + "forecast:variable": "geopotential_height", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "geopotential_height": { + "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "unit": "m", + "type": "data" + } } }, "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" + "type": "application/netcdf", + "title": "Relative humidity on pressure levels", + "roles": ["data"], + "forecast:variable": "relative_humidity", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "relative_humidity": { + "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "unit": "1", + "type": "data" + } } }, "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" + "type": "application/netcdf", + "title": "Temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Air temperature on pressure levels", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "K" + } + } } }, "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" + "type": "application/netcdf", + "title": "Wet bulb potential temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "wet_bulb_potential_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 92500, 85000, 70000 + ] + } + }, + "cube:variables": { + "wet_bulb_potential_temperature": { + "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": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Wind direction on pressure levels", + "roles": ["data"], + "forecast:variable": "wind_from_direction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "wind_from_direction": { + "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": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "degrees" + } } }, "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" + "type": "application/netcdf", + "title": "Wind speed on pressure levels", + "roles": ["data"], + "forecast:variable": "wind_speed", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, + 3000, 2000, 1000 + ] + } + }, + "cube:variables": { + "wind_speed": { + "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": ["latitude", "longitude", "pressure_levels"], + "type": "data", + "unit": "m/s" + } } } - }, - "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" + } } From 949116d5193bf7f0fbbc5ae6998fe7cd766c1430 Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Tue, 16 Dec 2025 16:33:53 +0000 Subject: [PATCH 23/42] refactor UK and Gloal Pressure and Whole Atmosphere collections --- .../template.json | 1 - .../template.json | 621 ++++++++++++++---- .../description.md | 7 +- .../template.json | 479 +++++++++++--- 4 files changed, 883 insertions(+), 225 deletions(-) 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 aae17854b..25dea3458 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 @@ -45,7 +45,6 @@ "roles": ["host", "processor"] } ], - "description": "The Met Office Global Deterministic Pressure Level dataset provides a composite of weather parameters generated for specific atmospheric pressure levels.", "stac_version": "1.0.0", "msft:group_id": "metoffice", "msft:container": "", 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 88c875fd0..04b8594b3 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 @@ -8,23 +8,19 @@ "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", + "title": "Whole Atmosphere collection Met Office Global 10km deterministic weather forecast", "assets": { "thumbnail": { "href": "", "type": "image/png", "roles": ["thumbnail"], - "title": "Met Office Global Deterministic Whole Atmosphere Level Thumbnail" + "title": "Whole Atmosphere collection Met Office Global 10km deterministic weather forecast thumbnail" } }, "extent": { @@ -49,171 +45,534 @@ "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": { + "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", + "item_assets": { "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" + "type": "application/netcdf", + "title": "CAPE mixed layer lowest 500m", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_available_potential_energy", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "atmosphere_convective_available_potential_energy": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "CAPE most unstable below 500hPa", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_available_potential_energy", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "atmosphere_convective_available_potential_energy": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "CAPE surface", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "atmosphere_convective_available_potential_energy_wrt_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "CIN mixed layer lowest 500m", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_inhibition", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "atmosphere_convective_inhibition": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "CIN most unstable below 500hPa", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_inhibition", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "atmosphere_convective_inhibition": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "CIN surface", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_inhibition_wrt_surface", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "atmosphere_convective_inhibition_wrt_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount below 1000ft ASL", + "roles": [ + "data" + ], + "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl": { + "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of high cloud", + "roles": [ + "data" + ], + "forecast:variable": "high_type_cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "high_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of low cloud", + "roles": [ + "data" + ], + "forecast:variable": "low_type_cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "low_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of medium cloud", + "roles": [ + "data" + ], + "forecast:variable": "medium_type_cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "medium_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of total cloud", + "roles": [ + "data" + ], + "forecast:variable": "cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of total convective cloud", + "roles": [ + "data" + ], + "forecast:variable": "convective_cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "convective_cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Pressure at tropopause", + "roles": [ + "data" + ], + "forecast:variable": "tropopause_air_pressure", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "tropopause_air_pressure": { + "description": "Air pressure at the tropopause.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "Pa" + } } }, "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" + "type": "application/netcdf", + "title": "Temperature at tropopause", + "roles": [ + "data" + ], + "forecast:variable": "tropopause_air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "tropopause_air_temperature": { + "description": "Air temperature at the tropopause.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } } - }, - "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-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index f77ba483a..c8c3abaeb 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -9,8 +9,11 @@ The forecast covers the UK and Ireland, with the following latitude and longitud ## Timesteps The following time steps are available: -* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) -* every 3 hours from 57 to 120 hours +* every hour from 0 to 54 hours +* every 3 hours from 57 to 120 hours + +Exceptions: +* Hourly lightning flash accumulation (lightning_flash_accumulation-PT01H) is only available every hour from 0 to 54 hours ## Update frequency There are three lengths of model run, each with its own update frequency: 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 6be2cbee2..e4b202ee1 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 @@ -14,13 +14,13 @@ "title": "Met Office Dataset Documentation" } ], - "title": "Whole-atmosphere collection Met Office UKV 2km deterministic forecast", + "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" + "title": "Whole Atmosphere collection Met Office UKV 2km deterministic forecast thumbnail" } }, "extent": { @@ -55,126 +55,423 @@ "roles": ["host", "processor"] } ], - "cube:variables": { + "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", + "item_assets": { "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" + "type": "application/netcdf", + "title": "CAPE most unstable below 500hPa", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_available_potential_energy", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "atmosphere_convective_available_potential_energy": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "CAPE surface", + "roles": [ + "data" + ], + "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "atmosphere_convective_available_potential_energy_wrt_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "J/kg" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount below 1000ft ASL", + "roles": [ + "data" + ], + "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl": { + "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of high cloud", + "roles": [ + "data" + ], + "forecast:variable": "high_type_cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "high_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of low cloud", + "roles": [ + "data" + ], + "forecast:variable": "low_type_cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "low_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of medium cloud", + "roles": [ + "data" + ], + "forecast:variable": "medium_type_cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "medium_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Cloud amount of total cloud", + "roles": [ + "data" + ], + "forecast:variable": "cloud_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "cloud_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Height AGL at cloud base where cloud cover 2p5 oktas", + "roles": [ + "data" + ], + "forecast:variable": "cloud_base_height_2p5_oktas", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "cloud_base_height_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Height AGL at freezing level", + "roles": [ + "data" + ], + "forecast:variable": "freezing_level_height", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "freezing_level_height": { + "description": "Height of the 0 degrees celsius isotherm (freezing level) above the surface (ground).", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Height AGL at wet bulb freezing level", + "roles": [ + "data" + ], + "forecast:variable": "wet_bulb_freezing_level_height", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "wet_bulb_freezing_level_height": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly lightning flash accumulation", + "roles": [ + "data" + ], + "forecast:variable": "number_of_lightning_flashes_per_unit_area", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "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", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "count/m2" + } } } - }, - "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 611347afa5c612efa12b1d32571f26a2a47e969d Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Wed, 17 Dec 2025 15:53:14 +0000 Subject: [PATCH 24/42] refactor near surface collections for UK and Global --- .../description.md | 41 +- .../template.json | 2088 +++++++++++++---- .../description.md | 25 +- .../template.json | 1529 +++++++++--- .../description.md | 2 +- 5 files changed, 2910 insertions(+), 775 deletions(-) diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md index 9ad6da66b..37c0a9d4f 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md @@ -2,12 +2,49 @@ This collection offers 48 parameters at near-surface level from the Met Office g The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. +## Data collection height +There are 3 forecast heights used within the near-surface this collection: +* Surface: the default collection height +* Screen level: 1.5m above the surface +* Wind parameters: 10m above the surface + ## Timesteps -The following timesteps are available: -* every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) +For most parameters, the following time steps are available, see exceptions below: +* every hour from 0 to 54 hours * every 3 hours from 57 to 144 hours * every 6 hours from 150 to 168 hours +Exceptions (for `accumulation`, `min`, `max` and `mean` parameters): +* Height of orography (height_of_orography) is only available at 0H +* Hourly latent heat flux at surface mean (latent_heat_flux_at_surface_mean-PT01H) is only available every hour from 1 to 54 hours +* 3H latent heat flux at surface mean (latent_heat_flux_at_surface_mean-PT03H) is only available every three hours from 57 to 144 hours +* 6H latent heat flux at surface mean (latent_heat_flux_at_surface_mean-PT06H) is only available every six hours from 150 to 168 hours +* Hourly precipitation accumulation (precipitation_accumulation-PT01H) is only available every hour from 1 to 48 hours +* 3H precipitation accumulation (precipitation_accumulation-PT03H) is only available every three hours from 51 to 144 hours +* 6H precipitation accumulation (precipitation_accumulation-PT06H) is only available every six hours from 150 to 168 hours +* Radiation flux in uv downward at surface (radiation_flux_in_uv_downward_at_surface) has three hourly timesteps from 0 to 144 hours +* Hourly rainfall accumulation (rainfall_accumulation-PT01H) is only available every hour from 1 to 54 hours +* 3H rainfall accumulation (rainfall_accumulation-PT03H) is only available every three hours from 57 to 144 hours +* 6H rainfall accumulation (rainfall_accumulation-PT06H) is only available every six hours from 150 to 168 hours +* Hourly rainfall rate from convection max (rainfall_rate_from_convection_max-PT01H) is only available every hour from 1 to 54 hours +* 3H rainfall rate from convection max (rainfall_rate_from_convection_max-PT03H) is only available every three hours from 57 to 144 hours +* 6H rainfall rate from convection max (rainfall_rate_from_convection_max-PT06H) is only available every six hours from 150 to 168 hours +* Hourly snowfall rate from convection max (snowfall_rate_from_convection_max-PT01H) is only available every hour from 1 to 54 hours +* 3H snowfall rate from convection max (snowfall_rate_from_convection_max-PT03H) is only available every three hours from 57 to 144 hours +* 6H snowfall rate from convection max (snowfall_rate_from_convection_max-PT06H) is only available every six hours from 150 to 168 hours +* Hourly snowfall rate from convection mean (snowfall_rate_from_convection_mean-PT01H) is only available every hour from 1 to 54 hours +* 3H snowfall rate from convection mean (snowfall_rate_from_convection_mean-PT03H) is only available every three hours from 57 to 144 hours +* 6H snowfall rate from convection mean (snowfall_rate_from_convection_mean-PT06H) is only available every six hours from 150 to 168 hours +* Hourly temperature at screen level max (temperature_at_screen_level_max-PT01H) is only available every hour from 1 to 54 hours +* 3H temperature at screen level max (temperature_at_screen_level_max-PT03H) is only available every three hours from 57 to 144 hours +* 6H temperature at screen level max (temperature_at_screen_level_max-PT06H) is only available every six hours from 150 to 168 hours +* Hourly temperature at screen level min (temperature_at_screen_level_min-PT01H) is only available every hour from 1 to 54 hours +* 3H remperature at screen level min (temperature_at_screen_level_min-PT03H) is only available every three hours from 57 to 144 hours +* 6H temperature at screen level min (temperature_at_screen_level_min-PT06H) is only available every six hours from 150 to 168 hours +* Hourly wind gust at 10m max (wind_gust_at_10m_max-PT01H) is only available every hour from 1 to 54 hours +* 3H wind gust at 10m max (wind_gust_at_10m_max-PT03H) is only available every three hours from 57 to 144 hours +* 6H wind gust at 10m max (wind_gust_at_10m_max-PT06H) is only available every six hours from 150 to 168 hours + ## Update Frequency The model is run four times each day, with forecast reference times of 00:00, 06:00, 12:00 and 18:00 (UTC). 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 a012a3d44..28ea07684 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 @@ -60,592 +60,1792 @@ "roles": ["host", "processor"] } ], - "cube:variables": { + "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", + "item_assets": { "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" + "type": "application/netcdf", + "title": "Fog fraction at screen level", + "roles": [ + "data" + ], + "forecast:variable": "fog_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "fog_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Height of orography", + "roles": [ + "data" + ], + "forecast:variable": "surface_altitude", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_altitude": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly latent heat flux at surface mean", + "roles": [ + "data" + ], + "forecast:variable": "surface_upward_latent_heat_flux", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_upward_latent_heat_flux": { + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "3H latent heat flux at surface mean", + "roles": [ + "data" + ], + "forecast:variable": "surface_upward_latent_heat_flux", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_upward_latent_heat_flux": { + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "6H latent heat flux at surface mean", + "roles": [ + "data" + ], + "forecast:variable": "surface_upward_latent_heat_flux", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_upward_latent_heat_flux": { + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly precipitation accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_precipitation_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_precipitation_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "3H precipitation accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_precipitation_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_precipitation_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "6H precipitation accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_precipitation_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_precipitation_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Precipitation rate", + "roles": [ + "data" + ], + "forecast:variable": "lwe_precipitation_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Pressure at mean sea level", + "roles": [ + "data" + ], + "forecast:variable": "air_pressure_at_sea_level", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_pressure_at_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "Pa" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in longwave downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_downwelling_longwave_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_downwelling_longwave_flux_in_air": { + "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in shortwave direct downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_direct_downwelling_shortwave_flux_in_air": { + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in shortwave total downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_downwelling_shortwave_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_downwelling_shortwave_flux_in_air": { + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in uv downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_downwelling_ultraviolet_flux_in_air": { + "description": "Ultaviolet radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly rainfall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "thickness_of_rainfall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "thickness_of_rainfall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "3H rainfall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "thickness_of_rainfall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "thickness_of_rainfall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "6H rainfall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "thickness_of_rainfall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "thickness_of_rainfall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Rainfall rate", + "roles": [ + "data" + ], + "forecast:variable": "rainfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Rainfall rate from convection", + "roles": [ + "data" + ], + "forecast:variable": "convective_rainfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "convective_rainfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly rainfall rate from convection max", + "roles": [ + "data" + ], + "forecast:variable": "convective_rainfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "convective_rainfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "3H rainfall rate from convection max", + "roles": [ + "data" + ], + "forecast:variable": "convective_rainfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "convective_rainfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "6H rainfall rate from convection max", + "roles": [ + "data" + ], + "forecast:variable": "convective_rainfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "convective_rainfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Relative humidity at screen level", + "roles": [ + "data" + ], + "forecast:variable": "relative_humidity", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "relative_humidity": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Snow depth water equivalent", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_surface_snow_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_surface_snow_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Snowfall rate", + "roles": [ + "data" + ], + "forecast:variable": "lwe_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Snowfall rate from convection", + "roles": [ + "data" + ], + "forecast:variable": "lwe_convective_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly snowfall rate from convection max", + "roles": [ + "data" + ], + "forecast:variable": "lwe_convective_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "3H snowfall rate from convection max", + "roles": [ + "data" + ], + "forecast:variable": "lwe_convective_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "6H snowfall rate from convection max", + "roles": [ + "data" + ], + "forecast:variable": "lwe_convective_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly snowfall rate from convection mean", + "roles": [ + "data" + ], + "forecast:variable": "lwe_convective_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "3H snowfall rate from convection mean", + "roles": [ + "data" + ], + "forecast:variable": "lwe_convective_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "6H snowfall rate from convection mean", + "roles": [ + "data" + ], + "forecast:variable": "lwe_convective_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Temperature at screen level", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Instantaneous air temperature at screen level (1.5m).", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly temperature at screen level max", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "3H temperature at screen level max", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "6H temperature at screen level max", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly temperature at screen level min", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "3H remperature at screen level min", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "6H temperature at screen level min", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Temperature at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "surface_temperature": { + "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Dew point temperature at screen level", + "roles": [ + "data" + ], + "forecast:variable": "dew_point_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "dew_point_temperature": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Visibility at screen level", + "roles": [ + "data" + ], + "forecast:variable": "visibility_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "visibility_in_air": { + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Wind direction at 10m", + "roles": [ + "data" + ], + "forecast:variable": "wind_from_direction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "wind_from_direction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "degrees" + } } }, "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" + "type": "application/netcdf", + "title": "Wind gust at 10m", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed_of_gust", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly wind gust at 10m max", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed_of_gust", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "3H wind gust at 10m max", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed_of_gust", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "6H wind gust at 10m max", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed_of_gust", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Wind speed at 10m", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + -90, + 90 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + -180, + 180 + ] + } + }, + "cube:variables": { + "wind_speed": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } } - }, - "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-uk-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md index a2e099cdd..b4d6e3342 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md @@ -9,10 +9,33 @@ The forecast covers the UK and Ireland, with the following latitude and longitud * Northeast: 61.6102°N, 4.3408°E * Southeast: 49.0594°N, 2.4654°E +## Data collection height +There are 3 forecast heights used within the near-surface this collection: +* Surface: the default collection height +* Screen level: 1.5m above the surface +* Wind parameters: 10m above the surface + ## Timesteps -For most parameters, the following time steps are available (see parameter table for exceptions): +For most parameters, the following time steps are available, see exceptions below: * every hour from 0 to 54 hours * every 3 hours from 57 to 120 hours + +Exceptions (for `rate`, `accumulation`, `min` and `max` parameters): +* Hourly hail fall accumulation (hail_fall_accumulation-PT01H) is only available every hour from 1 to 54 hours +* Hail fall rate (hail_fall_rate) has 15 minutely timesteps from 0 to 54 hours +* Hourly precipitation accumulation (precipitation_accumulation-PT01H) is only available every hour from 1 to 54 hours +* 3H precipitation accumulation (precipitation_accumulation-PT03H) is only available every three hours from 57 to 120 hours +* Precipitation rate (precipitation_rate) has 15 minutely timesteps from 0 to 54 hours +* Hourly rainfall accumulation (rainfall_accumulation-PT01H) is only available every hour from 1 to 54 hours +* 3H rainfall accumulation (rainfall_accumulation-PT03H) is only available every three hours from 57 to 120 hours +* Rainfall rate (rainfall_rate) has 15 minutely timesteps from 0 to 54 hours +* Hourly snowfall accumulation (snowfall_accumulation-PT01H) is only available every hour from 1 to 54 hours +* 3H snowfall accumulation (snowfall_accumulation-PT03H) is only available every three hours from 57 to 120 hours +* Snowfall rate (snowfall_rate) has 15 minutely timesteps from 0 to 54 hours +* Hourly temperature at screen level maximum (temperature_at_screen_level_max-PT01H) is only available every hour from 1 to 120 hours +* Hourly temperature at screen level minimum (temperature_at_screen_level_min-PT01H) is only available every hour from 1 to 120 hours +* Hourly wind gust at 10m maximum (wind_gust_at_10m_max-PT01H) is only available every hour from 1 to 54 hours +* 3H wind gust at 10m maximum(wind_gust_at_10m_max-PT03H) is only available every three hours from 57 to 120 hours ## Update frequency There are three lengths of model run, each with its own update frequency: 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 677e8265f..138ff8e45 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 @@ -55,436 +55,1311 @@ "roles": ["host", "processor"] } ], - "cube:variables": { + "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", + "item_assets": { "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" + "type": "application/netcdf", + "title": "Fog fraction at screen level", + "roles": [ + "data" + ], + "forecast:variable": "fog_area_fraction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "fog_area_fraction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly hail fall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_graupel_and_hail_fall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_graupel_and_hail_fall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Hail fall rate", + "roles": [ + "data" + ], + "forecast:variable": "lwe_graupel_and_hail_fall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_graupel_and_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Height of orography", + "roles": [ + "data" + ], + "forecast:variable": "surface_altitude", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_altitude": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Landsea mask", + "roles": [ + "data" + ], + "forecast:variable": "land_binary_mask", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "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.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly precipitation accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_precipitation_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_precipitation_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "3H precipitation accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_precipitation_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_precipitation_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Precipitation rate", + "roles": [ + "data" + ], + "forecast:variable": "lwe_precipitation_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Pressure at mean sea level", + "roles": [ + "data" + ], + "forecast:variable": "air_pressure_at_sea_level", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "air_pressure_at_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "Pa" + } } }, "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" + "type": "application/netcdf", + "title": "Pressure at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_air_pressure", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_air_pressure": { + "description": "Air pressure at the surface (lower boundary of the atmosphere).", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "Pa" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in longwave downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_downwelling_longwave_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_downwelling_longwave_flux_in_air": { + "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in shortwave diffuse downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_diffusive_downwelling_shortwave_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_diffusive_downwelling_shortwave_flux_in_air": { + "description": "Diffuse component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in shortwave direct downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_direct_downwelling_shortwave_flux_in_air": { + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in shortwave total downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_downwelling_shortwave_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_downwelling_shortwave_flux_in_air": { + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Radiation flux in uv downward at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_downwelling_ultraviolet_flux_in_air": { + "description": "Ultraviolet radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly rainfall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "thickness_of_rainfall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "thickness_of_rainfall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "3H rainfall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "thickness_of_rainfall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "thickness_of_rainfall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Rainfall rate", + "roles": [ + "data" + ], + "forecast:variable": "rainfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Relative humidity at screen level", + "roles": [ + "data" + ], + "forecast:variable": "relative_humidity", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "relative_humidity": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "1" + } } }, "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" + "type": "application/netcdf", + "title": "Sensible heat flux at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_upward_sensible_heat_flux", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_upward_sensible_heat_flux": { + "description": "Exchange of heat between the surface and the air by motion of air, also called turbulent heat flux.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "W/m2" + } } }, "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" + "type": "application/netcdf", + "title": "Snow depth water equivalent", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_surface_snow_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_surface_snow_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly snowfall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_snowfall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_snowfall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "3H snowfall accumulation", + "roles": [ + "data" + ], + "forecast:variable": "lwe_thickness_of_snowfall_amount", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_thickness_of_snowfall_amount": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Snowfall rate", + "roles": [ + "data" + ], + "forecast:variable": "lwe_snowfall_rate", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "lwe_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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Temperature at screen level", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Instantaneous air temperature at screen level (1.5m).", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly temperature at screen level maximum", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly temperature at screen level minimum", + "roles": [ + "data" + ], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "air_temperature": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Temperature at surface", + "roles": [ + "data" + ], + "forecast:variable": "surface_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "surface_temperature": { + "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Dew point temperature at screen level", + "roles": [ + "data" + ], + "forecast:variable": "dew_point_temperature", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "dew_point_temperature": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "K" + } } }, "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" + "type": "application/netcdf", + "title": "Visibility at screen level", + "roles": [ + "data" + ], + "forecast:variable": "visibility_in_air", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "visibility_in_air": { + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m" + } } }, "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" + "type": "application/netcdf", + "title": "Wind direction at 10m", + "roles": [ + "data" + ], + "forecast:variable": "wind_from_direction", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "wind_from_direction": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "degrees" + } } }, "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" + "type": "application/netcdf", + "title": "Wind gust at 10m", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed_of_gust", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Hourly wind gust at 10m maximum", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed_of_gust", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "3H wind gust at 10m maximum", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed_of_gust", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } }, "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" + "type": "application/netcdf", + "title": "Wind speed at 10m", + "roles": [ + "data" + ], + "forecast:variable": "wind_speed", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [ + 50, + 62 + ] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [ + 5, + 15 + ] + } + }, + "cube:variables": { + "wind_speed": { + "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": [ + "latitude", + "longitude" + ], + "type": "data", + "unit": "m/s" + } } } - }, - "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-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index c8c3abaeb..86430f98f 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -13,7 +13,7 @@ The following time steps are available: * every 3 hours from 57 to 120 hours Exceptions: -* Hourly lightning flash accumulation (lightning_flash_accumulation-PT01H) is only available every hour from 0 to 54 hours +* Hourly lightning flash accumulation (lightning_flash_accumulation-PT01H) is only available every hour from 1 to 54 hours ## Update frequency There are three lengths of model run, each with its own update frequency: From aefb3f89a0ac0a00d81e3f241e65ab54993abd59 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Thu, 18 Dec 2025 11:52:04 -0700 Subject: [PATCH 25/42] fix: move datacube to the collection level --- .../template.json | 316 ++- .../template.json | 2066 ++++------------- .../template.json | 527 ++--- .../template.json | 742 +++--- .../template.json | 469 ++-- .../template.json | 1643 ++++--------- .../template.json | 412 ++-- .../template.json | 614 ++--- datasets/met-office/scripts/cleanup.py | 232 ++ 9 files changed, 2647 insertions(+), 4374 deletions(-) create mode 100644 datasets/met-office/scripts/cleanup.py 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 674033728..b864b6be3 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,122 +1,200 @@ { - "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": "Height levels collection Met Office Global 10km deterministic weather forecast", - "assets": { - "thumbnail": { - "href": "", - "type": "image/png", - "roles": [ - "thumbnail" - ], - "title": "Height levels collection Met Office Global 10km deterministic weather forecast 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": "Height levels collection Met Office Global 10km deterministic weather forecast", + "assets": { + "thumbnail": { + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-height.jpg", + "type": "image/jpeg", + "roles": ["thumbnail"], + "title": "Height levels collection Met Office Global 10km deterministic weather forecast thumbnail" + } + }, + "extent": { + "spatial": { + "bbox": [[-180, -90, 180, 90]] }, - "license": "proprietary", - "keywords": [ - "Met Office", - "Weather", - "Forecast", - "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" - ] - } - ], - "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", - "item_assets": { - "cloud_amount_on_height_levels": { - "type": "application/netcdf", - "title": "Cloud amount on height levels", - "roles": ["data"], - "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "height": { - "type": "spatial", - "values": [ - 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, - 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, - 3500, 3750, 4000, 4500, 5000, 5500, 6000 - ] - } - }, - "cube:variables": { - "cloud_volume_fraction_in_atmosphere_layer": { - "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels. The levels are height above ground.", - "dimensions": ["latitude", "longitude", "height"], - "type": "data", - "unit": "1" - } - } - } - } - -} \ No newline at end of file + "temporal": { + "interval": [["2023-12-15T00:00:00Z", null]] + } + }, + "license": "proprietary", + "keywords": ["Met Office", "Weather", "Forecast", "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"] + } + ], + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "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": "ukmoeuwest", + "msft:short_description": "Met Office Global Deterministic Height Level", + "msft:region": "westeurope", + "item_assets": { + "cloud_amount_on_height_levels": { + "type": "application/netcdf", + "title": "Cloud amount on height levels", + "roles": ["data"], + "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "height": { + "type": "spatial", + "values": [ + 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, + 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, 3500, 3750, + 4000, 4500, 5000, 5500, 6000 + ] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H", + "PT123H", + "PT126H", + "PT129H", + "PT132H", + "PT135H", + "PT138H", + "PT141H", + "PT144H", + "PT150H", + "PT156H", + "PT162H", + "PT168H" + ] + } + }, + "cube:variables": { + "cloud_volume_fraction_in_atmosphere_layer": { + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels. The levels are height above ground.", + "dimensions": [ + "latitude", + "longitude", + "height", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + } + } +} 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 28ea07684..9fcc7ca4f 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 @@ -17,8 +17,8 @@ "title": "Near-surface level collection Met Office global deterministic 10km forecast", "assets": { "thumbnail": { - "href": "", - "type": "image/png", + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-near-surface.jpg", + "type": "image/jpeg", "roles": ["thumbnail"], "title": "Near-surface level collection Met Office global deterministic 10km forecast thumbnail" } @@ -62,1790 +62,680 @@ ], "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", "item_assets": { "fog_fraction_at_screen_level": { "type": "application/netcdf", "title": "Fog fraction at screen level", - "roles": [ - "data" - ], - "forecast:variable": "fog_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "fog_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "fog_area_fraction" }, "height_of_orography": { "type": "application/netcdf", "title": "Height of orography", - "roles": [ - "data" - ], - "forecast:variable": "surface_altitude", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_altitude": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "surface_altitude" }, "latent_heat_flux_at_surface_mean-PT01H": { "type": "application/netcdf", "title": "Hourly latent heat flux at surface mean", - "roles": [ - "data" - ], - "forecast:variable": "surface_upward_latent_heat_flux", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_upward_latent_heat_flux": { - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_upward_latent_heat_flux" }, "latent_heat_flux_at_surface_mean-PT03H": { "type": "application/netcdf", "title": "3H latent heat flux at surface mean", - "roles": [ - "data" - ], - "forecast:variable": "surface_upward_latent_heat_flux", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_upward_latent_heat_flux": { - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_upward_latent_heat_flux" }, "latent_heat_flux_at_surface_mean-PT06H": { "type": "application/netcdf", "title": "6H latent heat flux at surface mean", - "roles": [ - "data" - ], - "forecast:variable": "surface_upward_latent_heat_flux", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_upward_latent_heat_flux": { - "description": "The latent heat flux, averaged over a model time step, at the surface.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_upward_latent_heat_flux" }, "precipitation_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly precipitation accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_precipitation_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_precipitation_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_accumulation-PT03H": { "type": "application/netcdf", "title": "3H precipitation accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_precipitation_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_precipitation_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_accumulation-PT06H": { "type": "application/netcdf", "title": "6H precipitation accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_precipitation_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_precipitation_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_rate": { "type": "application/netcdf", "title": "Precipitation rate", - "roles": [ - "data" - ], - "forecast:variable": "lwe_precipitation_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_precipitation_rate" }, "pressure_at_mean_sea_level": { "type": "application/netcdf", "title": "Pressure at mean sea level", - "roles": [ - "data" - ], - "forecast:variable": "air_pressure_at_sea_level", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_pressure_at_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "Pa" - } - } + "roles": ["data"], + "forecast:variable": "air_pressure_at_sea_level" }, "radiation_flux_in_longwave_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in longwave downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_downwelling_longwave_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_downwelling_longwave_flux_in_air": { - "description": "Longwave radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_downwelling_longwave_flux_in_air" }, "radiation_flux_in_shortwave_direct_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave direct downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_direct_downwelling_shortwave_flux_in_air": { - "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_shortwave_total_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave total downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_downwelling_shortwave_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_downwelling_shortwave_flux_in_air": { - "description": "Total shortwave radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_uv_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in uv downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_downwelling_ultraviolet_flux_in_air": { - "description": "Ultaviolet radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air" }, "rainfall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly rainfall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "thickness_of_rainfall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "thickness_of_rainfall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_accumulation-PT03H": { "type": "application/netcdf", "title": "3H rainfall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "thickness_of_rainfall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "thickness_of_rainfall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_accumulation-PT06H": { "type": "application/netcdf", "title": "6H rainfall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "thickness_of_rainfall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "thickness_of_rainfall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_rate": { "type": "application/netcdf", "title": "Rainfall rate", - "roles": [ - "data" - ], - "forecast:variable": "rainfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "rainfall_rate" }, "rainfall_rate_from_convection": { "type": "application/netcdf", "title": "Rainfall rate from convection", - "roles": [ - "data" - ], - "forecast:variable": "convective_rainfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "convective_rainfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "convective_rainfall_rate" }, "rainfall_rate_from_convection_max-PT01H": { "type": "application/netcdf", "title": "Hourly rainfall rate from convection max", - "roles": [ - "data" - ], - "forecast:variable": "convective_rainfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "convective_rainfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "convective_rainfall_rate" }, "rainfall_rate_from_convection_max-PT03H": { "type": "application/netcdf", "title": "3H rainfall rate from convection max", - "roles": [ - "data" - ], - "forecast:variable": "convective_rainfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "convective_rainfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "convective_rainfall_rate" }, "rainfall_rate_from_convection_max-PT06H": { "type": "application/netcdf", "title": "6H rainfall rate from convection max", - "roles": [ - "data" - ], - "forecast:variable": "convective_rainfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "convective_rainfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "convective_rainfall_rate" }, "relative_humidity_at_screen_level": { "type": "application/netcdf", "title": "Relative humidity at screen level", - "roles": [ - "data" - ], - "forecast:variable": "relative_humidity", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "relative_humidity": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "relative_humidity" }, "snow_depth_water_equivalent": { "type": "application/netcdf", "title": "Snow depth water equivalent", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_surface_snow_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_surface_snow_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_surface_snow_amount" }, "snowfall_rate": { "type": "application/netcdf", "title": "Snowfall rate", - "roles": [ - "data" - ], - "forecast:variable": "lwe_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_snowfall_rate" }, "snowfall_rate_from_convection": { "type": "application/netcdf", "title": "Snowfall rate from convection", - "roles": [ - "data" - ], - "forecast:variable": "lwe_convective_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_convective_snowfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_max-PT01H": { "type": "application/netcdf", "title": "Hourly snowfall rate from convection max", - "roles": [ - "data" - ], - "forecast:variable": "lwe_convective_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_convective_snowfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_max-PT03H": { "type": "application/netcdf", "title": "3H snowfall rate from convection max", - "roles": [ - "data" - ], - "forecast:variable": "lwe_convective_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_convective_snowfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_max-PT06H": { "type": "application/netcdf", "title": "6H snowfall rate from convection max", - "roles": [ - "data" - ], - "forecast:variable": "lwe_convective_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_convective_snowfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_mean-PT01H": { "type": "application/netcdf", "title": "Hourly snowfall rate from convection mean", - "roles": [ - "data" - ], - "forecast:variable": "lwe_convective_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_convective_snowfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_mean-PT03H": { "type": "application/netcdf", "title": "3H snowfall rate from convection mean", - "roles": [ - "data" - ], - "forecast:variable": "lwe_convective_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_convective_snowfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_mean-PT06H": { "type": "application/netcdf", "title": "6H snowfall rate from convection mean", - "roles": [ - "data" - ], - "forecast:variable": "lwe_convective_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "lwe_convective_snowfall_rate": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_convective_snowfall_rate" }, "temperature_at_screen_level": { "type": "application/netcdf", "title": "Temperature at screen level", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Instantaneous air temperature at screen level (1.5m).", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level max", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT03H": { "type": "application/netcdf", "title": "3H temperature at screen level max", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT06H": { "type": "application/netcdf", "title": "6H temperature at screen level max", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level min", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT03H": { "type": "application/netcdf", "title": "3H remperature at screen level min", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 3 hours.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT06H": { "type": "application/netcdf", "title": "6H temperature at screen level min", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_surface": { "type": "application/netcdf", "title": "Temperature at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "surface_temperature": { - "description": "Temperature at the surface interface between the air and the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "surface_temperature" }, "temperature_of_dew_point_at_screen_level": { "type": "application/netcdf", "title": "Dew point temperature at screen level", - "roles": [ - "data" - ], - "forecast:variable": "dew_point_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "dew_point_temperature": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "dew_point_temperature" }, "visibility_at_screen_level": { "type": "application/netcdf", "title": "Visibility at screen level", - "roles": [ - "data" - ], - "forecast:variable": "visibility_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "visibility_in_air": { - "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "visibility_in_air" }, "wind_direction_at_10m": { "type": "application/netcdf", "title": "Wind direction at 10m", - "roles": [ - "data" - ], - "forecast:variable": "wind_from_direction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "wind_from_direction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "degrees" - } - } + "roles": ["data"], + "forecast:variable": "wind_from_direction" }, "wind_gust_at_10m": { "type": "application/netcdf", "title": "Wind gust at 10m", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed_of_gust", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "wind_speed_of_gust": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT01H": { "type": "application/netcdf", "title": "Hourly wind gust at 10m max", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed_of_gust", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "wind_speed_of_gust": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT03H": { "type": "application/netcdf", "title": "3H wind gust at 10m max", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed_of_gust", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "wind_speed_of_gust": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT06H": { "type": "application/netcdf", "title": "6H wind gust at 10m max", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed_of_gust", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "wind_speed_of_gust": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed_of_gust" }, "wind_speed_at_10m": { "type": "application/netcdf", "title": "Wind speed at 10m", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "wind_speed": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H", + "PT123H", + "PT126H", + "PT129H", + "PT132H", + "PT135H", + "PT138H", + "PT141H", + "PT144H", + "PT150H", + "PT156H", + "PT162H", + "PT168H" + ] + } + }, + "cube:variables": { + "fog_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "surface_altitude": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "surface_upward_latent_heat_flux": { + "description": "The latent heat flux, averaged over a model time step, at the surface.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "lwe_thickness_of_precipitation_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "lwe_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "air_pressure_at_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "Pa" + }, + "surface_downwelling_longwave_flux_in_air": { + "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "surface_direct_downwelling_shortwave_flux_in_air": { + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "surface_downwelling_shortwave_flux_in_air": { + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "surface_downwelling_ultraviolet_flux_in_air": { + "description": "Ultaviolet radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "thickness_of_rainfall_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "convective_rainfall_rate": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "relative_humidity": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "lwe_thickness_of_surface_snow_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "lwe_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "lwe_convective_snowfall_rate": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "air_temperature": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous 6 hours.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "surface_temperature": { + "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "dew_point_temperature": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "visibility_in_air": { + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "wind_from_direction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "degrees" + }, + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "wind_speed": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" } } } 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 25dea3458..5ed6a3ef6 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 @@ -17,8 +17,8 @@ "title": "Pressure levels collection Met Office Global 10km deterministic weather forecast", "assets": { "thumbnail": { - "href": "", - "type": "image/png", + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-pressure.jpg", + "type": "image/jpeg", "roles": ["thumbnail"], "title": "Pressure levels collection Met Office Global 10km deterministic weather forecast thumbnail" } @@ -47,12 +47,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", "item_assets": { @@ -60,273 +60,256 @@ "type": "application/netcdf", "title": "Geopotential height on pressure levels", "roles": ["data"], - "forecast:variable": "geopotential_height", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "geopotential_height": { - "description": "Geopotential height of the pressure levels. Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels", - "dimensions": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "m" - } - } - }, - "height_ASL_on_pressure_levels": { - "type": "application/netcdf", - "title": "Height Above Sea Level on pressure levels", - "roles": ["data"], - "forecast:variable": "geopotential_height", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "geopotential_height": { - "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": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "m" - } - } - }, - "relative_humidity_on_pressure_levels": { - "type": "application/netcdf", - "title": "Relative humidity on pressure levels", - "roles": ["data"], - "forecast:variable": "relative_humidity", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "relative_humidity": { - "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) on pressure levels", - "dimensions": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "1" - } - } - }, - "temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Temperature on pressure levels", - "roles": ["data"], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Air temperature on pressure levels", - "dimensions": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "K" - } - } - }, - "wet_bulb_potential_temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wet bulb potential temperature on pressure levels", - "roles": ["data"], - "forecast:variable": "wet_bulb_potential_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 92500, 85000, 70000 - ] - } - }, - "cube:variables": { - "wet_bulb_potential_temperature": { - "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": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "K" - } - } - }, - "wind_direction_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind direction on pressure levels", - "roles": ["data"], - "forecast:variable": "wind_from_direction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "wind_from_direction": { - "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": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "degrees" - } - } - }, - "wind_speed_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind speed on pressure levels", - "roles": ["data"], - "forecast:variable": "wind_speed", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "wind_speed": { - "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": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "m/s" - } - } - }, - "wind_vertical_velocity_on_pressure_levels": { - "type": "application/netcdf", - "title": "Wind vertical velocity on pressure levels", - "roles": ["data"], - "forecast:variable": "upward_air_velocity", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [-90, 90] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [-180, 180] - }, - "pressure_levels": { - "type": "spatial", - "values": [70000] - } - }, - "cube:variables": { - "upward_air_velocity": { - "description": "Speed of the vertical component of the air motion at a pressure levels. Upwards is positive and downwards is negative.", - "dimensions": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "m/s" - } - } - } + "forecast:variable": "geopotential_height" + }, + "height_ASL_on_pressure_levels": { + "type": "application/netcdf", + "title": "Height Above Sea Level on pressure levels", + "roles": ["data"], + "forecast:variable": "geopotential_height" + }, + "relative_humidity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Relative humidity on pressure levels", + "roles": ["data"], + "forecast:variable": "relative_humidity" + }, + "temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "air_temperature" + }, + "wet_bulb_potential_temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wet bulb potential temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "wet_bulb_potential_temperature" + }, + "wind_direction_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind direction on pressure levels", + "roles": ["data"], + "forecast:variable": "wind_from_direction" + }, + "wind_speed_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind speed on pressure levels", + "roles": ["data"], + "forecast:variable": "wind_speed" + }, + "wind_vertical_velocity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Wind vertical velocity on pressure levels", + "roles": ["data"], + "forecast:variable": "upward_air_velocity" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, 3000, + 2000, 1000 + ] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H", + "PT123H", + "PT126H", + "PT129H", + "PT132H", + "PT135H", + "PT138H", + "PT141H", + "PT144H", + "PT150H", + "PT156H", + "PT162H", + "PT168H" + ] + } + }, + "cube:variables": { + "geopotential_height": { + "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": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "relative_humidity": { + "description": "Fractional relative humidity (ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water) on pressure levels", + "dimensions": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "air_temperature": { + "description": "Air temperature on pressure levels", + "dimensions": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "wet_bulb_potential_temperature": { + "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": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "wind_from_direction": { + "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": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "degrees" + }, + "wind_speed": { + "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": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "upward_air_velocity": { + "description": "Speed of the vertical component of the air motion at a pressure levels. Upwards is positive and downwards is negative.", + "dimensions": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" } + } } 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 04b8594b3..49274ffb5 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 @@ -17,8 +17,8 @@ "title": "Whole Atmosphere collection Met Office Global 10km deterministic weather forecast", "assets": { "thumbnail": { - "href": "", - "type": "image/png", + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-whole-atmosphere.jpg", + "type": "image/jpeg", "roles": ["thumbnail"], "title": "Whole Atmosphere collection Met Office Global 10km deterministic weather forecast thumbnail" } @@ -47,532 +47,344 @@ ], "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", "item_assets": { "CAPE_mixed_layer_lowest_500m": { "type": "application/netcdf", "title": "CAPE mixed layer lowest 500m", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_available_potential_energy", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "atmosphere_convective_available_potential_energy": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_available_potential_energy" }, "CAPE_most_unstable_below_500hPa": { "type": "application/netcdf", "title": "CAPE most unstable below 500hPa", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_available_potential_energy", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "atmosphere_convective_available_potential_energy": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_available_potential_energy" }, "CAPE_surface": { "type": "application/netcdf", "title": "CAPE surface", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "atmosphere_convective_available_potential_energy_wrt_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface" }, "CIN_mixed_layer_lowest_500m": { "type": "application/netcdf", "title": "CIN mixed layer lowest 500m", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_inhibition", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "atmosphere_convective_inhibition": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_inhibition" }, "CIN_most_unstable_below_500hPa": { "type": "application/netcdf", "title": "CIN most unstable below 500hPa", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_inhibition", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "atmosphere_convective_inhibition": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_inhibition" }, "CIN_surface": { "type": "application/netcdf", "title": "CIN surface", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_inhibition_wrt_surface", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "atmosphere_convective_inhibition_wrt_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_inhibition_wrt_surface" }, "cloud_amount_below_1000ft_ASL": { "type": "application/netcdf", "title": "Cloud amount below 1000ft ASL", - "roles": [ - "data" - ], - "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl": { - "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl" }, "cloud_amount_of_high_cloud": { "type": "application/netcdf", "title": "Cloud amount of high cloud", - "roles": [ - "data" - ], - "forecast:variable": "high_type_cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "high_type_cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "high_type_cloud_area_fraction" }, "cloud_amount_of_low_cloud": { "type": "application/netcdf", "title": "Cloud amount of low cloud", - "roles": [ - "data" - ], - "forecast:variable": "low_type_cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "low_type_cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "low_type_cloud_area_fraction" }, "cloud_amount_of_medium_cloud": { "type": "application/netcdf", "title": "Cloud amount of medium cloud", - "roles": [ - "data" - ], - "forecast:variable": "medium_type_cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "medium_type_cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "medium_type_cloud_area_fraction" }, "cloud_amount_of_total_cloud": { "type": "application/netcdf", "title": "Cloud amount of total cloud", - "roles": [ - "data" - ], - "forecast:variable": "cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "cloud_area_fraction" }, "cloud_amount_of_total_convective_cloud": { "type": "application/netcdf", "title": "Cloud amount of total convective cloud", - "roles": [ - "data" - ], - "forecast:variable": "convective_cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "convective_cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "convective_cloud_area_fraction" }, "pressure_at_tropopause": { "type": "application/netcdf", "title": "Pressure at tropopause", - "roles": [ - "data" - ], - "forecast:variable": "tropopause_air_pressure", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "tropopause_air_pressure": { - "description": "Air pressure at the tropopause.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "Pa" - } - } + "roles": ["data"], + "forecast:variable": "tropopause_air_pressure" }, "temperature_at_tropopause": { "type": "application/netcdf", "title": "Temperature at tropopause", - "roles": [ - "data" + "roles": ["data"], + "forecast:variable": "tropopause_air_temperature" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [-90, 90] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [-180, 180] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H", + "PT123H", + "PT126H", + "PT129H", + "PT132H", + "PT135H", + "PT138H", + "PT141H", + "PT144H", + "PT150H", + "PT156H", + "PT162H", + "PT168H" + ] + } + }, + "cube:variables": { + "atmosphere_convective_available_potential_energy": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "J/kg" + }, + "atmosphere_convective_available_potential_energy_wrt_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "J/kg" + }, + "atmosphere_convective_inhibition": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "J/kg" + }, + "atmosphere_convective_inhibition_wrt_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "J/kg" + }, + "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl": { + "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "high_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "low_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "medium_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "convective_cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "tropopause_air_pressure": { + "description": "Air pressure at the tropopause.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "Pa" + }, + "tropopause_air_temperature": { + "description": "Air temperature at the tropopause.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" ], - "forecast:variable": "tropopause_air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - -90, - 90 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - -180, - 180 - ] - } - }, - "cube:variables": { - "tropopause_air_temperature": { - "description": "Air temperature at the tropopause.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "type": "data", + "unit": "K" } } } 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 b8ef2be22..748c33c68 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,226 +1,251 @@ { - "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" - }, - { - "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/jpeg", + "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"] + } + ], + "stac_version": "1.0.0", + "msft:group_id": "metoffice", + "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": "ukmoeuwest", + "msft:short_description": "Met Office UK Deterministic Height Level", + "msft:region": "westeurope", + "item_assets": { + "cloud_amount_on_height_levels": { + "type": "application/netcdf", + "title": "Cloud amount on height levels", + "roles": ["data"], + "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer" + }, + "temperature_on_height_levels": { + "type": "application/netcdf", + "title": "Temperature on height levels", + "roles": ["data"], + "forecast:variable": "air_temperature" + }, + "wind_direction_on_height_levels": { + "type": "application/netcdf", + "title": "Wind direction on height levels", + "roles": ["data"], + "forecast:variable": "wind_from_direction" + }, + "wind_speed_on_height_levels": { + "type": "application/netcdf", + "title": "Wind speed on height levels", + "roles": ["data"], + "forecast:variable": "wind_speed" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "height": { + "type": "spatial", + "values": [ + 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, + 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, 3500, 3750, + 4000, 4500, 5000, 5500, 6000 + ] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H" + ] + } + }, + "cube:variables": { + "cloud_volume_fraction_in_atmosphere_layer": { + "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", + "dimensions": [ + "latitude", + "longitude", + "height", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "air_temperature": { + "description": "Air temperature on height levels.", + "dimensions": [ + "latitude", + "longitude", + "height", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "wind_from_direction": { + "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": [ + "latitude", + "longitude", + "height", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "degrees" }, - "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" - ] - } - ], - "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", - "item_assets": { - "cloud_amount_on_height_levels": { - "type": "application/netcdf", - "title": "Cloud amount on height levels", - "roles": ["data"], - "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "height": { - "type": "spatial", - "values": [ - 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, - 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, - 3500, 3750, 4000, 4500, 5000, 5500, 6000 - ] - } - }, - "cube:variables": { - "cloud_volume_fraction_in_atmosphere_layer": { - "description": "Fraction of horizontal grid square occupied by cloud in layers centred on height levels.", - "dimensions": ["latitude", "longitude", "height"], - "type": "data", - "unit": "1" - } - } - }, - "temperature_on_height_levels": { - "type": "application/netcdf", - "title": "Temperature on height levels", - "roles": ["data"], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "height": { - "type": "spatial", - "values": [ - 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, - 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, - 3500, 3750, 4000, 4500, 5000, 5500, 6000 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Air temperature on height levels.", - "dimensions": ["latitude", "longitude", "height"], - "type": "data", - "unit": "K" - } - } - }, - "wind_direction_on_height_levels": { - "type": "application/netcdf", - "title": "Wind direction on height levels", - "roles": ["data"], - "forecast:variable": "wind_from_direction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "height": { - "type": "spatial", - "values": [ - 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, - 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, - 3500, 3750, 4000, 4500, 5000, 5500, 6000 - ] - } - }, - "cube:variables": { - "wind_from_direction": { - "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": ["latitude", "longitude", "height"], - "type": "data", - "unit": "degrees" - } - } - }, - "wind_speed_on_height_levels": { - "type": "application/netcdf", - "title": "Wind speed on height levels", - "roles": ["data"], - "forecast:variable": "wind_speed", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "height": { - "type": "spatial", - "values": [ - 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, - 800, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, - 3500, 3750, 4000, 4500, 5000, 5500, 6000 - ] - } - }, - "cube:variables": { - "wind_speed": { - "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": ["latitude", "longitude", "height"], - "type": "data", - "unit": "m/s" - } - } - } + "wind_speed": { + "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": [ + "latitude", + "longitude", + "height", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" } -} \ No newline at end of file + } +} 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 138ff8e45..265461a12 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 @@ -17,8 +17,8 @@ "title": "Near-surface level collection Met Office UKV 2km deterministic forecast", "assets": { "thumbnail": { - "href": "", - "type": "image/png", + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-near-surface.jpg", + "type": "image/jpeg", "roles": ["thumbnail"], "title": "Near-surface level collection Met Office UKV 2km deterministic forecast Thumbnail" } @@ -57,1309 +57,634 @@ ], "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", "item_assets": { "fog_fraction_at_screen_level": { "type": "application/netcdf", "title": "Fog fraction at screen level", - "roles": [ - "data" - ], - "forecast:variable": "fog_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "fog_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "fog_area_fraction" }, "hail_fall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly hail fall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_graupel_and_hail_fall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_graupel_and_hail_fall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_graupel_and_hail_fall_amount" }, "hail_fall_rate": { "type": "application/netcdf", "title": "Hail fall rate", - "roles": [ - "data" - ], - "forecast:variable": "lwe_graupel_and_hail_fall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_graupel_and_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_graupel_and_hail_fall_rate" }, "height_of_orography": { "type": "application/netcdf", "title": "Height of orography", - "roles": [ - "data" - ], - "forecast:variable": "surface_altitude", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_altitude": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "surface_altitude" }, "landsea_mask": { "type": "application/netcdf", "title": "Landsea mask", - "roles": [ - "data" - ], - "forecast:variable": "land_binary_mask", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "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.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "land_binary_mask" }, "precipitation_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly precipitation accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_precipitation_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_precipitation_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_accumulation-PT03H": { "type": "application/netcdf", "title": "3H precipitation accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_precipitation_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_precipitation_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_rate": { "type": "application/netcdf", "title": "Precipitation rate", - "roles": [ - "data" - ], - "forecast:variable": "lwe_precipitation_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_precipitation_rate" }, "pressure_at_mean_sea_level": { "type": "application/netcdf", "title": "Pressure at mean sea level", - "roles": [ - "data" - ], - "forecast:variable": "air_pressure_at_sea_level", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "air_pressure_at_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "Pa" - } - } + "roles": ["data"], + "forecast:variable": "air_pressure_at_sea_level" }, "pressure_at_surface": { "type": "application/netcdf", "title": "Pressure at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_air_pressure", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_air_pressure": { - "description": "Air pressure at the surface (lower boundary of the atmosphere).", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "Pa" - } - } + "roles": ["data"], + "forecast:variable": "surface_air_pressure" }, "radiation_flux_in_longwave_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in longwave downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_downwelling_longwave_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_downwelling_longwave_flux_in_air": { - "description": "Longwave radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_downwelling_longwave_flux_in_air" }, "radiation_flux_in_shortwave_diffuse_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave diffuse downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_diffusive_downwelling_shortwave_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_diffusive_downwelling_shortwave_flux_in_air": { - "description": "Diffuse component of shortwave radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_diffusive_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_shortwave_direct_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave direct downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_direct_downwelling_shortwave_flux_in_air": { - "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_shortwave_total_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave total downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_downwelling_shortwave_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_downwelling_shortwave_flux_in_air": { - "description": "Total shortwave radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_uv_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in uv downward at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_downwelling_ultraviolet_flux_in_air": { - "description": "Ultraviolet radiation at the surface from above directed at the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air" }, "rainfall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly rainfall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "thickness_of_rainfall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "thickness_of_rainfall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_accumulation-PT03H": { "type": "application/netcdf", "title": "3H rainfall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "thickness_of_rainfall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "thickness_of_rainfall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_rate": { "type": "application/netcdf", "title": "Rainfall rate", - "roles": [ - "data" - ], - "forecast:variable": "rainfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "rainfall_rate" }, "relative_humidity_at_screen_level": { "type": "application/netcdf", "title": "Relative humidity at screen level", - "roles": [ - "data" - ], - "forecast:variable": "relative_humidity", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "relative_humidity": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "relative_humidity" }, "sensible_heat_flux_at_surface": { "type": "application/netcdf", "title": "Sensible heat flux at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_upward_sensible_heat_flux", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_upward_sensible_heat_flux": { - "description": "Exchange of heat between the surface and the air by motion of air, also called turbulent heat flux.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "W/m2" - } - } + "roles": ["data"], + "forecast:variable": "surface_upward_sensible_heat_flux" }, "snow_depth_water_equivalent": { "type": "application/netcdf", "title": "Snow depth water equivalent", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_surface_snow_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_surface_snow_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_surface_snow_amount" }, "snowfall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly snowfall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_snowfall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_snowfall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_snowfall_amount" }, "snowfall_accumulation-PT03H": { "type": "application/netcdf", "title": "3H snowfall accumulation", - "roles": [ - "data" - ], - "forecast:variable": "lwe_thickness_of_snowfall_amount", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_thickness_of_snowfall_amount": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "lwe_thickness_of_snowfall_amount" }, "snowfall_rate": { "type": "application/netcdf", "title": "Snowfall rate", - "roles": [ - "data" - ], - "forecast:variable": "lwe_snowfall_rate", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "lwe_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "lwe_snowfall_rate" }, "temperature_at_screen_level": { "type": "application/netcdf", "title": "Temperature at screen level", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Instantaneous air temperature at screen level (1.5m).", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level maximum", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Maximum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level minimum", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "air_temperature" }, "temperature_at_surface": { "type": "application/netcdf", "title": "Temperature at surface", - "roles": [ - "data" - ], - "forecast:variable": "surface_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "surface_temperature": { - "description": "Temperature at the surface interface between the air and the ground.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "surface_temperature" }, "temperature_of_dew_point_at_screen_level": { "type": "application/netcdf", "title": "Dew point temperature at screen level", - "roles": [ - "data" - ], - "forecast:variable": "dew_point_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "dew_point_temperature": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "K" - } - } + "roles": ["data"], + "forecast:variable": "dew_point_temperature" }, "visibility_at_screen_level": { "type": "application/netcdf", "title": "Visibility at screen level", - "roles": [ - "data" - ], - "forecast:variable": "visibility_in_air", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "visibility_in_air": { - "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "visibility_in_air" }, "wind_direction_at_10m": { "type": "application/netcdf", "title": "Wind direction at 10m", - "roles": [ - "data" - ], - "forecast:variable": "wind_from_direction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "wind_from_direction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "degrees" - } - } + "roles": ["data"], + "forecast:variable": "wind_from_direction" }, "wind_gust_at_10m": { "type": "application/netcdf", "title": "Wind gust at 10m", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed_of_gust", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "wind_speed_of_gust": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT01H": { "type": "application/netcdf", "title": "Hourly wind gust at 10m maximum", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed_of_gust", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "wind_speed_of_gust": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT03H": { "type": "application/netcdf", "title": "3H wind gust at 10m maximum", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed_of_gust", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "wind_speed_of_gust": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed_of_gust" }, "wind_speed_at_10m": { "type": "application/netcdf", "title": "Wind speed at 10m", - "roles": [ - "data" - ], - "forecast:variable": "wind_speed", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "wind_speed": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m/s" - } - } + "roles": ["data"], + "forecast:variable": "wind_speed" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H" + ] + } + }, + "cube:variables": { + "fog_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "lwe_thickness_of_graupel_and_hail_fall_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "lwe_graupel_and_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "surface_altitude": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "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.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "lwe_thickness_of_precipitation_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "lwe_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "air_pressure_at_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "Pa" + }, + "surface_air_pressure": { + "description": "Air pressure at the surface (lower boundary of the atmosphere).", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "Pa" + }, + "surface_downwelling_longwave_flux_in_air": { + "description": "Longwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "surface_diffusive_downwelling_shortwave_flux_in_air": { + "description": "Diffuse component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "surface_direct_downwelling_shortwave_flux_in_air": { + "description": "Direct component of shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "surface_downwelling_shortwave_flux_in_air": { + "description": "Total shortwave radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "surface_downwelling_ultraviolet_flux_in_air": { + "description": "Ultraviolet radiation at the surface from above directed at the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "thickness_of_rainfall_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "relative_humidity": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "surface_upward_sensible_heat_flux": { + "description": "Exchange of heat between the surface and the air by motion of air, also called turbulent heat flux.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "W/m2" + }, + "lwe_thickness_of_surface_snow_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "lwe_thickness_of_snowfall_amount": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "lwe_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "air_temperature": { + "description": "Minimum instantaneous air temperature at screen level (1.5m) in the previous hour.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "surface_temperature": { + "description": "Temperature at the surface interface between the air and the ground.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "dew_point_temperature": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "visibility_in_air": { + "description": "Horizontal distance at which something can be seen horizontally from screen level (1.5m).", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "wind_from_direction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "degrees" + }, + "wind_speed_of_gust": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" + }, + "wind_speed": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" } } } 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 d79353d3d..862ae46a5 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 @@ -17,8 +17,8 @@ "title": "Pressure levels collection Met Office UKV 2km deterministic forecast", "assets": { "thumbnail": { - "href": "", - "type": "image/png", + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-pressure.jpg", + "type": "image/jpeg", "roles": ["thumbnail"], "title": "Pressure levels collection Met Office UKV 2km deterministic forecast Thumbnail" } @@ -56,12 +56,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", "item_assets": { @@ -70,129 +70,100 @@ "title": "Geopotential height on pressure levels", "roles": ["data"], "forecast:variable": "geopotential_height", - "cube:dimensions": { - "latitude": { + "height_ASL_on_pressure_levels": { + "type": "application/netcdf", + "title": "Height Above Sea Level on pressure levels", + "roles": ["data"], + "forecast:variable": "geopotential_height", + "cube:dimensions": { + "latitude": { "type": "spatial", "axis": "y", "extent": [50, 62] - }, - "longitude": { + }, + "longitude": { "type": "spatial", "axis": "x", "extent": [5, 15] - }, - "pressure_levels": { + }, + "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, + 6500, 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, + 30000, 27500, 25000, 22500, 20000, 17500, 15000, 12500, 10000, + 7000, 5000, 4000, 3000, 2000, 1000 ] + } + }, + "cube:variables": { + "geopotential_height": { + "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "unit": "m", + "type": "data" + } } }, - "cube:variables": { - "geopotential_height": { - "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", - "dimensions": ["latitude", "longitude", "pressure_levels"], - "unit": "m", - "type": "data" - } - }, - "height_ASL_on_pressure_levels": { - "type": "application/netcdf", - "title": "Height Above Sea Level on pressure levels", - "roles": ["data"], - "forecast:variable": "geopotential_height", - "cube:dimensions": { - "latitude": { + "relative_humidity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Relative humidity on pressure levels", + "roles": ["data"], + "forecast:variable": "relative_humidity", + "cube:dimensions": { + "latitude": { "type": "spatial", "axis": "y", "extent": [50, 62] - }, - "longitude": { + }, + "longitude": { "type": "spatial", "axis": "x", "extent": [5, 15] - }, - "pressure_levels": { + }, + "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, + 6500, 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, + 30000, 27500, 25000, 22500, 20000, 17500, 15000, 12500, 10000, + 7000, 5000, 4000, 3000, 2000, 1000 ] + } + }, + "cube:variables": { + "relative_humidity": { + "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", + "dimensions": ["latitude", "longitude", "pressure_levels"], + "unit": "1", + "type": "data" + } } }, - "cube:variables": { - "geopotential_height": { - "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", - "dimensions": ["latitude", "longitude", "pressure_levels"], - "unit": "m", - "type": "data" - } - } - }, - "relative_humidity_on_pressure_levels": { - "type": "application/netcdf", - "title": "Relative humidity on pressure levels", - "roles": ["data"], - "forecast:variable": "relative_humidity", - "cube:dimensions": { - "latitude": { + "temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "air_temperature", + "cube:dimensions": { + "latitude": { "type": "spatial", "axis": "y", "extent": [50, 62] - }, - "longitude": { + }, + "longitude": { "type": "spatial", "axis": "x", "extent": [5, 15] - }, - "pressure_levels": { + }, + "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, + 6500, 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, + 30000, 27500, 25000, 22500, 20000, 17500, 15000, 12500, 10000, + 7000, 5000, 4000, 3000, 2000, 1000 ] - } - }, - "cube:variables": { - "relative_humidity": { - "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", - "dimensions": ["latitude", "longitude", "pressure_levels"], - "unit": "1", - "type": "data" - } - } - }, - "temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Temperature on pressure levels", - "roles": ["data"], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] } }, "cube:variables": { @@ -209,103 +180,178 @@ "type": "application/netcdf", "title": "Wet bulb potential temperature on pressure levels", "roles": ["data"], - "forecast:variable": "wet_bulb_potential_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 92500, 85000, 70000 - ] - } - }, - "cube:variables": { - "wet_bulb_potential_temperature": { - "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": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "K" - } - } + "forecast:variable": "wet_bulb_potential_temperature" }, "wind_direction_on_pressure_levels": { "type": "application/netcdf", "title": "Wind direction on pressure levels", "roles": ["data"], - "forecast:variable": "wind_from_direction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "wind_from_direction": { - "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": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "degrees" - } - } + "forecast:variable": "wind_from_direction" }, "wind_speed_on_pressure_levels": { "type": "application/netcdf", "title": "Wind speed on pressure levels", "roles": ["data"], - "forecast:variable": "wind_speed", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [50, 62] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [5, 15] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, - 3000, 2000, 1000 - ] - } - }, - "cube:variables": { - "wind_speed": { - "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": ["latitude", "longitude", "pressure_levels"], - "type": "data", - "unit": "m/s" - } - } + "forecast:variable": "wind_speed" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "pressure_levels": { + "type": "spatial", + "values": [ + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, 3000, + 2000, 1000 + ] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H" + ] + } + }, + "cube:variables": { + "geopotential_height": { + "description": "Note: from January 2026, this parameter will replace height_ASL_on_pressure_levels.", + "dimensions": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "unit": "m", + "type": "data" + }, + "wet_bulb_potential_temperature": { + "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": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, + "wind_from_direction": { + "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": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "degrees" + }, + "wind_speed": { + "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": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m/s" } } } 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 e4b202ee1..02e74772c 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 @@ -17,8 +17,8 @@ "title": "Whole Atmosphere collection Met Office UKV 2km deterministic forecast", "assets": { "thumbnail": { - "href": "", - "type": "image/png", + "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-whole-atmosphere.jpg", + "type": "image/jpeg", "roles": ["thumbnail"], "title": "Whole Atmosphere collection Met Office UKV 2km deterministic forecast thumbnail" } @@ -57,421 +57,303 @@ ], "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", "item_assets": { "CAPE_most_unstable_below_500hPa": { "type": "application/netcdf", "title": "CAPE most unstable below 500hPa", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_available_potential_energy", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "atmosphere_convective_available_potential_energy": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_available_potential_energy" }, "CAPE_surface": { "type": "application/netcdf", "title": "CAPE surface", - "roles": [ - "data" - ], - "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "atmosphere_convective_available_potential_energy_wrt_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "J/kg" - } - } + "roles": ["data"], + "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface" }, "cloud_amount_below_1000ft_ASL": { "type": "application/netcdf", "title": "Cloud amount below 1000ft ASL", - "roles": [ - "data" - ], - "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl": { - "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl" }, "cloud_amount_of_high_cloud": { "type": "application/netcdf", "title": "Cloud amount of high cloud", - "roles": [ - "data" - ], - "forecast:variable": "high_type_cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "high_type_cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "high_type_cloud_area_fraction" }, "cloud_amount_of_low_cloud": { "type": "application/netcdf", "title": "Cloud amount of low cloud", - "roles": [ - "data" - ], - "forecast:variable": "low_type_cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "low_type_cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "low_type_cloud_area_fraction" }, "cloud_amount_of_medium_cloud": { "type": "application/netcdf", "title": "Cloud amount of medium cloud", - "roles": [ - "data" - ], - "forecast:variable": "medium_type_cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "medium_type_cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "medium_type_cloud_area_fraction" }, "cloud_amount_of_total_cloud": { "type": "application/netcdf", "title": "Cloud amount of total cloud", - "roles": [ - "data" - ], - "forecast:variable": "cloud_area_fraction", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "cloud_area_fraction": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "1" - } - } + "roles": ["data"], + "forecast:variable": "cloud_area_fraction" }, "height_AGL_at_cloud_base_where_cloud_cover_2p5_oktas": { "type": "application/netcdf", "title": "Height AGL at cloud base where cloud cover 2p5 oktas", - "roles": [ - "data" - ], - "forecast:variable": "cloud_base_height_2p5_oktas", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "cloud_base_height_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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "cloud_base_height_2p5_oktas" }, "height_AGL_at_freezing_level": { "type": "application/netcdf", "title": "Height AGL at freezing level", - "roles": [ - "data" - ], - "forecast:variable": "freezing_level_height", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "freezing_level_height": { - "description": "Height of the 0 degrees celsius isotherm (freezing level) above the surface (ground).", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "freezing_level_height" }, "height_AGL_at_wet_bulb_freezing_level": { "type": "application/netcdf", "title": "Height AGL at wet bulb freezing level", - "roles": [ - "data" - ], - "forecast:variable": "wet_bulb_freezing_level_height", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "wet_bulb_freezing_level_height": { - "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": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "m" - } - } + "roles": ["data"], + "forecast:variable": "wet_bulb_freezing_level_height" }, "lightning_flash_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly lightning flash accumulation", - "roles": [ - "data" + "roles": ["data"], + "forecast:variable": "number_of_lightning_flashes_per_unit_area" + } + }, + "description": "{{ collection.description }}", + "cube:dimensions": { + "latitude": { + "type": "spatial", + "axis": "y", + "extent": [50, 62] + }, + "longitude": { + "type": "spatial", + "axis": "x", + "extent": [5, 15] + }, + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", null] + }, + "forecast:horizon": { + "type": "temporal", + "extent": [null, null], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H" + ] + } + }, + "cube:variables": { + "atmosphere_convective_available_potential_energy": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "J/kg" + }, + "atmosphere_convective_available_potential_energy_wrt_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "J/kg" + }, + "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl": { + "description": "Fraction of horizontal grid square occupied by cloud below 1000 feet above sea level.", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "high_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "low_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "medium_type_cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "cloud_area_fraction": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "1" + }, + "cloud_base_height_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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "freezing_level_height": { + "description": "Height of the 0 degrees celsius isotherm (freezing level) above the surface (ground).", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "wet_bulb_freezing_level_height": { + "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": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "m" + }, + "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", + "dimensions": [ + "latitude", + "longitude", + "forecast:reference_datetime", + "forecast:horizon" ], - "forecast:variable": "number_of_lightning_flashes_per_unit_area", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - } - }, - "cube:variables": { - "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", - "dimensions": [ - "latitude", - "longitude" - ], - "type": "data", - "unit": "count/m2" - } - } + "type": "data", + "unit": "count/m2" } } } diff --git a/datasets/met-office/scripts/cleanup.py b/datasets/met-office/scripts/cleanup.py new file mode 100644 index 000000000..6d4c10b42 --- /dev/null +++ b/datasets/met-office/scripts/cleanup.py @@ -0,0 +1,232 @@ +import json +import sys +from typing import Any + +path = sys.argv[1] + +dimensions = {} +variables = {} +with open(path) as f: + data = json.load(f) + + +def update_dimensions(key: str, value: dict[str, Any]) -> None: + if existing_dimension := dimensions.get(key): + if existing_values := existing_dimension.get("values"): + new_values = value["values"] + if len(new_values) > len(existing_values): + dimensions["values"] = new_values + else: + dimensions[key] = value + + +for item_asset in data["item_assets"].values(): + item_asset_dimensions = list() + for key, value in item_asset["cube:dimensions"].items(): + update_dimensions(key, value) + item_asset_dimensions.append(key) + item_asset_dimensions += ["forecast:reference_datetime", "forecast:horizon"] + for key, value in item_asset["cube:variables"].items(): + value["dimensions"] = item_asset_dimensions + variables[key] = value + + del item_asset["cube:dimensions"] + del item_asset["cube:variables"] + +id = data["id"] +dimensions.update( + { + "forecast:reference_datetime": { + "type": "temporal", + "extent": ["2023-12-15T00:00:00Z", None], + }, + "forecast:horizon": { + "type": "temporal", + "extent": [None, None], + "values": [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H", + "PT123H", + "PT126H", + "PT129H", + "PT132H", + "PT135H", + "PT138H", + "PT141H", + "PT144H", + "PT150H", + "PT156H", + "PT162H", + "PT168H", + ] + if "global" in id + else [ + "PT0H", + "PT1H", + "PT2H", + "PT3H", + "PT4H", + "PT5H", + "PT6H", + "PT7H", + "PT8H", + "PT9H", + "PT10H", + "PT11H", + "PT12H", + "PT13H", + "PT14H", + "PT15H", + "PT16H", + "PT17H", + "PT18H", + "PT19H", + "PT20H", + "PT21H", + "PT22H", + "PT23H", + "PT24H", + "PT25H", + "PT26H", + "PT27H", + "PT28H", + "PT29H", + "PT30H", + "PT31H", + "PT32H", + "PT33H", + "PT34H", + "PT35H", + "PT36H", + "PT37H", + "PT38H", + "PT39H", + "PT40H", + "PT41H", + "PT42H", + "PT43H", + "PT44H", + "PT45H", + "PT46H", + "PT47H", + "PT48H", + "PT49H", + "PT50H", + "PT51H", + "PT52H", + "PT53H", + "PT54H", + "PT57H", + "PT60H", + "PT63H", + "PT66H", + "PT69H", + "PT72H", + "PT75H", + "PT78H", + "PT81H", + "PT84H", + "PT87H", + "PT90H", + "PT93H", + "PT96H", + "PT99H", + "PT102H", + "PT105H", + "PT108H", + "PT111H", + "PT114H", + "PT117H", + "PT120H", + ], + }, + } +) + +data["description"] = "{{ collection.description }}" +data["assets"]["thumbnail"]["href"] = ( + f"https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/{id}.jpg" +) +data["assets"]["thumbnail"]["type"] = "image/jpeg" +data["msft:container"] = "staging" +data["msft:storage_account"] = "ukmoeuwest" +data["cube:dimensions"] = dimensions +data["cube:variables"] = variables + +with open(path, "w") as f: + json.dump(data, f, indent=2) From f5b47bb269a5bbe8069dba2d4194a6d4a8d95773 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 6 Jan 2026 08:47:33 -0700 Subject: [PATCH 26/42] chore: add uk met office test --- datasets/met-office/test_met_office.py | 109 +++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 datasets/met-office/test_met_office.py diff --git a/datasets/met-office/test_met_office.py b/datasets/met-office/test_met_office.py new file mode 100644 index 000000000..f4392be23 --- /dev/null +++ b/datasets/met-office/test_met_office.py @@ -0,0 +1,109 @@ +import pytest +from met_office import ( + MetOfficeCollection, + MetOfficeGlobalHeightCollection, + MetOfficeGlobalNearSurfaceCollection, + MetOfficeGlobalPressureCollection, + MetOfficeGlobalWholeAtmosphereCollection, + MetOfficeUkHeightCollection, + MetOfficeUkNearSurfaceCollection, + MetOfficeUkPressureCollection, + MetOfficeUkWholeAtmosphereCollection, +) +from pctasks.core.storage import StorageFactory +from stactools.met_office_deterministic.constants import Model, Theme + +test_storage_account = "ukmoeuwest" +test_container = "staging" + + +@pytest.mark.parametrize( + "asset_uri,collection_class,expected_model,expected_theme", + [ + ( + f"blob://{test_storage_account}/{test_container}/global/height/20250106T0000Z.updated", + MetOfficeGlobalHeightCollection, + Model.global_, + Theme.height, + ), + ( + f"blob://{test_storage_account}/{test_container}/global/near-surface/20250106T0000Z.updated", + MetOfficeGlobalNearSurfaceCollection, + Model.global_, + Theme.near_surface, + ), + ( + f"blob://{test_storage_account}/{test_container}/global/pressure/20250106T0000Z.updated", + MetOfficeGlobalPressureCollection, + Model.global_, + Theme.pressure_level, + ), + ( + f"blob://{test_storage_account}/{test_container}/global/whole-atmosphere/20250106T0000Z.updated", + MetOfficeGlobalWholeAtmosphereCollection, + Model.global_, + Theme.whole_atmosphere, + ), + ( + f"blob://{test_storage_account}/{test_container}/uk/height/20250106T0000Z.updated", + MetOfficeUkHeightCollection, + Model.uk, + Theme.height, + ), + ( + f"blob://{test_storage_account}/{test_container}/uk/near-surface/20250106T0000Z.updated", + MetOfficeUkNearSurfaceCollection, + Model.uk, + Theme.near_surface, + ), + ( + f"blob://{test_storage_account}/{test_container}/uk/pressure/20250106T0000Z.updated", + MetOfficeUkPressureCollection, + Model.uk, + Theme.pressure_level, + ), + ( + f"blob://{test_storage_account}/{test_container}/uk/whole-atmosphere/20250106T0000Z.updated", + MetOfficeUkWholeAtmosphereCollection, + Model.uk, + Theme.whole_atmosphere, + ), + ], +) +def test_met_office_collection( + asset_uri: str, + collection_class: type[MetOfficeCollection], +) -> None: + class MockBlobClient: + def __init__(self, real_client): + self._real_client = real_client + + def delete_file(self, path): + # Mock delete to avoid modifying storage + pass + + def __getattr__(self, name): + # Delegate all other methods to the real client + return getattr(self._real_client, name) + + class MockStorageFactory: + def __init__(self, real_factory): + self._real_factory = real_factory + + def get_storage(self, uri): + # Use real storage for reading + return self._real_factory.get_storage(uri) + + def get_storage_for_file(self, uri): + # Wrap the real client with our mock to intercept delete + real_client, path = self._real_factory.get_storage_for_file(uri) + return MockBlobClient(real_client), path + + real_storage_factory = StorageFactory() + storage_factory = MockStorageFactory(real_storage_factory) + result = collection_class.create_item(asset_uri, storage_factory) # pyright: ignore[reportArgumentType] + + assert result is not None + assert isinstance(result, list) + assert len(result) == 1 + result[0].validate() From 1168a408e4914efa6b635dd3626005f122758a22 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 6 Jan 2026 11:02:29 -0700 Subject: [PATCH 27/42] fix: tests now work on real files --- datasets/met-office/test_met_office.py | 35 +++++++------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/datasets/met-office/test_met_office.py b/datasets/met-office/test_met_office.py index f4392be23..a9736d05a 100644 --- a/datasets/met-office/test_met_office.py +++ b/datasets/met-office/test_met_office.py @@ -11,62 +11,45 @@ MetOfficeUkWholeAtmosphereCollection, ) from pctasks.core.storage import StorageFactory -from stactools.met_office_deterministic.constants import Model, Theme test_storage_account = "ukmoeuwest" test_container = "staging" @pytest.mark.parametrize( - "asset_uri,collection_class,expected_model,expected_theme", + "asset_uri,collection_class", [ ( - f"blob://{test_storage_account}/{test_container}/global/height/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/global/height/20251205T1200Z/20251208T0000Z-PT0060H00M.updated", MetOfficeGlobalHeightCollection, - Model.global_, - Theme.height, ), ( - f"blob://{test_storage_account}/{test_container}/global/near-surface/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/global/near-surface/20251205T1200Z/20251207T0800Z-PT0044H00M.updated", MetOfficeGlobalNearSurfaceCollection, - Model.global_, - Theme.near_surface, ), ( - f"blob://{test_storage_account}/{test_container}/global/pressure/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/global/pressure/20251205T1200Z/20251207T0400Z-PT0040H00M.updated", MetOfficeGlobalPressureCollection, - Model.global_, - Theme.pressure_level, ), ( - f"blob://{test_storage_account}/{test_container}/global/whole-atmosphere/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/global/whole-atmosphere/20251205T1200Z/20251207T0500Z-PT0041H00M.updated", MetOfficeGlobalWholeAtmosphereCollection, - Model.global_, - Theme.whole_atmosphere, ), ( - f"blob://{test_storage_account}/{test_container}/uk/height/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/uk/height/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", MetOfficeUkHeightCollection, - Model.uk, - Theme.height, ), ( - f"blob://{test_storage_account}/{test_container}/uk/near-surface/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/uk/near-surface/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", MetOfficeUkNearSurfaceCollection, - Model.uk, - Theme.near_surface, ), ( - f"blob://{test_storage_account}/{test_container}/uk/pressure/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/uk/pressure/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", MetOfficeUkPressureCollection, - Model.uk, - Theme.pressure_level, ), ( - f"blob://{test_storage_account}/{test_container}/uk/whole-atmosphere/20250106T0000Z.updated", + f"blob://{test_storage_account}/{test_container}/uk/whole-atmosphere/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", MetOfficeUkWholeAtmosphereCollection, - Model.uk, - Theme.whole_atmosphere, ), ], ) From 4ca2177bcce83206e69fe58281c9533d8f3ee18f Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 6 Jan 2026 11:06:46 -0700 Subject: [PATCH 28/42] fix: update citation --- .../met-office-global-deterministic-height/description.md | 2 +- .../met-office-global-deterministic-near-surface/description.md | 2 +- .../met-office-global-deterministic-pressure/description.md | 2 +- .../description.md | 2 +- .../met-office-uk-deterministic-height/description.md | 2 +- .../met-office-uk-deterministic-near-surface/description.md | 2 +- .../met-office-uk-deterministic-pressure/description.md | 2 +- .../met-office-uk-deterministic-whole-atmosphere/description.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) 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 index f39decfc9..e2b8a60b0 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -40,7 +40,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. ## How to cite -Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. +Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md index 37c0a9d4f..4408c38cc 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md @@ -73,7 +73,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. ## How to cite -Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. +Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). 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 index 61a8282e1..909ac8f3e 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md @@ -40,7 +40,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. ## How to cite -Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. +Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). 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 index dd0fe022d..5745ec963 100644 --- 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 @@ -36,7 +36,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. ## How to cite -Met Office global deterministic 10km forecast was accessed on DATE from _insert Planetary Computer link_. +Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md index f141014f2..a549d2105 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md @@ -46,7 +46,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## How to cite -UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. +UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md index b4d6e3342..0cd4c3b60 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md @@ -64,7 +64,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. ## How to cite -UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. +UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md index aa80c9709..f323116cd 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md @@ -49,7 +49,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## How to cite -UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. +UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index 86430f98f..616cd30e7 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -46,7 +46,7 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## How to cite -UKV 2km deterministic forecast was accessed on DATE from _insert Planetary Computer link_. +UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). ## License From 557b5ac92ce5b84c0c2188b2065a4cbbc3088c58 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 6 Jan 2026 11:12:23 -0700 Subject: [PATCH 29/42] docs: add comment the cleanup script --- datasets/met-office/scripts/cleanup.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/datasets/met-office/scripts/cleanup.py b/datasets/met-office/scripts/cleanup.py index 6d4c10b42..42f8b84fd 100644 --- a/datasets/met-office/scripts/cleanup.py +++ b/datasets/met-office/scripts/cleanup.py @@ -1,3 +1,5 @@ +"""A one-off cleanup script to move datacube information out of item assets up to the top level.""" + import json import sys from typing import Any From 57a1615f999cb0304447929fc50f6838b68c15e1 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 6 Jan 2026 11:36:38 -0700 Subject: [PATCH 30/42] fix: update collection extents --- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- .../template.json | 2 +- .../met-office/scripts/ingest-collections.sh | 52 +++++++++++++++++++ 5 files changed, 56 insertions(+), 4 deletions(-) create mode 100755 datasets/met-office/scripts/ingest-collections.sh 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 748c33c68..5336d788b 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 @@ -25,7 +25,7 @@ }, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] }, "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 265461a12..8f36b335e 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 @@ -25,7 +25,7 @@ }, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] }, "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 862ae46a5..3534cee20 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 @@ -25,7 +25,7 @@ }, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] }, "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 02e74772c..36b355d06 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 @@ -25,7 +25,7 @@ }, "extent": { "spatial": { - "bbox": [[15, 50, 5, 62]] + "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] }, "temporal": { "interval": [["2023-12-15T00:00:00Z", null]] diff --git a/datasets/met-office/scripts/ingest-collections.sh b/datasets/met-office/scripts/ingest-collections.sh new file mode 100755 index 000000000..fcf6a252d --- /dev/null +++ b/datasets/met-office/scripts/ingest-collections.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env sh + +set -e + +COLLECTION_TYPE="${1:-all}" + +case "$COLLECTION_TYPE" in + global) + COLLECTIONS=" + met-office-global-deterministic-height + met-office-global-deterministic-near-surface + met-office-global-deterministic-pressure + met-office-global-deterministic-whole-atmosphere + " + ;; + uk) + COLLECTIONS=" + met-office-uk-deterministic-height + met-office-uk-deterministic-near-surface + met-office-uk-deterministic-pressure + met-office-uk-deterministic-whole-atmosphere + " + ;; + all) + 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 + " + ;; + *) + echo "Usage: $0 [global|uk|all]" + echo " global - Ingest only global collections" + echo " uk - Ingest only UK collections" + echo " all - Ingest all collections (default)" + exit 1 + ;; +esac + +for collection in $COLLECTIONS +do + pctasks dataset ingest-collection \ + -d dataset.yaml \ + -a registry pccomponents \ + -c "$collection" \ + --submit --confirm +done From fbfb03fdea4b2c230778bad105d88c19308d1f22 Mon Sep 17 00:00:00 2001 From: Gustavo Hidalgo Date: Tue, 6 Jan 2026 18:06:55 -0500 Subject: [PATCH 31/42] Ingestion fixes for production release --- .../template.json | 105 +++++-- .../template.json | 249 ++++++++++++---- .../template.json | 132 ++++++-- .../template.json | 119 ++++++-- .../template.json | 109 +++++-- .../template.json | 197 +++++++++--- .../template.json | 281 +++++++++++++++--- .../template.json | 101 +++++-- datasets/met-office/dataset.yaml | 36 +-- datasets/met-office/met_office.py | 6 +- datasets/met-office/requirements.txt | 2 +- datasets/met-office/scripts/cleanup.py | 234 --------------- datasets/met-office/scripts/ingest-items.sh | 54 ++++ datasets/met-office/test_met_office.py | 22 +- 14 files changed, 1120 insertions(+), 527 deletions(-) delete mode 100644 datasets/met-office/scripts/cleanup.py create mode 100755 datasets/met-office/scripts/ingest-items.sh 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 b864b6be3..43a5d2c01 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 @@ -19,35 +19,62 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-height.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Height levels collection Met Office Global 10km deterministic weather forecast thumbnail" } }, "extent": { "spatial": { - "bbox": [[-180, -90, 180, 90]] + "bbox": [ + [ + -180, + -90, + 180, + 90 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", - "keywords": ["Met Office", "Weather", "Forecast", "Global", "Cloud"], + "keywords": [ + "Met Office", + "Weather", + "Forecast", + "Global", + "Cloud" + ], "providers": [ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-global-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -59,7 +86,9 @@ "cloud_amount_on_height_levels": { "type": "application/netcdf", "title": "Cloud amount on height levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer" } }, @@ -68,28 +97,70 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [-90, 90] + "extent": [ + -90, + 90 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [-180, 180] + "extent": [ + -180, + 180 + ] }, "height": { "type": "spatial", "values": [ - 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, - 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, 3500, 3750, - 4000, 4500, 5000, 5500, 6000 + 5, + 10, + 20, + 30, + 50, + 75, + 100, + 150, + 200, + 250, + 300, + 400, + 500, + 600, + 700, + 800, + 1000, + 1250, + 1500, + 1750, + 2000, + 2250, + 2500, + 2750, + 3000, + 3250, + 3500, + 3750, + 4000, + 4500, + 5000, + 5500, + 6000 ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -197,4 +268,4 @@ "unit": "1" } } -} +} \ No newline at end of file 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 9fcc7ca4f..f74ff2662 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 @@ -19,16 +19,30 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-near-surface.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Near-surface level collection Met Office global deterministic 10km forecast thumbnail" } }, "extent": { "spatial": { - "bbox": [[-180, -90, 180, 90]] + "bbox": [ + [ + -180, + -90, + 180, + 90 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", @@ -52,17 +66,24 @@ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-global-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -74,289 +95,385 @@ "fog_fraction_at_screen_level": { "type": "application/netcdf", "title": "Fog fraction at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "fog_area_fraction" }, "height_of_orography": { "type": "application/netcdf", "title": "Height of orography", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_altitude" }, "latent_heat_flux_at_surface_mean-PT01H": { "type": "application/netcdf", "title": "Hourly latent heat flux at surface mean", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_upward_latent_heat_flux" }, "latent_heat_flux_at_surface_mean-PT03H": { "type": "application/netcdf", "title": "3H latent heat flux at surface mean", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_upward_latent_heat_flux" }, "latent_heat_flux_at_surface_mean-PT06H": { "type": "application/netcdf", "title": "6H latent heat flux at surface mean", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_upward_latent_heat_flux" }, "precipitation_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly precipitation accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_accumulation-PT03H": { "type": "application/netcdf", "title": "3H precipitation accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_accumulation-PT06H": { "type": "application/netcdf", "title": "6H precipitation accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_rate": { "type": "application/netcdf", "title": "Precipitation rate", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_precipitation_rate" }, "pressure_at_mean_sea_level": { "type": "application/netcdf", "title": "Pressure at mean sea level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_pressure_at_sea_level" }, "radiation_flux_in_longwave_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in longwave downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_downwelling_longwave_flux_in_air" }, "radiation_flux_in_shortwave_direct_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave direct downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_shortwave_total_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave total downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_uv_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in uv downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air" }, "rainfall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly rainfall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_accumulation-PT03H": { "type": "application/netcdf", "title": "3H rainfall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_accumulation-PT06H": { "type": "application/netcdf", "title": "6H rainfall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_rate": { "type": "application/netcdf", "title": "Rainfall rate", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "rainfall_rate" }, "rainfall_rate_from_convection": { "type": "application/netcdf", "title": "Rainfall rate from convection", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "convective_rainfall_rate" }, "rainfall_rate_from_convection_max-PT01H": { "type": "application/netcdf", "title": "Hourly rainfall rate from convection max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "convective_rainfall_rate" }, "rainfall_rate_from_convection_max-PT03H": { "type": "application/netcdf", "title": "3H rainfall rate from convection max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "convective_rainfall_rate" }, "rainfall_rate_from_convection_max-PT06H": { "type": "application/netcdf", "title": "6H rainfall rate from convection max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "convective_rainfall_rate" }, "relative_humidity_at_screen_level": { "type": "application/netcdf", "title": "Relative humidity at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "relative_humidity" }, "snow_depth_water_equivalent": { "type": "application/netcdf", "title": "Snow depth water equivalent", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_surface_snow_amount" }, "snowfall_rate": { "type": "application/netcdf", "title": "Snowfall rate", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_snowfall_rate" }, "snowfall_rate_from_convection": { "type": "application/netcdf", "title": "Snowfall rate from convection", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_max-PT01H": { "type": "application/netcdf", "title": "Hourly snowfall rate from convection max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_max-PT03H": { "type": "application/netcdf", "title": "3H snowfall rate from convection max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_max-PT06H": { "type": "application/netcdf", "title": "6H snowfall rate from convection max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_mean-PT01H": { "type": "application/netcdf", "title": "Hourly snowfall rate from convection mean", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_mean-PT03H": { "type": "application/netcdf", "title": "3H snowfall rate from convection mean", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_convective_snowfall_rate" }, "snowfall_rate_from_convection_mean-PT06H": { "type": "application/netcdf", "title": "6H snowfall rate from convection mean", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_convective_snowfall_rate" }, "temperature_at_screen_level": { "type": "application/netcdf", "title": "Temperature at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT03H": { "type": "application/netcdf", "title": "3H temperature at screen level max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT06H": { "type": "application/netcdf", "title": "6H temperature at screen level max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level min", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT03H": { "type": "application/netcdf", "title": "3H remperature at screen level min", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT06H": { "type": "application/netcdf", "title": "6H temperature at screen level min", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_surface": { "type": "application/netcdf", "title": "Temperature at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_temperature" }, "temperature_of_dew_point_at_screen_level": { "type": "application/netcdf", "title": "Dew point temperature at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "dew_point_temperature" }, "visibility_at_screen_level": { "type": "application/netcdf", "title": "Visibility at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "visibility_in_air" }, "wind_direction_at_10m": { "type": "application/netcdf", "title": "Wind direction at 10m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_from_direction" }, "wind_gust_at_10m": { "type": "application/netcdf", "title": "Wind gust at 10m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT01H": { "type": "application/netcdf", "title": "Hourly wind gust at 10m max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT03H": { "type": "application/netcdf", "title": "3H wind gust at 10m max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT06H": { "type": "application/netcdf", "title": "6H wind gust at 10m max", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed_of_gust" }, "wind_speed_at_10m": { "type": "application/netcdf", "title": "Wind speed at 10m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed" } }, @@ -365,20 +482,32 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [-90, 90] + "extent": [ + -90, + 90 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [-180, 180] + "extent": [ + -180, + 180 + ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -738,4 +867,4 @@ "unit": "m/s" } } -} +} \ No newline at end of file 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 5ed6a3ef6..ae76ccb28 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 @@ -19,35 +19,60 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-pressure.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Pressure levels collection Met Office Global 10km deterministic weather forecast thumbnail" } }, "extent": { "spatial": { - "bbox": [[-180, -90, 180, 90]] + "bbox": [ + [ + -180, + -90, + 180, + 90 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", - "keywords": ["MetOffice", "Global", "Cloud"], + "keywords": [ + "MetOffice", + "Global", + "Cloud" + ], "providers": [ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-global-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -59,49 +84,65 @@ "geopotential_height_on_pressure_levels": { "type": "application/netcdf", "title": "Geopotential height on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "geopotential_height" }, "height_ASL_on_pressure_levels": { "type": "application/netcdf", "title": "Height Above Sea Level on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "geopotential_height" }, "relative_humidity_on_pressure_levels": { "type": "application/netcdf", "title": "Relative humidity on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "relative_humidity" }, "temperature_on_pressure_levels": { "type": "application/netcdf", "title": "Temperature on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "wet_bulb_potential_temperature_on_pressure_levels": { "type": "application/netcdf", "title": "Wet bulb potential temperature on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wet_bulb_potential_temperature" }, "wind_direction_on_pressure_levels": { "type": "application/netcdf", "title": "Wind direction on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_from_direction" }, "wind_speed_on_pressure_levels": { "type": "application/netcdf", "title": "Wind speed on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed" }, "wind_vertical_velocity_on_pressure_levels": { "type": "application/netcdf", "title": "Wind vertical velocity on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "upward_air_velocity" } }, @@ -110,29 +151,70 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [-90, 90] + "extent": [ + -90, + 90 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [-180, 180] + "extent": [ + -180, + 180 + ] }, "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, 3000, - 2000, 1000 + 100000, + 97500, + 95000, + 92500, + 90000, + 85000, + 80000, + 75000, + 70000, + 6500, + 60000, + 55000, + 50000, + 45000, + 40000, + 37500, + 35000, + 32500, + 30000, + 27500, + 25000, + 22500, + 20000, + 17500, + 15000, + 12500, + 10000, + 7000, + 5000, + 4000, + 3000, + 2000, + 1000 ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -312,4 +394,4 @@ "unit": "m/s" } } -} +} \ No newline at end of file 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 49274ffb5..7d1382d5a 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 @@ -19,35 +19,60 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-global-deterministic-whole-atmosphere.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Whole Atmosphere collection Met Office Global 10km deterministic weather forecast thumbnail" } }, "extent": { "spatial": { - "bbox": [[-180, -90, 180, 90]] + "bbox": [ + [ + -180, + -90, + 180, + 90 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", - "keywords": ["MetOffice", "Global", "Cloud"], + "keywords": [ + "MetOffice", + "Global", + "Cloud" + ], "providers": [ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-global-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -59,85 +84,113 @@ "CAPE_mixed_layer_lowest_500m": { "type": "application/netcdf", "title": "CAPE mixed layer lowest 500m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_available_potential_energy" }, "CAPE_most_unstable_below_500hPa": { "type": "application/netcdf", "title": "CAPE most unstable below 500hPa", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_available_potential_energy" }, "CAPE_surface": { "type": "application/netcdf", "title": "CAPE surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface" }, "CIN_mixed_layer_lowest_500m": { "type": "application/netcdf", "title": "CIN mixed layer lowest 500m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_inhibition" }, "CIN_most_unstable_below_500hPa": { "type": "application/netcdf", "title": "CIN most unstable below 500hPa", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_inhibition" }, "CIN_surface": { "type": "application/netcdf", "title": "CIN surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_inhibition_wrt_surface" }, "cloud_amount_below_1000ft_ASL": { "type": "application/netcdf", "title": "Cloud amount below 1000ft ASL", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl" }, "cloud_amount_of_high_cloud": { "type": "application/netcdf", "title": "Cloud amount of high cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "high_type_cloud_area_fraction" }, "cloud_amount_of_low_cloud": { "type": "application/netcdf", "title": "Cloud amount of low cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "low_type_cloud_area_fraction" }, "cloud_amount_of_medium_cloud": { "type": "application/netcdf", "title": "Cloud amount of medium cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "medium_type_cloud_area_fraction" }, "cloud_amount_of_total_cloud": { "type": "application/netcdf", "title": "Cloud amount of total cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "cloud_area_fraction" }, "cloud_amount_of_total_convective_cloud": { "type": "application/netcdf", "title": "Cloud amount of total convective cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "convective_cloud_area_fraction" }, "pressure_at_tropopause": { "type": "application/netcdf", "title": "Pressure at tropopause", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "tropopause_air_pressure" }, "temperature_at_tropopause": { "type": "application/netcdf", "title": "Temperature at tropopause", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "tropopause_air_temperature" } }, @@ -146,20 +199,32 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [-90, 90] + "extent": [ + -90, + 90 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [-180, 180] + "extent": [ + -180, + 180 + ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -387,4 +452,4 @@ "unit": "K" } } -} +} \ No newline at end of file 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 5336d788b..7db4829bf 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,16 +19,30 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-height.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Height levels collection Met Office UKV 2km deterministic forecast thumbnail" } }, "extent": { "spatial": { - "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] + "bbox": [ + [ + -13.7254, + 48.8643, + 4.3408, + 61.6102 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", @@ -46,17 +60,24 @@ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-uk-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -68,25 +89,33 @@ "cloud_amount_on_height_levels": { "type": "application/netcdf", "title": "Cloud amount on height levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "cloud_volume_fraction_in_atmosphere_layer" }, "temperature_on_height_levels": { "type": "application/netcdf", "title": "Temperature on height levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "wind_direction_on_height_levels": { "type": "application/netcdf", "title": "Wind direction on height levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_from_direction" }, "wind_speed_on_height_levels": { "type": "application/netcdf", "title": "Wind speed on height levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed" } }, @@ -95,28 +124,70 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [50, 62] + "extent": [ + 50, + 62 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [5, 15] + "extent": [ + 5, + 15 + ] }, "height": { "type": "spatial", "values": [ - 5, 10, 20, 30, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, - 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, 3500, 3750, - 4000, 4500, 5000, 5500, 6000 + 5, + 10, + 20, + 30, + 50, + 75, + 100, + 150, + 200, + 250, + 300, + 400, + 500, + 600, + 700, + 800, + 1000, + 1250, + 1500, + 1750, + 2000, + 2250, + 2500, + 2750, + 3000, + 3250, + 3500, + 3750, + 4000, + 4500, + 5000, + 5500, + 6000 ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -248,4 +319,4 @@ "unit": "m/s" } } -} +} \ No newline at end of file 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 8f36b335e..844dafc0e 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,16 +19,30 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-near-surface.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Near-surface level collection Met Office UKV 2km deterministic forecast Thumbnail" } }, "extent": { "spatial": { - "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] + "bbox": [ + [ + -13.7254, + 48.8643, + 4.3408, + 61.6102 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", @@ -47,17 +61,24 @@ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-uk-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -69,211 +90,281 @@ "fog_fraction_at_screen_level": { "type": "application/netcdf", "title": "Fog fraction at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "fog_area_fraction" }, "hail_fall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly hail fall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_graupel_and_hail_fall_amount" }, "hail_fall_rate": { "type": "application/netcdf", "title": "Hail fall rate", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_graupel_and_hail_fall_rate" }, "height_of_orography": { "type": "application/netcdf", "title": "Height of orography", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_altitude" }, "landsea_mask": { "type": "application/netcdf", "title": "Landsea mask", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "land_binary_mask" }, "precipitation_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly precipitation accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_accumulation-PT03H": { "type": "application/netcdf", "title": "3H precipitation accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_precipitation_amount" }, "precipitation_rate": { "type": "application/netcdf", "title": "Precipitation rate", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_precipitation_rate" }, "pressure_at_mean_sea_level": { "type": "application/netcdf", "title": "Pressure at mean sea level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_pressure_at_sea_level" }, "pressure_at_surface": { "type": "application/netcdf", "title": "Pressure at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_air_pressure" }, "radiation_flux_in_longwave_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in longwave downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_downwelling_longwave_flux_in_air" }, "radiation_flux_in_shortwave_diffuse_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave diffuse downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_diffusive_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_shortwave_direct_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave direct downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_direct_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_shortwave_total_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in shortwave total downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_downwelling_shortwave_flux_in_air" }, "radiation_flux_in_uv_downward_at_surface": { "type": "application/netcdf", "title": "Radiation flux in uv downward at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_downwelling_ultraviolet_flux_in_air" }, "rainfall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly rainfall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_accumulation-PT03H": { "type": "application/netcdf", "title": "3H rainfall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "thickness_of_rainfall_amount" }, "rainfall_rate": { "type": "application/netcdf", "title": "Rainfall rate", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "rainfall_rate" }, "relative_humidity_at_screen_level": { "type": "application/netcdf", "title": "Relative humidity at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "relative_humidity" }, "sensible_heat_flux_at_surface": { "type": "application/netcdf", "title": "Sensible heat flux at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_upward_sensible_heat_flux" }, "snow_depth_water_equivalent": { "type": "application/netcdf", "title": "Snow depth water equivalent", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_surface_snow_amount" }, "snowfall_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly snowfall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_snowfall_amount" }, "snowfall_accumulation-PT03H": { "type": "application/netcdf", "title": "3H snowfall accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_thickness_of_snowfall_amount" }, "snowfall_rate": { "type": "application/netcdf", "title": "Snowfall rate", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "lwe_snowfall_rate" }, "temperature_at_screen_level": { "type": "application/netcdf", "title": "Temperature at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_max-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level maximum", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_screen_level_min-PT01H": { "type": "application/netcdf", "title": "Hourly temperature at screen level minimum", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature" }, "temperature_at_surface": { "type": "application/netcdf", "title": "Temperature at surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "surface_temperature" }, "temperature_of_dew_point_at_screen_level": { "type": "application/netcdf", "title": "Dew point temperature at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "dew_point_temperature" }, "visibility_at_screen_level": { "type": "application/netcdf", "title": "Visibility at screen level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "visibility_in_air" }, "wind_direction_at_10m": { "type": "application/netcdf", "title": "Wind direction at 10m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_from_direction" }, "wind_gust_at_10m": { "type": "application/netcdf", "title": "Wind gust at 10m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT01H": { "type": "application/netcdf", "title": "Hourly wind gust at 10m maximum", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed_of_gust" }, "wind_gust_at_10m_max-PT03H": { "type": "application/netcdf", "title": "3H wind gust at 10m maximum", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed_of_gust" }, "wind_speed_at_10m": { "type": "application/netcdf", "title": "Wind speed at 10m", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed" } }, @@ -282,20 +373,32 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [50, 62] + "extent": [ + 50, + 62 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [5, 15] + "extent": [ + 5, + 15 + ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -687,4 +790,4 @@ "unit": "m/s" } } -} +} \ No newline at end of file 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 3534cee20..f285ee33d 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,16 +19,30 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-pressure.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Pressure levels collection Met Office UKV 2km deterministic forecast Thumbnail" } }, "extent": { "spatial": { - "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] + "bbox": [ + [ + -13.7254, + 48.8643, + 4.3408, + 61.6102 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", @@ -46,17 +60,24 @@ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-uk-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -68,38 +89,81 @@ "geopotential_height_on_pressure_levels": { "type": "application/netcdf", "title": "Geopotential height on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "geopotential_height", "height_ASL_on_pressure_levels": { "type": "application/netcdf", "title": "Height Above Sea Level on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "geopotential_height", "cube:dimensions": { "latitude": { "type": "spatial", "axis": "y", - "extent": [50, 62] + "extent": [ + 50, + 62 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [5, 15] + "extent": [ + 5, + 15 + ] }, "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, - 6500, 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, - 30000, 27500, 25000, 22500, 20000, 17500, 15000, 12500, 10000, - 7000, 5000, 4000, 3000, 2000, 1000 + 100000, + 97500, + 95000, + 92500, + 90000, + 85000, + 80000, + 75000, + 70000, + 6500, + 60000, + 55000, + 50000, + 45000, + 40000, + 37500, + 35000, + 32500, + 30000, + 27500, + 25000, + 22500, + 20000, + 17500, + 15000, + 12500, + 10000, + 7000, + 5000, + 4000, + 3000, + 2000, + 1000 ] } }, "cube:variables": { "geopotential_height": { "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", - "dimensions": ["latitude", "longitude", "pressure_levels"], + "dimensions": [ + "latitude", + "longitude", + "pressure_levels" + ], "unit": "m", "type": "data" } @@ -108,33 +172,74 @@ "relative_humidity_on_pressure_levels": { "type": "application/netcdf", "title": "Relative humidity on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "relative_humidity", "cube:dimensions": { "latitude": { "type": "spatial", "axis": "y", - "extent": [50, 62] + "extent": [ + 50, + 62 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [5, 15] + "extent": [ + 5, + 15 + ] }, "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, - 6500, 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, - 30000, 27500, 25000, 22500, 20000, 17500, 15000, 12500, 10000, - 7000, 5000, 4000, 3000, 2000, 1000 + 100000, + 97500, + 95000, + 92500, + 90000, + 85000, + 80000, + 75000, + 70000, + 6500, + 60000, + 55000, + 50000, + 45000, + 40000, + 37500, + 35000, + 32500, + 30000, + 27500, + 25000, + 22500, + 20000, + 17500, + 15000, + 12500, + 10000, + 7000, + 5000, + 4000, + 3000, + 2000, + 1000 ] } }, "cube:variables": { "relative_humidity": { "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", - "dimensions": ["latitude", "longitude", "pressure_levels"], + "dimensions": [ + "latitude", + "longitude", + "pressure_levels" + ], "unit": "1", "type": "data" } @@ -143,33 +248,74 @@ "temperature_on_pressure_levels": { "type": "application/netcdf", "title": "Temperature on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "air_temperature", "cube:dimensions": { "latitude": { "type": "spatial", "axis": "y", - "extent": [50, 62] + "extent": [ + 50, + 62 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [5, 15] + "extent": [ + 5, + 15 + ] }, "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, - 6500, 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, - 30000, 27500, 25000, 22500, 20000, 17500, 15000, 12500, 10000, - 7000, 5000, 4000, 3000, 2000, 1000 + 100000, + 97500, + 95000, + 92500, + 90000, + 85000, + 80000, + 75000, + 70000, + 6500, + 60000, + 55000, + 50000, + 45000, + 40000, + 37500, + 35000, + 32500, + 30000, + 27500, + 25000, + 22500, + 20000, + 17500, + 15000, + 12500, + 10000, + 7000, + 5000, + 4000, + 3000, + 2000, + 1000 ] } }, "cube:variables": { "air_temperature": { "description": "Air temperature on pressure levels", - "dimensions": ["latitude", "longitude", "pressure_levels"], + "dimensions": [ + "latitude", + "longitude", + "pressure_levels" + ], "type": "data", "unit": "K" } @@ -179,19 +325,25 @@ "wet_bulb_potential_temperature_on_pressure_levels": { "type": "application/netcdf", "title": "Wet bulb potential temperature on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wet_bulb_potential_temperature" }, "wind_direction_on_pressure_levels": { "type": "application/netcdf", "title": "Wind direction on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_from_direction" }, "wind_speed_on_pressure_levels": { "type": "application/netcdf", "title": "Wind speed on pressure levels", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wind_speed" } }, @@ -200,29 +352,70 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [50, 62] + "extent": [ + 50, + 62 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [5, 15] + "extent": [ + 5, + 15 + ] }, "pressure_levels": { "type": "spatial", "values": [ - 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, - 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, - 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, 3000, - 2000, 1000 + 100000, + 97500, + 95000, + 92500, + 90000, + 85000, + 80000, + 75000, + 70000, + 6500, + 60000, + 55000, + 50000, + 45000, + 40000, + 37500, + 35000, + 32500, + 30000, + 27500, + 25000, + 22500, + 20000, + 17500, + 15000, + 12500, + 10000, + 7000, + 5000, + 4000, + 3000, + 2000, + 1000 ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -354,4 +547,4 @@ "unit": "m/s" } } -} +} \ No newline at end of file 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 36b355d06..8fcd7e403 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,16 +19,30 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-whole-atmosphere.jpg", "type": "image/jpeg", - "roles": ["thumbnail"], + "roles": [ + "thumbnail" + ], "title": "Whole Atmosphere collection Met Office UKV 2km deterministic forecast thumbnail" } }, "extent": { "spatial": { - "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] + "bbox": [ + [ + -13.7254, + 48.8643, + 4.3408, + 61.6102 + ] + ] }, "temporal": { - "interval": [["2023-12-15T00:00:00Z", null]] + "interval": [ + [ + "2023-12-15T00:00:00Z", + null + ] + ] } }, "license": "proprietary", @@ -47,17 +61,24 @@ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": ["producer", "licensor", "processor"] + "roles": [ + "producer", + "licensor", + "processor" + ] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": ["host", "processor"] + "roles": [ + "host", + "processor" + ] } ], "stac_version": "1.0.0", - "msft:group_id": "metoffice", - "msft:container": "staging", + "msft:group_id": "met-office-uk-deterministic", + "msft:container": "deterministic", "stac_extensions": [ "https://stac-extensions.github.io/forecast/v0.2.0/schema.json", "https://stac-extensions.github.io/datacube/v2.0.0/schema.json" @@ -69,67 +90,89 @@ "CAPE_most_unstable_below_500hPa": { "type": "application/netcdf", "title": "CAPE most unstable below 500hPa", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_available_potential_energy" }, "CAPE_surface": { "type": "application/netcdf", "title": "CAPE surface", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "atmosphere_convective_available_potential_energy_wrt_surface" }, "cloud_amount_below_1000ft_ASL": { "type": "application/netcdf", "title": "Cloud amount below 1000ft ASL", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "cloud_area_fraction_assuming_only_consider_surface_to_1000_feet_asl" }, "cloud_amount_of_high_cloud": { "type": "application/netcdf", "title": "Cloud amount of high cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "high_type_cloud_area_fraction" }, "cloud_amount_of_low_cloud": { "type": "application/netcdf", "title": "Cloud amount of low cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "low_type_cloud_area_fraction" }, "cloud_amount_of_medium_cloud": { "type": "application/netcdf", "title": "Cloud amount of medium cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "medium_type_cloud_area_fraction" }, "cloud_amount_of_total_cloud": { "type": "application/netcdf", "title": "Cloud amount of total cloud", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "cloud_area_fraction" }, "height_AGL_at_cloud_base_where_cloud_cover_2p5_oktas": { "type": "application/netcdf", "title": "Height AGL at cloud base where cloud cover 2p5 oktas", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "cloud_base_height_2p5_oktas" }, "height_AGL_at_freezing_level": { "type": "application/netcdf", "title": "Height AGL at freezing level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "freezing_level_height" }, "height_AGL_at_wet_bulb_freezing_level": { "type": "application/netcdf", "title": "Height AGL at wet bulb freezing level", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "wet_bulb_freezing_level_height" }, "lightning_flash_accumulation-PT01H": { "type": "application/netcdf", "title": "Hourly lightning flash accumulation", - "roles": ["data"], + "roles": [ + "data" + ], "forecast:variable": "number_of_lightning_flashes_per_unit_area" } }, @@ -138,20 +181,32 @@ "latitude": { "type": "spatial", "axis": "y", - "extent": [50, 62] + "extent": [ + 50, + 62 + ] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [5, 15] + "extent": [ + 5, + 15 + ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", null] + "extent": [ + "2023-12-15T00:00:00Z", + null + ] }, "forecast:horizon": { "type": "temporal", - "extent": [null, null], + "extent": [ + null, + null + ], "values": [ "PT0H", "PT1H", @@ -356,4 +411,4 @@ "unit": "count/m2" } } -} +} \ No newline at end of file diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index b84858ffc..082263cc3 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -10,15 +10,17 @@ code: 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 template: ${{ local.path(./collection/met-office-global-deterministic-height) }} class: met_office:MetOfficeGlobalHeightCollection asset_storage: - - uri: blob://ukmoeuwest/staging/global/height + # "global/whole-atmosphere/update/2025/10/23/1200Z/20251023T1200Z-PT0000H00M.updated" + - uri: blob://ukmoeuwest/deterministic/global/height/updated chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 @@ -26,12 +28,12 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks - id: met-office-global-deterministic-near-surface template: ${{ local.path(./collection/met-office-global-deterministic-near-surface) }} class: met_office:MetOfficeGlobalNearSurfaceCollection asset_storage: - - uri: blob://ukmoeuwest/staging/global/near-surface + - uri: blob://ukmoeuwest/deterministic/global/near-surface chunks: options: min_depth: 1 @@ -40,12 +42,12 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks - id: met-office-global-deterministic-pressure template: ${{ local.path(./collection/met-office-global-deterministic-pressure) }} class: met_office:MetOfficeGlobalPressureCollection asset_storage: - - uri: blob://ukmoeuwest/staging/global/pressure + - uri: blob://ukmoeuwest/deterministic/global/pressure chunks: options: min_depth: 1 @@ -54,12 +56,12 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks - id: met-office-global-deterministic-whole-atmosphere template: ${{ local.path(./collection/met-office-global-deterministic-whole-atmosphere) }} class: met_office:MetOfficeGlobalWholeAtmosphereCollection asset_storage: - - uri: blob://ukmoeuwest/staging/global/whole-atmosphere + - uri: blob://ukmoeuwest/deterministic/global/whole-atmosphere chunks: options: min_depth: 1 @@ -68,12 +70,12 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks - id: met-office-uk-deterministic-height template: ${{ local.path(./collection/met-office-uk-deterministic-height) }} class: met_office:MetOfficeUkHeightCollection asset_storage: - - uri: blob://ukmoeuwest/staging/uk/height + - uri: blob://ukmoeuwest/deterministic/uk/height chunks: options: min_depth: 1 @@ -82,12 +84,12 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks - id: met-office-uk-deterministic-near-surface template: ${{ local.path(./collection/met-office-uk-deterministic-near-surface) }} class: met_office:MetOfficeUkNearSurfaceCollection asset_storage: - - uri: blob://ukmoeuwest/staging/uk/near-surface + - uri: blob://ukmoeuwest/deterministic/uk/near-surface chunks: options: min_depth: 1 @@ -96,12 +98,12 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks - id: met-office-uk-deterministic-pressure template: ${{ local.path(./collection/met-office-uk-deterministic-pressure) }} class: met_office:MetOfficeUkPressureCollection asset_storage: - - uri: blob://ukmoeuwest/staging/uk/pressure + - uri: blob://ukmoeuwest/deterministic/uk/pressure chunks: options: min_depth: 1 @@ -110,12 +112,12 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks - id: met-office-uk-deterministic-whole-atmosphere template: ${{ local.path(./collection/met-office-uk-deterministic-whole-atmosphere) }} class: met_office:MetOfficeUkWholeAtmosphereCollection asset_storage: - - uri: blob://ukmoeuwest/staging/uk/whole-atmosphere + - uri: blob://ukmoeuwest/deterministic/uk/whole-atmosphere chunks: options: min_depth: 1 @@ -124,4 +126,4 @@ collections: - .updated chunk_length: 20000 chunk_storage: - uri: blob://ukmoeuwest/staging/staging-chunks/ + uri: blob://ukmoeuwest/chunks diff --git a/datasets/met-office/met_office.py b/datasets/met-office/met_office.py index 0a4cbec3e..cfc992dd8 100644 --- a/datasets/met-office/met_office.py +++ b/datasets/met-office/met_office.py @@ -26,7 +26,8 @@ def create_item( ) -> Union[list[Item], WaitTaskResult]: logger.info(f"Found sentinel file: {asset_uri}") parts = asset_uri.split("/") - storage_uri = "/".join(parts[0:-1]) + parent = "".join(parts[7:10]) + "T" + parts[10] + storage_uri = "/".join(parts[0:6] + [parent]) item_id = parts[-1].split(".")[0] storage = storage_factory.get_storage(storage_uri) logger.info(f"Listing {storage_uri} for item {item_id}") @@ -41,9 +42,6 @@ def create_item( 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 e923ea9a2..8ff9c4599 100644 --- a/datasets/met-office/requirements.txt +++ b/datasets/met-office/requirements.txt @@ -1 +1 @@ -stactools-met-office-deterministic==0.3.2 +stactools-met-office-deterministic==0.3.3 diff --git a/datasets/met-office/scripts/cleanup.py b/datasets/met-office/scripts/cleanup.py deleted file mode 100644 index 42f8b84fd..000000000 --- a/datasets/met-office/scripts/cleanup.py +++ /dev/null @@ -1,234 +0,0 @@ -"""A one-off cleanup script to move datacube information out of item assets up to the top level.""" - -import json -import sys -from typing import Any - -path = sys.argv[1] - -dimensions = {} -variables = {} -with open(path) as f: - data = json.load(f) - - -def update_dimensions(key: str, value: dict[str, Any]) -> None: - if existing_dimension := dimensions.get(key): - if existing_values := existing_dimension.get("values"): - new_values = value["values"] - if len(new_values) > len(existing_values): - dimensions["values"] = new_values - else: - dimensions[key] = value - - -for item_asset in data["item_assets"].values(): - item_asset_dimensions = list() - for key, value in item_asset["cube:dimensions"].items(): - update_dimensions(key, value) - item_asset_dimensions.append(key) - item_asset_dimensions += ["forecast:reference_datetime", "forecast:horizon"] - for key, value in item_asset["cube:variables"].items(): - value["dimensions"] = item_asset_dimensions - variables[key] = value - - del item_asset["cube:dimensions"] - del item_asset["cube:variables"] - -id = data["id"] -dimensions.update( - { - "forecast:reference_datetime": { - "type": "temporal", - "extent": ["2023-12-15T00:00:00Z", None], - }, - "forecast:horizon": { - "type": "temporal", - "extent": [None, None], - "values": [ - "PT0H", - "PT1H", - "PT2H", - "PT3H", - "PT4H", - "PT5H", - "PT6H", - "PT7H", - "PT8H", - "PT9H", - "PT10H", - "PT11H", - "PT12H", - "PT13H", - "PT14H", - "PT15H", - "PT16H", - "PT17H", - "PT18H", - "PT19H", - "PT20H", - "PT21H", - "PT22H", - "PT23H", - "PT24H", - "PT25H", - "PT26H", - "PT27H", - "PT28H", - "PT29H", - "PT30H", - "PT31H", - "PT32H", - "PT33H", - "PT34H", - "PT35H", - "PT36H", - "PT37H", - "PT38H", - "PT39H", - "PT40H", - "PT41H", - "PT42H", - "PT43H", - "PT44H", - "PT45H", - "PT46H", - "PT47H", - "PT48H", - "PT49H", - "PT50H", - "PT51H", - "PT52H", - "PT53H", - "PT54H", - "PT57H", - "PT60H", - "PT63H", - "PT66H", - "PT69H", - "PT72H", - "PT75H", - "PT78H", - "PT81H", - "PT84H", - "PT87H", - "PT90H", - "PT93H", - "PT96H", - "PT99H", - "PT102H", - "PT105H", - "PT108H", - "PT111H", - "PT114H", - "PT117H", - "PT120H", - "PT123H", - "PT126H", - "PT129H", - "PT132H", - "PT135H", - "PT138H", - "PT141H", - "PT144H", - "PT150H", - "PT156H", - "PT162H", - "PT168H", - ] - if "global" in id - else [ - "PT0H", - "PT1H", - "PT2H", - "PT3H", - "PT4H", - "PT5H", - "PT6H", - "PT7H", - "PT8H", - "PT9H", - "PT10H", - "PT11H", - "PT12H", - "PT13H", - "PT14H", - "PT15H", - "PT16H", - "PT17H", - "PT18H", - "PT19H", - "PT20H", - "PT21H", - "PT22H", - "PT23H", - "PT24H", - "PT25H", - "PT26H", - "PT27H", - "PT28H", - "PT29H", - "PT30H", - "PT31H", - "PT32H", - "PT33H", - "PT34H", - "PT35H", - "PT36H", - "PT37H", - "PT38H", - "PT39H", - "PT40H", - "PT41H", - "PT42H", - "PT43H", - "PT44H", - "PT45H", - "PT46H", - "PT47H", - "PT48H", - "PT49H", - "PT50H", - "PT51H", - "PT52H", - "PT53H", - "PT54H", - "PT57H", - "PT60H", - "PT63H", - "PT66H", - "PT69H", - "PT72H", - "PT75H", - "PT78H", - "PT81H", - "PT84H", - "PT87H", - "PT90H", - "PT93H", - "PT96H", - "PT99H", - "PT102H", - "PT105H", - "PT108H", - "PT111H", - "PT114H", - "PT117H", - "PT120H", - ], - }, - } -) - -data["description"] = "{{ collection.description }}" -data["assets"]["thumbnail"]["href"] = ( - f"https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/{id}.jpg" -) -data["assets"]["thumbnail"]["type"] = "image/jpeg" -data["msft:container"] = "staging" -data["msft:storage_account"] = "ukmoeuwest" -data["cube:dimensions"] = dimensions -data["cube:variables"] = variables - -with open(path, "w") as f: - json.dump(data, f, indent=2) diff --git a/datasets/met-office/scripts/ingest-items.sh b/datasets/met-office/scripts/ingest-items.sh new file mode 100755 index 000000000..5a4fef811 --- /dev/null +++ b/datasets/met-office/scripts/ingest-items.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env sh + +set -e + +COLLECTION_TYPE="${1:-all}" + +case "$COLLECTION_TYPE" in + global) + COLLECTIONS=" + met-office-global-deterministic-height + met-office-global-deterministic-near-surface + met-office-global-deterministic-pressure + met-office-global-deterministic-whole-atmosphere + " + ;; + uk) + COLLECTIONS=" + met-office-uk-deterministic-height + met-office-uk-deterministic-near-surface + met-office-uk-deterministic-pressure + met-office-uk-deterministic-whole-atmosphere + " + ;; + all) + 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 + " + ;; + *) + echo "Usage: $0 [global|uk|all]" + echo " global - Ingest only global collections" + echo " uk - Ingest only UK collections" + echo " all - Ingest all collections (default)" + exit 1 + ;; +esac + +for collection in $COLLECTIONS +do + pctasks dataset process-items \ + -d dataset.yaml \ + -a registry pccomponents.azurecr.io \ + -c "$collection" ingest \ + --since '2026-01-01T00:00:00Z' \ + --limit 100 \ + --confirm --submit +done diff --git a/datasets/met-office/test_met_office.py b/datasets/met-office/test_met_office.py index a9736d05a..dc79a8d7a 100644 --- a/datasets/met-office/test_met_office.py +++ b/datasets/met-office/test_met_office.py @@ -13,44 +13,48 @@ from pctasks.core.storage import StorageFactory test_storage_account = "ukmoeuwest" -test_container = "staging" +test_container = "deterministic" @pytest.mark.parametrize( "asset_uri,collection_class", [ ( - f"blob://{test_storage_account}/{test_container}/global/height/20251205T1200Z/20251208T0000Z-PT0060H00M.updated", + f"blob://{test_storage_account}/{test_container}/global/height/update/2026/01/06/1200Z/20260113T1200Z-PT0168H00M.updated", MetOfficeGlobalHeightCollection, ), ( - f"blob://{test_storage_account}/{test_container}/global/near-surface/20251205T1200Z/20251207T0800Z-PT0044H00M.updated", + f"blob://{test_storage_account}/{test_container}/global/near-surface/update/2026/01/06/1200Z/20260113T1200Z-PT0168H00M.updated", MetOfficeGlobalNearSurfaceCollection, ), ( - f"blob://{test_storage_account}/{test_container}/global/pressure/20251205T1200Z/20251207T0400Z-PT0040H00M.updated", + f"blob://{test_storage_account}/{test_container}/global/pressure/update/2026/01/06/1200Z/20260113T1200Z-PT0168H00M.updated", MetOfficeGlobalPressureCollection, ), ( - f"blob://{test_storage_account}/{test_container}/global/whole-atmosphere/20251205T1200Z/20251207T0500Z-PT0041H00M.updated", + f"blob://{test_storage_account}/{test_container}/global/whole-atmosphere/update/2026/01/06/1200Z/20260113T1200Z-PT0168H00M.updated", MetOfficeGlobalWholeAtmosphereCollection, ), ( - f"blob://{test_storage_account}/{test_container}/uk/height/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", + f"blob://{test_storage_account}/{test_container}/uk/height/update/2024/06/26/0700Z/20240626T1900Z-PT0012H00M.updated", MetOfficeUkHeightCollection, ), ( - f"blob://{test_storage_account}/{test_container}/uk/near-surface/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", + f"blob://{test_storage_account}/{test_container}/uk/near-surface/update/2024/11/29/0600Z/20241201T1200Z-PT0054H00M.updated", MetOfficeUkNearSurfaceCollection, ), ( - f"blob://{test_storage_account}/{test_container}/uk/pressure/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", + f"blob://{test_storage_account}/{test_container}/uk/pressure/update/2024/10/25/1700Z/20241026T0500Z-PT0012H00M.updated", MetOfficeUkPressureCollection, ), ( - f"blob://{test_storage_account}/{test_container}/uk/whole-atmosphere/20251205T1500Z/20251205T1500Z-PT0000H00M.updated", + f"blob://{test_storage_account}/{test_container}/uk/whole-atmosphere/update/2024/12/13/1100Z/20241213T2300Z-PT0012H00M.updated", MetOfficeUkWholeAtmosphereCollection, ), + ( + f"blob://{test_storage_account}/{test_container}/global/near-surface/update/2025/12/30/1200Z/20251230T1200Z-PT0000H00M.updated", + MetOfficeGlobalNearSurfaceCollection, + ) ], ) def test_met_office_collection( From aa91a3da67298d038c53169e125aaaee65d4628e Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Wed, 7 Jan 2026 06:15:11 -0700 Subject: [PATCH 32/42] deps: bump stactools to v0.4.0 --- datasets/met-office/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datasets/met-office/requirements.txt b/datasets/met-office/requirements.txt index 8ff9c4599..a58084fc5 100644 --- a/datasets/met-office/requirements.txt +++ b/datasets/met-office/requirements.txt @@ -1 +1 @@ -stactools-met-office-deterministic==0.3.3 +stactools-met-office-deterministic==0.4.0 From 7bcaf7c693e690babc2eae4469a121255375d227 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Wed, 7 Jan 2026 12:21:54 -0700 Subject: [PATCH 33/42] fix: splits --- datasets/met-office/dataset.yaml | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index 082263cc3..ccd020b08 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -17,7 +17,7 @@ collections: class: met_office:MetOfficeGlobalHeightCollection asset_storage: # "global/whole-atmosphere/update/2025/10/23/1200Z/20251023T1200Z-PT0000H00M.updated" - - uri: blob://ukmoeuwest/deterministic/global/height/updated + - uri: blob://ukmoeuwest/deterministic/global/height/update chunks: splits: - depth: 3 @@ -33,8 +33,10 @@ collections: template: ${{ local.path(./collection/met-office-global-deterministic-near-surface) }} class: met_office:MetOfficeGlobalNearSurfaceCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/global/near-surface + - uri: blob://ukmoeuwest/deterministic/global/near-surface/update chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 @@ -47,8 +49,10 @@ collections: template: ${{ local.path(./collection/met-office-global-deterministic-pressure) }} class: met_office:MetOfficeGlobalPressureCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/global/pressure + - uri: blob://ukmoeuwest/deterministic/global/pressure/update chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 @@ -61,8 +65,10 @@ collections: template: ${{ local.path(./collection/met-office-global-deterministic-whole-atmosphere) }} class: met_office:MetOfficeGlobalWholeAtmosphereCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/global/whole-atmosphere + - uri: blob://ukmoeuwest/deterministic/global/whole-atmosphere/update chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 @@ -75,8 +81,10 @@ collections: template: ${{ local.path(./collection/met-office-uk-deterministic-height) }} class: met_office:MetOfficeUkHeightCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/uk/height + - uri: blob://ukmoeuwest/deterministic/uk/height/update chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 @@ -89,8 +97,10 @@ collections: template: ${{ local.path(./collection/met-office-uk-deterministic-near-surface) }} class: met_office:MetOfficeUkNearSurfaceCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/uk/near-surface + - uri: blob://ukmoeuwest/deterministic/uk/near-surface/update chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 @@ -103,8 +113,10 @@ collections: template: ${{ local.path(./collection/met-office-uk-deterministic-pressure) }} class: met_office:MetOfficeUkPressureCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/uk/pressure + - uri: blob://ukmoeuwest/deterministic/uk/pressure/updatde chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 @@ -117,8 +129,10 @@ collections: template: ${{ local.path(./collection/met-office-uk-deterministic-whole-atmosphere) }} class: met_office:MetOfficeUkWholeAtmosphereCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/uk/whole-atmosphere + - uri: blob://ukmoeuwest/deterministic/uk/whole-atmosphere/update chunks: + splits: + - depth: 3 options: min_depth: 1 max_depth: 1 From 492cd0377602cb32516006c50f486d73740ffd77 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 13 Jan 2026 08:16:40 -0700 Subject: [PATCH 34/42] feat: add data access section Still need to make sure the urls are correct. --- .../description.md | 23 ++++++++++++++++++- .../description.md | 23 ++++++++++++++++++- .../description.md | 21 +++++++++++++++++ .../description.md | 23 ++++++++++++++++++- .../description.md | 21 +++++++++++++++++ .../description.md | 21 +++++++++++++++++ .../description.md | 21 +++++++++++++++++ .../description.md | 21 +++++++++++++++++ 8 files changed, 171 insertions(+), 3 deletions(-) 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 index e2b8a60b0..f7d078abb 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -39,6 +39,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/global/height/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run’s directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-height + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). @@ -50,4 +71,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md index 4408c38cc..17b18941d 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md @@ -72,6 +72,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/global/near-surface/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-near-surface + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). @@ -83,4 +104,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. 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 index 909ac8f3e..f6a93f3b2 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md @@ -39,6 +39,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/global/pressure/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-pressure + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). 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 index 5745ec963..224ca5f2c 100644 --- 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 @@ -35,6 +35,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/global/whole-atmosphere/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run’s directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-whole-atmosphere + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). @@ -46,4 +67,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md index a549d2105..606ea9812 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md @@ -44,6 +44,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/uk/height/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-height + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md index 0cd4c3b60..eafb52257 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md @@ -63,6 +63,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/uk/near-surface/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-near-surface + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md index f323116cd..8908fef21 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md @@ -47,6 +47,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/uk/pressure/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-pressure + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index 616cd30e7..9cfa87106 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -44,6 +44,27 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. +## Data access + +These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. + +Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: + +deterministic/uk/whole-atmosphere/YYYYMMDDTHHMMZ + +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc + +Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} +For example: +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc + +Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: + +https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-whole-atmosphere + +Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). + ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). From fd160fc4024b0275e116f95eb8193a764f5b1635 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 13 Jan 2026 08:23:14 -0700 Subject: [PATCH 35/42] fix: urls --- .../met-office-global-deterministic-height/description.md | 4 ++-- .../description.md | 4 ++-- .../met-office-global-deterministic-pressure/description.md | 4 ++-- .../description.md | 4 ++-- .../met-office-uk-deterministic-height/description.md | 4 ++-- .../met-office-uk-deterministic-near-surface/description.md | 4 ++-- .../met-office-uk-deterministic-pressure/description.md | 4 ++-- .../description.md | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) 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 index f7d078abb..05eb51b5d 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -48,11 +48,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/global/height/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run’s directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md index 17b18941d..66a606635 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md @@ -81,11 +81,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/global/near-surface/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: 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 index f6a93f3b2..ff536c88d 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md @@ -48,11 +48,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/global/pressure/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: 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 index 224ca5f2c..9712b7b59 100644 --- 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 @@ -44,11 +44,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/global/whole-atmosphere/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run’s directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_mixed_layer_lowest_500m.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_mixed_layer_lowest_500m.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md index 606ea9812..e5814c73d 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md @@ -53,11 +53,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/uk/height/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md index eafb52257..af5b066b8 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md @@ -72,11 +72,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/uk/near-surface/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature_at_surface.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md index 8908fef21..168bb50ed 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md @@ -56,11 +56,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/uk/pressure/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20260101T0000Z/20260101T0000Z-PT0000H00M-temperature.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index 9cfa87106..bd17cbf26 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -53,11 +53,11 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/uk/whole-atmosphere/YYYYMMDDTHHMMZ Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc +https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_most_unstable_below_500hPa.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20260101T0000Z/20260101T0000Z-PT0000H00M-cloud_amount_of_low_cloud.nc +https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_most_unstable_below_500hPa.nc Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: From 555ff68a8ab212f387aca5f1f565118f5a8db30a Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 13 Jan 2026 11:16:23 -0700 Subject: [PATCH 36/42] fix: pressure --- .../template.json | 458 +++--------------- 1 file changed, 61 insertions(+), 397 deletions(-) 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 f285ee33d..1c425aba4 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,30 +19,16 @@ "thumbnail": { "href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/met-office-uk-deterministic-pressure.jpg", "type": "image/jpeg", - "roles": [ - "thumbnail" - ], + "roles": ["thumbnail"], "title": "Pressure levels collection Met Office UKV 2km deterministic forecast Thumbnail" } }, "extent": { "spatial": { - "bbox": [ - [ - -13.7254, - 48.8643, - 4.3408, - 61.6102 - ] - ] + "bbox": [[-13.7254, 48.8643, 4.3408, 61.6102]] }, "temporal": { - "interval": [ - [ - "2023-12-15T00:00:00Z", - null - ] - ] + "interval": [["2023-12-15T00:00:00Z", null]] } }, "license": "proprietary", @@ -60,19 +46,12 @@ { "url": "https://www.metoffice.gov.uk/", "name": "Met Office", - "roles": [ - "producer", - "licensor", - "processor" - ] + "roles": ["producer", "licensor", "processor"] }, { "url": "https://planetarycomputer.microsoft.com", "name": "Microsoft", - "roles": [ - "host", - "processor" - ] + "roles": ["host", "processor"] } ], "stac_version": "1.0.0", @@ -89,412 +68,73 @@ "geopotential_height_on_pressure_levels": { "type": "application/netcdf", "title": "Geopotential height on pressure levels", - "roles": [ - "data" - ], - "forecast:variable": "geopotential_height", - "height_ASL_on_pressure_levels": { - "type": "application/netcdf", - "title": "Height Above Sea Level on pressure levels", - "roles": [ - "data" - ], - "forecast:variable": "geopotential_height", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, - 97500, - 95000, - 92500, - 90000, - 85000, - 80000, - 75000, - 70000, - 6500, - 60000, - 55000, - 50000, - 45000, - 40000, - 37500, - 35000, - 32500, - 30000, - 27500, - 25000, - 22500, - 20000, - 17500, - 15000, - 12500, - 10000, - 7000, - 5000, - 4000, - 3000, - 2000, - 1000 - ] - } - }, - "cube:variables": { - "geopotential_height": { - "description": "Note: from January 2026, this parameter will be replaced by geopotential_height_on_pressure_levels.", - "dimensions": [ - "latitude", - "longitude", - "pressure_levels" - ], - "unit": "m", - "type": "data" - } - } - }, - "relative_humidity_on_pressure_levels": { - "type": "application/netcdf", - "title": "Relative humidity on pressure levels", - "roles": [ - "data" - ], - "forecast:variable": "relative_humidity", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, - 97500, - 95000, - 92500, - 90000, - 85000, - 80000, - 75000, - 70000, - 6500, - 60000, - 55000, - 50000, - 45000, - 40000, - 37500, - 35000, - 32500, - 30000, - 27500, - 25000, - 22500, - 20000, - 17500, - 15000, - 12500, - 10000, - 7000, - 5000, - 4000, - 3000, - 2000, - 1000 - ] - } - }, - "cube:variables": { - "relative_humidity": { - "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", - "dimensions": [ - "latitude", - "longitude", - "pressure_levels" - ], - "unit": "1", - "type": "data" - } - } - }, - "temperature_on_pressure_levels": { - "type": "application/netcdf", - "title": "Temperature on pressure levels", - "roles": [ - "data" - ], - "forecast:variable": "air_temperature", - "cube:dimensions": { - "latitude": { - "type": "spatial", - "axis": "y", - "extent": [ - 50, - 62 - ] - }, - "longitude": { - "type": "spatial", - "axis": "x", - "extent": [ - 5, - 15 - ] - }, - "pressure_levels": { - "type": "spatial", - "values": [ - 100000, - 97500, - 95000, - 92500, - 90000, - 85000, - 80000, - 75000, - 70000, - 6500, - 60000, - 55000, - 50000, - 45000, - 40000, - 37500, - 35000, - 32500, - 30000, - 27500, - 25000, - 22500, - 20000, - 17500, - 15000, - 12500, - 10000, - 7000, - 5000, - 4000, - 3000, - 2000, - 1000 - ] - } - }, - "cube:variables": { - "air_temperature": { - "description": "Air temperature on pressure levels", - "dimensions": [ - "latitude", - "longitude", - "pressure_levels" - ], - "type": "data", - "unit": "K" - } - } - } + "roles": ["data"], + "forecast:variable": "geopotential_height" + }, + "height_ASL_on_pressure_levels": { + "type": "application/netcdf", + "title": "Height Above Sea Level on pressure levels", + "roles": ["data"], + "forecast:variable": "geopotential_height" + }, + "relative_humidity_on_pressure_levels": { + "type": "application/netcdf", + "title": "Relative humidity on pressure levels", + "roles": ["data"], + "forecast:variable": "relative_humidity" + }, + "temperature_on_pressure_levels": { + "type": "application/netcdf", + "title": "Temperature on pressure levels", + "roles": ["data"], + "forecast:variable": "air_temperature" }, "wet_bulb_potential_temperature_on_pressure_levels": { "type": "application/netcdf", "title": "Wet bulb potential temperature on pressure levels", - "roles": [ - "data" - ], + "roles": ["data"], "forecast:variable": "wet_bulb_potential_temperature" }, "wind_direction_on_pressure_levels": { "type": "application/netcdf", "title": "Wind direction on pressure levels", - "roles": [ - "data" - ], + "roles": ["data"], "forecast:variable": "wind_from_direction" }, "wind_speed_on_pressure_levels": { "type": "application/netcdf", "title": "Wind speed on pressure levels", - "roles": [ - "data" - ], + "roles": ["data"], "forecast:variable": "wind_speed" } }, - "description": "{{ collection.description }}", "cube:dimensions": { "latitude": { "type": "spatial", "axis": "y", - "extent": [ - 50, - 62 - ] + "extent": [-90, 90] }, "longitude": { "type": "spatial", "axis": "x", - "extent": [ - 5, - 15 - ] + "extent": [-180, 180] }, "pressure_levels": { "type": "spatial", "values": [ - 100000, - 97500, - 95000, - 92500, - 90000, - 85000, - 80000, - 75000, - 70000, - 6500, - 60000, - 55000, - 50000, - 45000, - 40000, - 37500, - 35000, - 32500, - 30000, - 27500, - 25000, - 22500, - 20000, - 17500, - 15000, - 12500, - 10000, - 7000, - 5000, - 4000, - 3000, - 2000, - 1000 + 100000, 97500, 95000, 92500, 90000, 85000, 80000, 75000, 70000, 6500, + 60000, 55000, 50000, 45000, 40000, 37500, 35000, 32500, 30000, 27500, + 25000, 22500, 20000, 17500, 15000, 12500, 10000, 7000, 5000, 4000, 3000, + 2000, 1000 ] }, "forecast:reference_datetime": { "type": "temporal", - "extent": [ - "2023-12-15T00:00:00Z", - null - ] + "extent": ["2023-12-15T00:00:00Z", null] }, "forecast:horizon": { "type": "temporal", - "extent": [ - null, - null - ], - "values": [ - "PT0H", - "PT1H", - "PT2H", - "PT3H", - "PT4H", - "PT5H", - "PT6H", - "PT7H", - "PT8H", - "PT9H", - "PT10H", - "PT11H", - "PT12H", - "PT13H", - "PT14H", - "PT15H", - "PT16H", - "PT17H", - "PT18H", - "PT19H", - "PT20H", - "PT21H", - "PT22H", - "PT23H", - "PT24H", - "PT25H", - "PT26H", - "PT27H", - "PT28H", - "PT29H", - "PT30H", - "PT31H", - "PT32H", - "PT33H", - "PT34H", - "PT35H", - "PT36H", - "PT37H", - "PT38H", - "PT39H", - "PT40H", - "PT41H", - "PT42H", - "PT43H", - "PT44H", - "PT45H", - "PT46H", - "PT47H", - "PT48H", - "PT49H", - "PT50H", - "PT51H", - "PT52H", - "PT53H", - "PT54H", - "PT57H", - "PT60H", - "PT63H", - "PT66H", - "PT69H", - "PT72H", - "PT75H", - "PT78H", - "PT81H", - "PT84H", - "PT87H", - "PT90H", - "PT93H", - "PT96H", - "PT99H", - "PT102H", - "PT105H", - "PT108H", - "PT111H", - "PT114H", - "PT117H", - "PT120H" - ] + "extent": [null, null] } }, "cube:variables": { @@ -510,6 +150,30 @@ "unit": "m", "type": "data" }, + "relative_humidity": { + "description": "Ratio of the partial pressure of water vapour to the equilibrium vapour pressure of water.", + "dimensions": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "unit": "1", + "type": "data" + }, + "air_temperature": { + "description": "Air temperature on pressure levels", + "dimensions": [ + "latitude", + "longitude", + "pressure_levels", + "forecast:reference_datetime", + "forecast:horizon" + ], + "type": "data", + "unit": "K" + }, "wet_bulb_potential_temperature": { "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": [ @@ -547,4 +211,4 @@ "unit": "m/s" } } -} \ No newline at end of file +} From 326083c23ea16aba103669c01585fba1fe6c2978 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 13 Jan 2026 11:21:24 -0700 Subject: [PATCH 37/42] fix: add accidentally-removed description --- .../met-office-uk-deterministic-pressure/template.json | 1 + 1 file changed, 1 insertion(+) 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 1c425aba4..7de4a6c12 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,6 +1,7 @@ { "id": "met-office-uk-deterministic-pressure", "type": "Collection", + "description": "{{ collection.description }}", "links": [ { "rel": "license", From e524c3ba2ce869e312b9e4d46c527eb41643c85f Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 13 Jan 2026 11:44:32 -0700 Subject: [PATCH 38/42] fix: add note about data availability --- .../met-office-global-deterministic-height/description.md | 6 ++++-- .../description.md | 4 +++- .../met-office-global-deterministic-pressure/description.md | 6 ++++-- .../description.md | 6 ++++-- .../met-office-uk-deterministic-height/description.md | 4 +++- .../met-office-uk-deterministic-near-surface/description.md | 6 ++++-- .../met-office-uk-deterministic-pressure/description.md | 6 ++++-- .../description.md | 4 +++- 8 files changed, 29 insertions(+), 13 deletions(-) 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 index 05eb51b5d..2e4b09572 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -1,6 +1,8 @@ This collection offers 1 parameter at 33 available height levels (5m to 6000m) from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). -The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. + +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** ## Height Levels Available height levels, in metres (m) above ground, are: @@ -47,7 +49,7 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/global/height/YYYYMMDDTHHMMZ -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run’s directory are NetCDF files for each of the variables produced by the forecast. For example: +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md index 66a606635..1a1ca3a4b 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md @@ -1,6 +1,8 @@ This collection offers 48 parameters at near-surface level from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). -The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. + +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** ## Data collection height There are 3 forecast heights used within the near-surface this collection: 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 index ff536c88d..6dfaf25dd 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md @@ -1,6 +1,8 @@ This collection offers 8 parameters at 33 available pressure levels (from 100000Pa to 1000Pa) from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). -The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. + +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** ## Pressure Levels Available pressure levels, in Pascals (Pa), are: @@ -71,4 +73,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. 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 index 9712b7b59..38f53d163 100644 --- 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 @@ -1,6 +1,8 @@ This collection offers 14 whole-atmosphere parameters from the Met Office global deterministic 10km forecast. This is a numerical weather prediction forecast for the whole globe, with a resolution of approximately 0.09 degrees i.e. 10km (2,560 x 1,920 grid points). -The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. + +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** ## Timesteps The following timesteps are available: @@ -43,7 +45,7 @@ Within this account forecasts are organized by region, category, and runtime. Ea deterministic/global/whole-atmosphere/YYYYMMDDTHHMMZ -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run’s directory are NetCDF files for each of the variables produced by the forecast. For example: +Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_mixed_layer_lowest_500m.nc Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md index e5814c73d..a4e110323 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md @@ -1,5 +1,7 @@ This collection offers 4 parameters at 33 available height levels (5m to 6000m) from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. The data is available as NetCDF files. +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** + ## Height Levels Available height levels, in metres (m) above ground, are: * 5.0 10.0 20.0 30.0 50.0 75.0 100.0 150.0 200.0 250.0 300.0 400.0 500.0 600.0 700.0 800.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 3250.0 3500.0 3750.0 4000.0 4500.0 5000.0 5500.0 6000.0 @@ -78,4 +80,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md index af5b066b8..54bace2d7 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md @@ -1,6 +1,8 @@ This collection offers 35 parameters at near-surface level from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. -The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. + +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** ## Coverage area The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: @@ -95,4 +97,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md index 168bb50ed..60847c1cc 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md @@ -1,6 +1,8 @@ This collection offers 7 parameters at 33 available pressure levels (from 100000Pa to 1000Pa) from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. -The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don’t recommend using it for any critical business purposes. +The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. + +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** ## Pressure Levels Available pressure levels, in Pascals (Pa), are: @@ -81,4 +83,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index bd17cbf26..63a30985d 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -1,5 +1,7 @@ This collection offers 11 whole-atmosphere parameters from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. The data is available as NetCDF files. +**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** + ## Coverage area The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: * Southwest: 48.8643°N, 10.6734°W @@ -78,4 +80,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. \ No newline at end of file +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. From 3cb1fec1cac75f0bc90ff317f615a77ae308f090 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Wed, 14 Jan 2026 10:10:07 -0700 Subject: [PATCH 39/42] fix: remove notice and data access header --- .../description.md | 23 ----------------- .../description.md | 23 ----------------- .../description.md | 25 +------------------ .../description.md | 23 ----------------- .../description.md | 23 ----------------- .../description.md | 25 +------------------ .../description.md | 23 ----------------- .../description.md | 23 ----------------- 8 files changed, 2 insertions(+), 186 deletions(-) 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 index 2e4b09572..88cace3d9 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -2,8 +2,6 @@ This collection offers 1 parameter at 33 available height levels (5m to 6000m) f The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Height Levels Available height levels, in metres (m) above ground, are: * 5.0 10.0 20.0 30.0 50.0 75.0 100.0 150.0 200.0 250.0 300.0 400.0 500.0 600.0 700.0 800.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 3250.0 3500.0 3750.0 4000.0 4500.0 5000.0 5500.0 6000.0 @@ -41,27 +39,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/global/height/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-height - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md index 1a1ca3a4b..c84d5cd67 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md @@ -2,8 +2,6 @@ This collection offers 48 parameters at near-surface level from the Met Office g The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Data collection height There are 3 forecast heights used within the near-surface this collection: * Surface: the default collection height @@ -74,27 +72,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/global/near-surface/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-near-surface - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). 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 index 6dfaf25dd..a2364a0bf 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md @@ -2,8 +2,6 @@ This collection offers 8 parameters at 33 available pressure levels (from 100000 The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Pressure Levels Available pressure levels, in Pascals (Pa), are: * 100000.0 97500.0 95000.0 92500.0 90000.0 85000.0 80000.0 75000.0 70000.0 65000.0 60000.0 55000.0 50000.0 45000.0 40000.0 37500.0 35000.0 32500.0 30000.0 27500.0 25000.0 22500.0 20000.0 17500.0 15000.0 12500.0 10000.0 7000.0 5000.0 4000.0 3000.0 2000.0 1000.0 @@ -41,27 +39,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/global/pressure/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-pressure - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). @@ -73,4 +50,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. 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 index 38f53d163..af91d67ac 100644 --- 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 @@ -2,8 +2,6 @@ This collection offers 14 whole-atmosphere parameters from the Met Office global The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Timesteps The following timesteps are available: * every hour from 0 to 54 hours (for most parameters, see parameter table for exceptions) @@ -37,27 +35,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/global/whole-atmosphere/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_mixed_layer_lowest_500m.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/global/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_mixed_layer_lowest_500m.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-global-deterministic-whole-atmosphere - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite Met Office global deterministic 10km forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md index a4e110323..e9c8cda70 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md @@ -1,7 +1,5 @@ This collection offers 4 parameters at 33 available height levels (5m to 6000m) from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. The data is available as NetCDF files. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Height Levels Available height levels, in metres (m) above ground, are: * 5.0 10.0 20.0 30.0 50.0 75.0 100.0 150.0 200.0 250.0 300.0 400.0 500.0 600.0 700.0 800.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 3250.0 3500.0 3750.0 4000.0 4500.0 5000.0 5500.0 6000.0 @@ -46,27 +44,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/uk/height/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/height/20250101T0000Z/20250101T0000Z-PT0000H00M-cloud_amount_on_height_levels.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-height - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md index 54bace2d7..9357034e2 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md @@ -2,8 +2,6 @@ This collection offers 35 parameters at near-surface level from the Met Office U The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Coverage area The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: * Southwest: 48.8643°N, 10.6734°W @@ -65,27 +63,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement ## Help us improve the data services we offer [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/uk/near-surface/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/near-surface/20250101T0000Z/20250101T0000Z-PT0000H00M-fog_fraction_at_screen_level.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-near-surface - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). @@ -97,4 +74,4 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md index 60847c1cc..4c4c27b76 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md @@ -2,8 +2,6 @@ This collection offers 7 parameters at 33 available pressure levels (from 100000 The data is available as NetCDF files. It's offered on a free, unsupported basis, so we don't recommend using it for any critical business purposes. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Pressure Levels Available pressure levels, in Pascals (Pa), are: * 100000.0 97500.0 95000.0 92500.0 90000.0 85000.0 80000.0 75000.0 70000.0 65000.0 60000.0 55000.0 50000.0 45000.0 40000.0 37500.0 35000.0 32500.0 30000.0 27500.0 25000.0 22500.0 20000.0 17500.0 15000.0 12500.0 10000.0 7000.0 5000.0 4000.0 3000.0 2000.0 1000.0 @@ -49,27 +47,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/uk/pressure/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/pressure/20250101T0000Z/20250101T0000Z-PT0000H00M-height_ASL_on_pressure_levels.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-pressure - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index 63a30985d..a39b95d22 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -1,7 +1,5 @@ This collection offers 11 whole-atmosphere parameters from the Met Office UKV 2km deterministic forecast. This is a high-resolution gridded weather forecast for the UK, with a resolution of 0.018 degrees, projected on to a 2km horizontal grid. The data is available as NetCDF files. -**Note: This dataset is not yet available in the Planetary Computer API, but can be accessed directly from Azure Blob Storage.** - ## Coverage area The forecast covers the UK and Ireland, with the following latitude and longitude coordinates for each corner of the included area: * Southwest: 48.8643°N, 10.6734°W @@ -46,27 +44,6 @@ Iris supports NetCDF files through reading, writing and handling. Iris implement [Join the Met Office research panel](https://forms.office.com/Pages/ResponsePage.aspx?id=YYHxF9cgRkeH_VD-PjtmGdxioYGoFbFIkZuB_q8Fb3VUQkoxRVQzTFdUMzNMVzczWVM5VTc3QTY3MC4u) to help us understand how people interact with weather and climate data, uncover challenges and explore opportunities. -## Data access - -These files are available from the Azure Blob Storage account at https://ukmoeuwest.blob.core.windows.net. This storage account is in Azure's West Europe region. Users wishing to perform large-scale processing on the data should also locate their compute in Azure's West Europe region. All data files are in NetCDF format. - -Within this account forecasts are organized by region, category, and runtime. Each file path within the container will start with: - -deterministic/uk/whole-atmosphere/YYYYMMDDTHHMMZ - -Where YYYY is the 4-digit year, MM is the two-digit month, DD is the two-digit day, and HHMMZ is the UTC forecast runtime. Within that run's directory are NetCDF files for each of the variables produced by the forecast. For example: -https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_most_unstable_below_500hPa.nc - -Users must use a Shared Access Signature (SAS) token to authorize requests to Azure Blob Storage. Users may request a read-only SAS token for a specific asset URL using the following endpoint: https://planetarycomputer.microsoft.com/api/sas/v1/sign?href={url} -For example: -https://planetarycomputer.microsoft.com/api/sas/v1/sign?href=https://ukmoeuwest.blob.core.windows.net/deterministic/uk/whole-atmosphere/20250101T0000Z/20250101T0000Z-PT0000H00M-CAPE_most_unstable_below_500hPa.nc - -Additionally, the Planetary Computer's SAS token endpoint allows for the generation of a read-only SAS token that grants access to all assets in the selected collection. For example, to receive a SAS token to access this collection please use: - -https://planetarycomputer.microsoft.com/api/sas/v1/token/met-office-uk-deterministic-whole-atmosphere - -Users can use this token to connect to and read data from this container using Blobfuse2 (azure-storage-fuse). - ## How to cite UKV 2km deterministic forecast was accessed on DATE from the Microsoft Planetary Computer (https://zenodo.org/records/7261897). From 5c4b93f37909e2f80f73ce1ab2fb10537a2f85a9 Mon Sep 17 00:00:00 2001 From: Gustavo Hidalgo Date: Wed, 14 Jan 2026 12:14:58 -0500 Subject: [PATCH 40/42] script fixes --- .../met-office/scripts/ingest-collections.sh | 2 +- datasets/met-office/scripts/ingest-items.sh | 50 +++++++++++++++---- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/datasets/met-office/scripts/ingest-collections.sh b/datasets/met-office/scripts/ingest-collections.sh index fcf6a252d..8f11302a4 100755 --- a/datasets/met-office/scripts/ingest-collections.sh +++ b/datasets/met-office/scripts/ingest-collections.sh @@ -48,5 +48,5 @@ do -d dataset.yaml \ -a registry pccomponents \ -c "$collection" \ - --submit --confirm + --confirm --submit done diff --git a/datasets/met-office/scripts/ingest-items.sh b/datasets/met-office/scripts/ingest-items.sh index 5a4fef811..e6eca3804 100755 --- a/datasets/met-office/scripts/ingest-items.sh +++ b/datasets/met-office/scripts/ingest-items.sh @@ -2,7 +2,35 @@ set -e -COLLECTION_TYPE="${1:-all}" +COLLECTION_TYPE="all" +SINCE="" + +usage() { + echo "Usage: $0 [--collection global|uk|all] [--since datetime]" + echo " --collection - Collection type: global, uk, or all (default: all)" + echo " --since - Optional datetime to filter items (e.g., 2024-01-01)" + exit 1 +} + +while [ $# -gt 0 ]; do + case "$1" in + --collection) + COLLECTION_TYPE="$2" + shift 2 + ;; + --since) + SINCE="$2" + shift 2 + ;; + -h|--help) + usage + ;; + *) + echo "Unknown option: $1" + usage + ;; + esac +done case "$COLLECTION_TYPE" in global) @@ -34,21 +62,25 @@ case "$COLLECTION_TYPE" in " ;; *) - echo "Usage: $0 [global|uk|all]" - echo " global - Ingest only global collections" - echo " uk - Ingest only UK collections" - echo " all - Ingest all collections (default)" - exit 1 + echo "Invalid collection type: $COLLECTION_TYPE" + usage ;; esac +SINCE_ARG="" +SUBMIT_MODE="--upsert" +if [ -n "$SINCE" ]; then + SINCE_ARG="-a since $SINCE" + SUBMIT_MODE="--submit" +fi + for collection in $COLLECTIONS do pctasks dataset process-items \ -d dataset.yaml \ -a registry pccomponents.azurecr.io \ + --is-update-workflow \ + --workflow-id met-office-$collection-process-items \ -c "$collection" ingest \ - --since '2026-01-01T00:00:00Z' \ - --limit 100 \ - --confirm --submit + --confirm $SUBMIT_MODE $SINCE_ARG done From 3e86de9971a71fc352003940bc79955bcdbdd821 Mon Sep 17 00:00:00 2001 From: Gustavo Hidalgo Date: Wed, 14 Jan 2026 12:20:44 -0500 Subject: [PATCH 41/42] Upgrade all ingestion images --- datasets/ecmwf-forecast/Dockerfile | 26 ++++++++------ datasets/ecmwf-forecast/dataset.yaml | 4 +-- datasets/gbif/Dockerfile | 26 ++++++++------ datasets/gbif/dataset.yaml | 6 ++-- datasets/goes/goes-cmi/Dockerfile | 18 ++++++---- datasets/goes/goes-cmi/dataset.yaml | 46 ++++++++++++------------- datasets/goes/goes-glm/Dockerfile | 18 ++++++---- datasets/goes/goes-glm/dataset.yaml | 8 ++--- datasets/hls2/dataset.yaml | 5 ++- datasets/landsat/Dockerfile | 28 +++++++++------ datasets/landsat/dataset.yaml | 12 +++---- datasets/met-office/dataset.yaml | 4 +-- datasets/modis/Dockerfile | 18 ++++++---- datasets/modis/dataset.yaml | 44 +++++++++++------------ datasets/noaa-cdr/Dockerfile | 24 ++++++++----- datasets/noaa-cdr/dataset.yaml | 2 +- datasets/noaa-mrms-qpe/Dockerfile | 2 +- datasets/sentinel-1-grd/Dockerfile | 18 ++++++---- datasets/sentinel-1-grd/dataset.yaml | 8 ++--- datasets/sentinel-1-rtc/Dockerfile | 18 ++++++---- datasets/sentinel-1-rtc/dataset.yaml | 10 +++--- datasets/sentinel-2/Dockerfile | 30 +++++++++------- datasets/sentinel-3/Dockerfile | 26 ++++++++------ datasets/sentinel-3/dataset.yaml | 8 ++--- datasets/sentinel-5p/Dockerfile | 26 ++++++++------ datasets/sentinel-5p/dataset.yaml | 2 +- docker-compose.yml | 41 ++-------------------- pctasks/ingest/pctasks/ingest/models.py | 9 +++-- pctasks/ingest/tests/test_models.py | 33 ++++++++++++++++++ pctasks/ingest/tests/test_settings.py | 2 +- pctasks/ingest_task/Dockerfile | 12 +++---- pctasks/ingest_task/pyproject.toml | 6 ++-- pctasks/ingest_task/requirements.txt | 10 +++--- pctasks_funcs/Dockerfile | 18 ---------- scripts/publish-ingestion-images | 36 +++++++++++++++++++ 35 files changed, 348 insertions(+), 256 deletions(-) create mode 100644 pctasks/ingest/tests/test_models.py delete mode 100644 pctasks_funcs/Dockerfile create mode 100755 scripts/publish-ingestion-images diff --git a/datasets/ecmwf-forecast/Dockerfile b/datasets/ecmwf-forecast/Dockerfile index 5c963b147..756ba5fab 100644 --- a/datasets/ecmwf-forecast/Dockerfile +++ b/datasets/ecmwf-forecast/Dockerfile @@ -21,10 +21,10 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 # See https://github.com/mapbox/rasterio/issues/1289 ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt -# Install Python 3.10 -RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" \ - && bash "Mambaforge-$(uname)-$(uname -m).sh" -b -p /opt/conda \ - && rm -rf "Mambaforge-$(uname)-$(uname -m).sh" +# Install Python 3.11 +RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" \ + && bash "Miniforge3-$(uname)-$(uname -m).sh" -b -p /opt/conda \ + && rm -rf "Miniforge3-$(uname)-$(uname -m).sh" ENV PATH /opt/conda/bin:$PATH ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/ecmwf-forecast/requirements.txt /opt/src/datasets/ecmwf-forecast/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/ecmwf-forecast/requirements.txt diff --git a/datasets/ecmwf-forecast/dataset.yaml b/datasets/ecmwf-forecast/dataset.yaml index d801f93a6..cb2454757 100644 --- a/datasets/ecmwf-forecast/dataset.yaml +++ b/datasets/ecmwf-forecast/dataset.yaml @@ -1,8 +1,8 @@ id: ecmwf_forecast -image: ${{ args.registry }}/pctasks-ecmwf-forecast:2024.6.13.0 +image: ${{ args.registry }}/pctasks-ecmwf-forecast:2026.01.12 args: -- registry + - registry code: src: ${{ local.path(./ecmwf_forecast.py) }} diff --git a/datasets/gbif/Dockerfile b/datasets/gbif/Dockerfile index 21a364821..6c2fef76e 100644 --- a/datasets/gbif/Dockerfile +++ b/datasets/gbif/Dockerfile @@ -22,14 +22,14 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # Install Python 3.8 -RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" \ - && bash "Mambaforge-$(uname)-$(uname -m).sh" -b -p /opt/conda \ - && rm -rf "Mambaforge-$(uname)-$(uname -m).sh" +RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" \ + && bash "Miniforge3-$(uname)-$(uname -m).sh" -b -p /opt/conda \ + && rm -rf "Miniforge3-$(uname)-$(uname -m).sh" ENV PATH /opt/conda/bin:$PATH ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH -RUN mamba install -y -c conda-forge python=3.8 gdal=3.3.3 pip setuptools cython numpy==1.21.5 +RUN mamba install -y -c conda-forge python=3.11 gdal pip setuptools cython numpy RUN python -m pip install --upgrade pip @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/gbif/requirements.txt /opt/src/datasets/gbif/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/gbif/requirements.txt diff --git a/datasets/gbif/dataset.yaml b/datasets/gbif/dataset.yaml index f05ee626b..d390e66f7 100644 --- a/datasets/gbif/dataset.yaml +++ b/datasets/gbif/dataset.yaml @@ -1,8 +1,8 @@ id: gbif -image: ${{ args.registry }}/pctasks-gbif:20230607.1 +image: ${{ args.registry }}/pctasks-gbif:2026.01.12 args: -- registry + - registry code: src: ${{ local.path(./gbif.py) }} @@ -24,4 +24,4 @@ collections: min_depth: 2 max_depth: 2 chunk_storage: - uri: blob://ai4edataeuwest/gbif-etl-data/pctasks-chunks \ No newline at end of file + uri: blob://ai4edataeuwest/gbif-etl-data/pctasks-chunks diff --git a/datasets/goes/goes-cmi/Dockerfile b/datasets/goes/goes-cmi/Dockerfile index 8491689ae..dc5bc427a 100644 --- a/datasets/goes/goes-cmi/Dockerfile +++ b/datasets/goes/goes-cmi/Dockerfile @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY datasets/goes/goes-cmi/requirements.txt /opt/src/datasets/goes/goes-cmi/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/goes/goes-cmi/requirements.txt diff --git a/datasets/goes/goes-cmi/dataset.yaml b/datasets/goes/goes-cmi/dataset.yaml index dd90f7dd5..10f87dbeb 100644 --- a/datasets/goes/goes-cmi/dataset.yaml +++ b/datasets/goes/goes-cmi/dataset.yaml @@ -1,9 +1,9 @@ id: goes_cmi -image: ${{ args.registry }}/pctasks-goes-cmi:2025.04.15.1 +image: ${{ args.registry }}/pctasks-goes-cmi:2026.01.12 args: -- registry -- year-prefix + - registry + - year-prefix code: src: ${{ local.path(./goes_cmi) }} @@ -19,7 +19,7 @@ collections: asset_storage: # The blob storage pattern is # | noaa-goes16 - # | ABI-L2-MCMIPC + # | ABI-L2-MCMIPC # | 2023 # | 170 # day of year # | 23 # hour @@ -27,12 +27,12 @@ collections: - uri: blob://goeseuwest/noaa-goes16/ chunks: splits: - - prefix: ABI-L2-MCMIPC/${{ args.year-prefix }} # CONUS - depth: 3 # daily - - prefix: ABI-L2-MCMIPM/${{ args.year-prefix }} # Mesoscale - depth: 3 # daily - - prefix: ABI-L2-MCMIPF/${{ args.year-prefix }} # Full Disk - depth: 3 # daily + - prefix: ABI-L2-MCMIPC/${{ args.year-prefix }} # CONUS + depth: 3 # daily + - prefix: ABI-L2-MCMIPM/${{ args.year-prefix }} # Mesoscale + depth: 3 # daily + - prefix: ABI-L2-MCMIPF/${{ args.year-prefix }} # Full Disk + depth: 3 # daily options: ends_with: .nc # # GOES-17 is parked @@ -50,25 +50,25 @@ collections: - uri: blob://goeseuwest/noaa-goes18/ chunks: splits: - - prefix: ABI-L2-MCMIPC/${{ args.year-prefix }} # CONUS - depth: 3 # daily - - prefix: ABI-L2-MCMIPM/${{ args.year-prefix }} # Mesoscale - depth: 3 # daily - - prefix: ABI-L2-MCMIPF/${{ args.year-prefix }} # Full Disk - depth: 3 # daily + - prefix: ABI-L2-MCMIPC/${{ args.year-prefix }} # CONUS + depth: 3 # daily + - prefix: ABI-L2-MCMIPM/${{ args.year-prefix }} # Mesoscale + depth: 3 # daily + - prefix: ABI-L2-MCMIPF/${{ args.year-prefix }} # Full Disk + depth: 3 # daily options: ends_with: .nc - uri: blob://goeseuwest/noaa-goes19/ chunks: splits: - - prefix: ABI-L2-MCMIPC/${{ args.year-prefix }} # CONUS - depth: 3 # daily - - prefix: ABI-L2-MCMIPM/${{ args.year-prefix }} # Mesoscale - depth: 3 # daily - - prefix: ABI-L2-MCMIPF/${{ args.year-prefix }} # Full Disk - depth: 3 # daily + - prefix: ABI-L2-MCMIPC/${{ args.year-prefix }} # CONUS + depth: 3 # daily + - prefix: ABI-L2-MCMIPM/${{ args.year-prefix }} # Mesoscale + depth: 3 # daily + - prefix: ABI-L2-MCMIPF/${{ args.year-prefix }} # Full Disk + depth: 3 # daily options: ends_with: .nc chunk_storage: - uri: blob://goeseuwest/noaa-goes-etl-data/pctasks/cmi/ \ No newline at end of file + uri: blob://goeseuwest/noaa-goes-etl-data/pctasks/cmi/ diff --git a/datasets/goes/goes-glm/Dockerfile b/datasets/goes/goes-glm/Dockerfile index 61d8e36d6..3a28dd893 100644 --- a/datasets/goes/goes-glm/Dockerfile +++ b/datasets/goes/goes-glm/Dockerfile @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY datasets/goes/goes-glm /opt/src/datasets/goes-glm RUN python3 -m pip install -r /opt/src/datasets/goes-glm/requirements.txt diff --git a/datasets/goes/goes-glm/dataset.yaml b/datasets/goes/goes-glm/dataset.yaml index c861759a5..72386cbb1 100644 --- a/datasets/goes/goes-glm/dataset.yaml +++ b/datasets/goes/goes-glm/dataset.yaml @@ -1,9 +1,9 @@ id: goes_glm -image: ${{ args.registry }}/pctasks-goes-glm:2025.04.16.0 +image: ${{ args.registry }}/pctasks-goes-glm:2026.01.12 args: -- registry -- year-prefix + - registry + - year-prefix code: src: ${{ local.path(./goes_glm.py) }} @@ -60,4 +60,4 @@ collections: depth: 2 chunk_storage: - uri: blob://goeseuwest/noaa-goes-etl-data/pctasks/glm/ \ No newline at end of file + uri: blob://goeseuwest/noaa-goes-etl-data/pctasks/glm/ diff --git a/datasets/hls2/dataset.yaml b/datasets/hls2/dataset.yaml index 2ede40ccd..10a24fd2a 100644 --- a/datasets/hls2/dataset.yaml +++ b/datasets/hls2/dataset.yaml @@ -1,5 +1,5 @@ id: hls2 -image: ${{ args.registry }}/pctasks-task-base:2025.4.8.2 +image: ${{ args.registry }}/pctasks-task-base:2026.01.12 args: - registry @@ -42,7 +42,6 @@ collections: chunk_length: 20000 chunk_storage: uri: blob://hls2euwest/hls2-l30-info/pctasks-chunks/ - # The blob storage pattern is: # | container # | S30/ or L30/ depending on collection @@ -57,4 +56,4 @@ collections: # | HLS.S30.T56PPQ.2024005T001421.v2.0.B01.tif # | HLS.S30.T56PPQ.2024005T001421.v2.0.B02.tif # | ... -# | eg S30/56/P/PQ/2024/01/05/HLS.S30.T56PPQ.2024005T001421.v2.0/HLS.S30.T56PPQ.2024005T001421.v2.0.B01.tif \ No newline at end of file +# | eg S30/56/P/PQ/2024/01/05/HLS.S30.T56PPQ.2024005T001421.v2.0/HLS.S30.T56PPQ.2024005T001421.v2.0.B01.tif diff --git a/datasets/landsat/Dockerfile b/datasets/landsat/Dockerfile index 6c111966d..72ddf472a 100644 --- a/datasets/landsat/Dockerfile +++ b/datasets/landsat/Dockerfile @@ -21,15 +21,15 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 # See https://github.com/mapbox/rasterio/issues/1289 ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt -# Install Python 3.8 -RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" \ - && bash "Mambaforge-$(uname)-$(uname -m).sh" -b -p /opt/conda \ - && rm -rf "Mambaforge-$(uname)-$(uname -m).sh" +# Install Python 3.11 +RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" \ + && bash "Miniforge3-$(uname)-$(uname -m).sh" -b -p /opt/conda \ + && rm -rf "Miniforge3-$(uname)-$(uname -m).sh" ENV PATH /opt/conda/bin:$PATH ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH -RUN mamba install -y -c conda-forge python=3.8 gdal=3.3.3 pip setuptools cython numpy==1.21.5 +RUN mamba install -y -c conda-forge python=3.11 gdal pip setuptools cython numpy RUN python -m pip install --upgrade pip @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/landsat/requirements.txt /opt/src/datasets/landsat/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/landsat/requirements.txt diff --git a/datasets/landsat/dataset.yaml b/datasets/landsat/dataset.yaml index c1a3341f2..b3fef29ab 100644 --- a/datasets/landsat/dataset.yaml +++ b/datasets/landsat/dataset.yaml @@ -1,9 +1,9 @@ id: landsat -image: ${{ args.registry }}/pctasks-landsat:20230613.1 +image: ${{ args.registry }}/pctasks-landsat:2026.01.12 args: -- registry -- year-prefix + - registry + - year-prefix code: src: ${{ local.path(./landsat.py) }} @@ -28,7 +28,7 @@ collections: # chunk_storage: # uri: blob://landsateuwest/landsat-c2-etl-data/pctasks/landsat-c2-l1/ - - id: landsat-c2-l2 + - id: landsat-c2-l2 template: ${{ local.path(./collection/landsat-c2-l2) }} class: landsat:LandsatC2Collection asset_storage: @@ -49,7 +49,7 @@ collections: token: ${{ pc.get_token(landsateuwest, landsat-c2) }} chunks: splits: - - depth: 1 # parallelize by Landsat WRS Row + - depth: 1 # parallelize by Landsat WRS Row options: ends_with: _MTL.xml chunk_length: 5000 @@ -57,7 +57,7 @@ collections: token: ${{ pc.get_token(landsateuwest, landsat-c2) }} chunks: splits: - - depth: 1 # parallelize by Landsat WRS Row + - depth: 1 # parallelize by Landsat WRS Row options: ends_with: _MTL.xml chunk_length: 5000 diff --git a/datasets/met-office/dataset.yaml b/datasets/met-office/dataset.yaml index ccd020b08..c9d3fc859 100644 --- a/datasets/met-office/dataset.yaml +++ b/datasets/met-office/dataset.yaml @@ -1,5 +1,5 @@ id: met-office -image: ${{ args.registry }}/pctasks-task-base:latest +image: ${{ args.registry }}/pctasks-task-base:2026.01.12 args: - registry @@ -113,7 +113,7 @@ collections: template: ${{ local.path(./collection/met-office-uk-deterministic-pressure) }} class: met_office:MetOfficeUkPressureCollection asset_storage: - - uri: blob://ukmoeuwest/deterministic/uk/pressure/updatde + - uri: blob://ukmoeuwest/deterministic/uk/pressure/update chunks: splits: - depth: 3 diff --git a/datasets/modis/Dockerfile b/datasets/modis/Dockerfile index 76f9fe5dd..4954703df 100644 --- a/datasets/modis/Dockerfile +++ b/datasets/modis/Dockerfile @@ -44,27 +44,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/modis/requirements.txt /opt/src/datasets/modis/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/modis/requirements.txt diff --git a/datasets/modis/dataset.yaml b/datasets/modis/dataset.yaml index f31a44bab..3b4066034 100644 --- a/datasets/modis/dataset.yaml +++ b/datasets/modis/dataset.yaml @@ -1,8 +1,8 @@ id: modis -image: ${{ args.registry }}/pctasks-modis:2025.12.15.0 +image: ${{ args.registry }}/pctasks-modis:2026.01.12 args: -- registry + - registry code: src: ${{ local.path(./modis.py) }} @@ -13,7 +13,7 @@ environment: collections: - id: modis-09A1-061 template: ${{ local.path(./collection/modis-09A1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: # The blob storage pattern is # | modis-09A1-061 @@ -37,7 +37,7 @@ collections: - id: modis-09Q1-061 template: ${{ local.path(./collection/modis-09Q1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD09Q1/ chunks: @@ -52,7 +52,7 @@ collections: - id: modis-10A1-061 template: ${{ local.path(./collection/modis-10A1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD10A1/ chunks: @@ -67,7 +67,7 @@ collections: - id: modis-10A2-061 template: ${{ local.path(./collection/modis-10A2-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD10A2/ chunks: @@ -82,7 +82,7 @@ collections: - id: modis-11A1-061 template: ${{ local.path(./collection/modis-11A1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD11A1/ chunks: @@ -97,7 +97,7 @@ collections: - id: modis-11A2-061 template: ${{ local.path(./collection/modis-11A2-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD11A2/ chunks: @@ -112,7 +112,7 @@ collections: - id: modis-13A1-061 template: ${{ local.path(./collection/modis-13A1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD13A1/ chunks: @@ -127,7 +127,7 @@ collections: - id: modis-13Q1-061 template: ${{ local.path(./collection/modis-13Q1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD13Q1/ chunks: @@ -142,7 +142,7 @@ collections: - id: modis-14A1-061 template: ${{ local.path(./collection/modis-14A1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD14A1/ chunks: @@ -157,7 +157,7 @@ collections: - id: modis-14A2-061 template: ${{ local.path(./collection/modis-14A2-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD14A2/ chunks: @@ -172,7 +172,7 @@ collections: - id: modis-15A2H-061 template: ${{ local.path(./collection/modis-15A2H-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD15A2H/ chunks: @@ -191,7 +191,7 @@ collections: - id: modis-15A3H-061 template: ${{ local.path(./collection/modis-15A3H-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MCD15A3H/ chunks: @@ -202,7 +202,7 @@ collections: - id: modis-16A3GF-061 template: ${{ local.path(./collection/modis-16A3GF-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD16A3GF/ chunks: @@ -217,7 +217,7 @@ collections: - id: modis-17A2H-061 template: ${{ local.path(./collection/modis-17A2H-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD17A2H/ chunks: @@ -232,7 +232,7 @@ collections: - id: modis-17A2HGF-061 template: ${{ local.path(./collection/modis-17A2HGF-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD17A2HGF/ chunks: @@ -247,7 +247,7 @@ collections: - id: modis-17A3HGF-061 template: ${{ local.path(./collection/modis-17A3HGF-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD17A3HGF/ chunks: @@ -262,7 +262,7 @@ collections: - id: modis-21A2-061 template: ${{ local.path(./collection/modis-21A2-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MOD21A2/ chunks: @@ -277,7 +277,7 @@ collections: - id: modis-43A4-061 template: ${{ local.path(./collection/modis-43A4-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MCD43A4/ chunks: @@ -288,11 +288,11 @@ collections: - id: modis-64A1-061 template: ${{ local.path(./collection/modis-64A1-061/) }} - class: modis:MODISCollection + class: modis:MODISCollection asset_storage: - uri: blob://modiseuwest/modis-061/MCD64A1/ chunks: options: extensions: [.hdf] chunk_storage: - uri: blob://modiseuwest/modis-061-etl-data/pctasks-chunks/64A1/ \ No newline at end of file + uri: blob://modiseuwest/modis-061-etl-data/pctasks-chunks/64A1/ diff --git a/datasets/noaa-cdr/Dockerfile b/datasets/noaa-cdr/Dockerfile index c09a582b4..5d30e7a7b 100644 --- a/datasets/noaa-cdr/Dockerfile +++ b/datasets/noaa-cdr/Dockerfile @@ -22,9 +22,9 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # Install Python 3.11 -RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" \ - && bash "Mambaforge-$(uname)-$(uname -m).sh" -b -p /opt/conda \ - && rm -rf "Mambaforge-$(uname)-$(uname -m).sh" +RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" \ + && bash "Miniforge3-$(uname)-$(uname -m).sh" -b -p /opt/conda \ + && rm -rf "Miniforge3-$(uname)-$(uname -m).sh" ENV PATH /opt/conda/bin:$PATH ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/noaa-cdr/requirements.txt /opt/src/datasets/noaa-cdr/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/noaa-cdr/requirements.txt diff --git a/datasets/noaa-cdr/dataset.yaml b/datasets/noaa-cdr/dataset.yaml index 1b3fcb3db..6f6308d47 100644 --- a/datasets/noaa-cdr/dataset.yaml +++ b/datasets/noaa-cdr/dataset.yaml @@ -1,5 +1,5 @@ id: noaa-cdr -image: ${{ args.registry }}/pctasks-noaa-cdr:2023.4.28.0 +image: ${{ args.registry }}/pctasks-noaa-cdr:2026.01.12 args: - registry code: diff --git a/datasets/noaa-mrms-qpe/Dockerfile b/datasets/noaa-mrms-qpe/Dockerfile index 54ea82a30..338e33ee9 100644 --- a/datasets/noaa-mrms-qpe/Dockerfile +++ b/datasets/noaa-mrms-qpe/Dockerfile @@ -1,5 +1,5 @@ ARG registry -FROM ${registry}/pctasks-task-base:latest +FROM ${registry}/pctasks-task-base:2026.01.12 COPY datasets/noaa-mrms-qpe /opt/src/datasets/noaa-mrms-qpe RUN python3 -m pip install -r /opt/src/datasets/noaa-mrms-qpe/requirements.txt diff --git a/datasets/sentinel-1-grd/Dockerfile b/datasets/sentinel-1-grd/Dockerfile index 1bb85d582..6f672fdfb 100644 --- a/datasets/sentinel-1-grd/Dockerfile +++ b/datasets/sentinel-1-grd/Dockerfile @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/sentinel-1-grd/requirements.txt /opt/src/datasets/sentinel-1-grd/requirements.txt diff --git a/datasets/sentinel-1-grd/dataset.yaml b/datasets/sentinel-1-grd/dataset.yaml index f33651816..06eff20ee 100644 --- a/datasets/sentinel-1-grd/dataset.yaml +++ b/datasets/sentinel-1-grd/dataset.yaml @@ -1,9 +1,9 @@ id: sentinel-1-grd -image: ${{ args.registry }}/pctasks-sentinel-1-grd:20250708.1 +image: ${{ args.registry }}/pctasks-sentinel-1-grd:2026.01.12 args: -- registry -- year-prefix + - registry + - year-prefix code: src: ${{ local.path(./s1grd.py) }} @@ -32,6 +32,6 @@ collections: - depth: 2 # daily options: ends_with: manifest.safe - chunk_length: 100 # daily number of files is ~600-800 + chunk_length: 100 # daily number of files is ~600-800 chunk_storage: uri: blob://sentinel1euwest/s1-grd-etl-data/pctasks-chunks/ diff --git a/datasets/sentinel-1-rtc/Dockerfile b/datasets/sentinel-1-rtc/Dockerfile index cae17dfb6..a4685f2ea 100644 --- a/datasets/sentinel-1-rtc/Dockerfile +++ b/datasets/sentinel-1-rtc/Dockerfile @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/sentinel-1-rtc/requirements.txt /opt/src/datasets/sentinel-1-rtc/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/sentinel-1-rtc/requirements.txt diff --git a/datasets/sentinel-1-rtc/dataset.yaml b/datasets/sentinel-1-rtc/dataset.yaml index 2b60e3217..574d34096 100644 --- a/datasets/sentinel-1-rtc/dataset.yaml +++ b/datasets/sentinel-1-rtc/dataset.yaml @@ -1,9 +1,9 @@ id: sentinel-1-rtc -image: ${{ args.registry }}/pctasks-sentinel-1-rtc:20230613.1 +image: ${{ args.registry }}/pctasks-sentinel-1-rtc:2026.01.12 args: -- registry -- year-prefix + - registry + - year-prefix code: src: ${{ local.path(./s1rtc.py) }} @@ -29,9 +29,9 @@ collections: - uri: blob://sentinel1euwestrtc/sentinel1-grd-rtc-stac/GRD/${{ args.year-prefix }} chunks: splits: - - depth: 2 # daily + - depth: 2 # daily options: ends_with: _rtc.json - chunk_length: 2000 # daily number of files is ~600-800 + chunk_length: 2000 # daily number of files is ~600-800 chunk_storage: uri: blob://sentinel1euwestrtc/sentinel1-grd-rtc-etl-data/pctasks-chunks/ diff --git a/datasets/sentinel-2/Dockerfile b/datasets/sentinel-2/Dockerfile index 05eb2c193..47d9e8a93 100644 --- a/datasets/sentinel-2/Dockerfile +++ b/datasets/sentinel-2/Dockerfile @@ -21,13 +21,13 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 # See https://github.com/mapbox/rasterio/issues/1289 ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt -# Install Python 3.8 -RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" \ - && bash "Mambaforge-$(uname)-$(uname -m).sh" -b -p /opt/conda \ - && rm -rf "Mambaforge-$(uname)-$(uname -m).sh" +# Install Python 3.11 +RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" \ + && bash "Miniforge3-$(uname)-$(uname -m).sh" -b -p /opt/conda \ + && rm -rf "Miniforge3-$(uname)-$(uname -m).sh" -ENV PATH /opt/conda/bin:$PATH -ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH +ENV PATH=/opt/conda/bin:$PATH +ENV LD_LIBRARY_PATH=/opt/conda/lib/:$LD_LIBRARY_PATH RUN mamba install -y -c conda-forge python=3.11 gdal pip setuptools cython numpy @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/sentinel-2/requirements.txt /opt/src/datasets/sentinel-2/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/sentinel-2/requirements.txt diff --git a/datasets/sentinel-3/Dockerfile b/datasets/sentinel-3/Dockerfile index 7bdffadfb..02e0d206f 100644 --- a/datasets/sentinel-3/Dockerfile +++ b/datasets/sentinel-3/Dockerfile @@ -22,14 +22,14 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # Install Python 3.8 -RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" \ - && bash "Mambaforge-$(uname)-$(uname -m).sh" -b -p /opt/conda \ - && rm -rf "Mambaforge-$(uname)-$(uname -m).sh" +RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" \ + && bash "Miniforge3-$(uname)-$(uname -m).sh" -b -p /opt/conda \ + && rm -rf "Miniforge3-$(uname)-$(uname -m).sh" ENV PATH /opt/conda/bin:$PATH ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH -RUN mamba install -y -c conda-forge python=3.8 gdal=3.3.3 pip setuptools cython numpy==1.21.5 +RUN mamba install -y -c conda-forge python=3.11 gdal pip setuptools cython numpy RUN python -m pip install --upgrade pip @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/sentinel-3/requirements.txt /opt/src/datasets/sentinel-3/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/sentinel-3/requirements.txt diff --git a/datasets/sentinel-3/dataset.yaml b/datasets/sentinel-3/dataset.yaml index 7261428e1..7098ef77e 100644 --- a/datasets/sentinel-3/dataset.yaml +++ b/datasets/sentinel-3/dataset.yaml @@ -1,5 +1,5 @@ id: sentinel-3 -image: ${{ args.registry }}/pctasks-sentinel-3:20230630.1 +image: ${{ args.registry }}/pctasks-sentinel-3:2026.01.12 args: - registry @@ -30,10 +30,10 @@ collections: - uri: blob://sentinel3euwest/sentinel-3/OLCI/OL_2_LFR___/${{ args.year-prefix }}/ chunks: splits: - - depth: 1 # split by month, about 15 minutes for all xfdumanifest.xml files + - depth: 1 # split by month, about 15 minutes for all xfdumanifest.xml files options: ends_with: xfdumanifest.xml - chunk_length: 200 # takes about 15 minutes to create items for ~2 days of data + chunk_length: 200 # takes about 15 minutes to create items for ~2 days of data chunk_storage: uri: blob://sentinel3euwest/sentinel-3-etl-data/pctasks-chunks/sentinel-3-olci-lfr-l2-netcdf @@ -189,4 +189,4 @@ collections: ends_with: xfdumanifest.xml chunk_length: 200 chunk_storage: - uri: blob://sentinel3euwest/sentinel-3-etl-data/pctasks-chunks/sentinel-3-slstr-wst-l2-netcdf \ No newline at end of file + uri: blob://sentinel3euwest/sentinel-3-etl-data/pctasks-chunks/sentinel-3-slstr-wst-l2-netcdf diff --git a/datasets/sentinel-5p/Dockerfile b/datasets/sentinel-5p/Dockerfile index 828da64ba..5d2bb7f7e 100644 --- a/datasets/sentinel-5p/Dockerfile +++ b/datasets/sentinel-5p/Dockerfile @@ -22,14 +22,14 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # Install Python 3.8 -RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" \ - && bash "Mambaforge-$(uname)-$(uname -m).sh" -b -p /opt/conda \ - && rm -rf "Mambaforge-$(uname)-$(uname -m).sh" +RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" \ + && bash "Miniforge3-$(uname)-$(uname -m).sh" -b -p /opt/conda \ + && rm -rf "Miniforge3-$(uname)-$(uname -m).sh" ENV PATH /opt/conda/bin:$PATH ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH -RUN mamba install -y -c conda-forge python=3.8 gdal=3.3.3 pip setuptools cython numpy==1.21.5 +RUN mamba install -y -c conda-forge python=3.11 gdal pip setuptools cython numpy RUN python -m pip install --upgrade pip @@ -43,27 +43,33 @@ RUN python -m pip install --no-build-isolation -r /tmp/requirements.txt COPY pctasks/core /opt/src/pctasks/core RUN cd /opt/src/pctasks/core && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/cli /opt/src/pctasks/cli RUN cd /opt/src/pctasks/cli && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/task /opt/src/pctasks/task RUN cd /opt/src/pctasks/task && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/client /opt/src/pctasks/client RUN cd /opt/src/pctasks/client && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/ingest /opt/src/pctasks/ingest RUN cd /opt/src/pctasks/ingest && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY pctasks/dataset /opt/src/pctasks/dataset RUN cd /opt/src/pctasks/dataset && \ - pip install . + pip install -r requirements.txt && \ + pip install --no-deps . COPY ./datasets/sentinel-5p/requirements.txt /opt/src/datasets/sentinel-5p/requirements.txt RUN python3 -m pip install -r /opt/src/datasets/sentinel-5p/requirements.txt diff --git a/datasets/sentinel-5p/dataset.yaml b/datasets/sentinel-5p/dataset.yaml index dbdeb57eb..12cf5f333 100644 --- a/datasets/sentinel-5p/dataset.yaml +++ b/datasets/sentinel-5p/dataset.yaml @@ -1,5 +1,5 @@ id: sentinel_5p -image: ${{ args.registry }}/pctasks-sentinel-5p:20230630.3 +image: ${{ args.registry }}/pctasks-sentinel-5p:2026.01.12 args: - registry diff --git a/docker-compose.yml b/docker-compose.yml index 864c4cc72..7957126d7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,8 @@ services: container_name: pctasks-azurite image: mcr.microsoft.com/azure-storage/azurite:3.35.0 hostname: azurite - command: "azurite --silent --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost + command: + "azurite --silent --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 -l /workspace" ports: - "10000:10000" # Blob @@ -153,7 +154,7 @@ services: "--port", "8512", "--reload", - "--proxy-headers" + "--proxy-headers", ] # Used to let kind cluster pull local docker images @@ -166,42 +167,6 @@ services: volumes: - ~/.azure:/root/.azure - functions: - container_name: pctasks-functions - image: pctasks-functions - build: - context: . - dockerfile: pctasks_funcs/Dockerfile - volumes: - - ./pctasks:/home/site/pctasks - - ./pctasks_funcs:/home/site/wwwroot - - ~/.azure:/home/.azure - ports: - - "7071:7071" # Functions - environment: - - AzureWebJobsStorage=DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1;QueueEndpoint=http://azurite:10001/devstoreaccount1;TableEndpoint=http://azurite:10002/devstoreaccount1; - - WEBSITE_HOSTNAME=functions:7071 - - # Must use IP address to avoid SSL errors - - PCTASKS_COSMOSDB__URL=${PCTASKS_COSMOSDB__URL:-https://172.16.238.246:8081/} - - PCTASKS_COSMOSDB__accountEndpoint=${PCTASKS_COSMOSDB__URL} - # Set trigger app setting separately to avoid issues with __ in env var names - - FUNC_COSMOSDB_CONN_STR=AccountEndpoint=${PCTASKS_COSMOSDB__URL:-https://172.16.238.246:8081/};AccountKey=${PCTASKS_COSMOSDB__KEY:-C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==}; - - FUNC_STORAGE_ACCOUNT_CONN_STR=DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1;QueueEndpoint=http://azurite:10001/devstoreaccount1;TableEndpoint=http://azurite:10002/devstoreaccount1; - - FUNC_STORAGE_QUEUE_ACCOUNT_URL=http://azurite:10001/devstoreaccount1 - - FUNC_STORAGE_ACCOUNT_NAME=devstoreaccount1 - - FUNC_STORAGE_ACCOUNT_KEY=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== - # Isolate Change Feed functions for unit tests. - - PCTASKS_COSMOSDB__TEST_CONTAINER_SUFFIX=${PCTASKS_COSMOSDB__TEST_CONTAINER_SUFFIX-} - # Used in the various function.json to dynmically set the Cosmos DB container to watch. - - FUNC_WORKFLOWS_COLLECTION_NAME=workflows${PCTASKS_COSMOSDB__TEST_CONTAINER_SUFFIX-} - - FUNC_WORKFLOW_RUNS_COLLECTION_NAME=workflow-runs${PCTASKS_COSMOSDB__TEST_CONTAINER_SUFFIX-} - - FUNC_STORAGE_EVENTS_COLLECTION_NAME=storage-events${PCTASKS_COSMOSDB__TEST_CONTAINER_SUFFIX-} - - FUNC_ITEMS_COLLECTION_NAME=items${PCTASKS_COSMOSDB__TEST_CONTAINER_SUFFIX-} - - COSMOSDB_EMULATOR_HOST=172.16.238.246 - - PCTASKS_DISPATCH__TEST_COLLECTION__QUEUE_NAME=test-collection - - PCTASKS_DISPATCH__TEST_COLLECTION__PREFIX=http://azurite:10000/devstoreaccount1/ - networks: default: # Network created during scripts/setup diff --git a/pctasks/ingest/pctasks/ingest/models.py b/pctasks/ingest/pctasks/ingest/models.py index 51c10a2a7..0acf3cd1f 100644 --- a/pctasks/ingest/pctasks/ingest/models.py +++ b/pctasks/ingest/pctasks/ingest/models.py @@ -53,8 +53,13 @@ def _get_discriminator_tag(v: Any) -> str: return NDJSON_MESSAGE_TYPE elif isinstance(v, IngestCollectionsInput): return COLLECTIONS_MESSAGE_TYPE - else: - return "Any" + elif isinstance(v, dict): + type_value = v.get("type") + if type_value == NDJSON_MESSAGE_TYPE: + return NDJSON_MESSAGE_TYPE + elif type_value == COLLECTIONS_MESSAGE_TYPE: + return COLLECTIONS_MESSAGE_TYPE + return "Any" class IngestTaskInput(PCBaseModel): diff --git a/pctasks/ingest/tests/test_models.py b/pctasks/ingest/tests/test_models.py new file mode 100644 index 000000000..af44947e4 --- /dev/null +++ b/pctasks/ingest/tests/test_models.py @@ -0,0 +1,33 @@ +import pytest +import yaml + +from pctasks.ingest.models import ( + IngestNdjsonInput, + IngestTaskInput, +) + + +def test_ingest_task_input_model_validate_from_yaml() -> None: + """Test model_validate from YAML input like glm.yaml ingest-items task.""" + yaml_content = """ +content: + type: Ndjson + uris: + - ${{tasks.create-items.output.ndjson_uri}} +options: + insert_group_size: 5000 + insert_only: false +""" + data = yaml.safe_load(yaml_content) + input = IngestTaskInput.model_validate(data) + + assert isinstance(input.content, IngestNdjsonInput) + assert input.content.type == "Ndjson" + assert input.content.uris == ["${{tasks.create-items.output.ndjson_uri}}"] + assert input.options.insert_group_size == 5000 + assert input.options.insert_only is False + + +def test_ingest_ndjson_input_requires_uris_or_folder() -> None: + with pytest.raises(ValueError, match="Either ndjson_folder or uris must be"): + IngestNdjsonInput(type="Ndjson") diff --git a/pctasks/ingest/tests/test_settings.py b/pctasks/ingest/tests/test_settings.py index d37b025dc..c8fd3993b 100644 --- a/pctasks/ingest/tests/test_settings.py +++ b/pctasks/ingest/tests/test_settings.py @@ -2,7 +2,7 @@ from pctasks.ingest.settings import SECTION_NAME, IngestSettings -def test_image_keys(): +def test_image_keys() -> None: yaml = """ submit: account_name: pctrxetlrobrxetlsa diff --git a/pctasks/ingest_task/Dockerfile b/pctasks/ingest_task/Dockerfile index 8df85a7c3..df7d93a81 100644 --- a/pctasks/ingest_task/Dockerfile +++ b/pctasks/ingest_task/Dockerfile @@ -1,15 +1,13 @@ -FROM python:3.9-slim +FROM mcr.microsoft.com/azurelinux/base/python:3.12 -# Setup timezone info ENV TZ=UTC - -ENV LC_ALL=C.UTF-8 -ENV LANG=C.UTF-8 +RUN \ + tdnf update -y && \ + tdnf install ca-certificates azure-cli -y \ + && tdnf clean all ENV PIP_NO_CACHE_DIR=1 RUN pip install "setuptools>=65.5.1" -RUN python -m pip install --upgrade pip - # # Copy and install packages # diff --git a/pctasks/ingest_task/pyproject.toml b/pctasks/ingest_task/pyproject.toml index e8f1e5cf2..3c275d6c9 100644 --- a/pctasks/ingest_task/pyproject.toml +++ b/pctasks/ingest_task/pyproject.toml @@ -24,12 +24,12 @@ classifiers = [ "Programming Language :: Python :: 3.8", ] dependencies = [ - "fire==0.4.0", + "fire>=0.7.0", "orjson>=3.5.2", "pctasks.ingest @ {root:parent:uri}/ingest", "pctasks.task @ {root:parent:uri}/task", - "plpygis==0.2.0", - "pypgstac[psycopg]>=0.8.5,<0.9", + "plpygis>=0.5.0", + "pypgstac[psycopg]==0.9.6", "pystac==1.10.1", ] diff --git a/pctasks/ingest_task/requirements.txt b/pctasks/ingest_task/requirements.txt index 8eec19065..34e8c2a76 100644 --- a/pctasks/ingest_task/requirements.txt +++ b/pctasks/ingest_task/requirements.txt @@ -72,7 +72,7 @@ cryptography==45.0.6 # msal # pyjwt # from https://pypi.org/simple -fire==0.4.0 +fire==0.7.1 # via # pctasks-ingest-task (./pctasks/ingest_task/pyproject.toml) # pypgstac @@ -91,6 +91,9 @@ google-auth==2.40.3 googleapis-common-protos==1.70.0 # via google-api-core # from https://pypi.org/simple +hydraters==0.1.3 + # via pypgstac + # from https://pypi.org/simple idna==3.10 # via # pctasks-core @@ -181,7 +184,7 @@ packaging==25.0 planetary-computer==1.0.0 # via pctasks-core # from https://pypi.org/simple -plpygis==0.2.0 +plpygis==0.6.1 # via # pctasks-ingest-task (./pctasks/ingest_task/pyproject.toml) # pypgstac @@ -243,7 +246,7 @@ pygments==2.19.2 pyjwt==2.10.1 # via msal # from https://pypi.org/simple -pypgstac==0.8.6 +pypgstac==0.9.6 # via pctasks-ingest-task (./pctasks/ingest_task/pyproject.toml) # from https://pypi.org/simple pystac==1.10.1 @@ -304,7 +307,6 @@ rsa==4.9.1 six==1.17.0 # via # azure-core - # fire # opencensus # python-dateutil # from https://pypi.org/simple diff --git a/pctasks_funcs/Dockerfile b/pctasks_funcs/Dockerfile deleted file mode 100644 index 853428660..000000000 --- a/pctasks_funcs/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mcr.microsoft.com/azure-functions/python:4-python3.10 - -ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ - AzureFunctionsJobHost__Logging__Console__IsEnabled=true - -RUN apt update && apt install -y azure-cli - -# Copy pctasks packages -COPY pctasks /home/site/pctasks - -# Copy function app -COPY pctasks_funcs /home/site/wwwroot - -WORKDIR /home/site/wwwroot - -RUN pip install -r /home/site/wwwroot/requirements.txt - -CMD [ "/home/site/wwwroot/start.sh" ] diff --git a/scripts/publish-ingestion-images b/scripts/publish-ingestion-images new file mode 100755 index 000000000..641db2c1f --- /dev/null +++ b/scripts/publish-ingestion-images @@ -0,0 +1,36 @@ +#!/bin/bash + +set -e + +TAG=2026.01.12 +REGISTRY=pccomponents.azurecr.io + +images=( + "pctasks-goes-glm:datasets/goes/goes-glm/Dockerfile" + "pctasks-goes-cmi:datasets/goes/goes-cmi/Dockerfile" + "pctasks-landsat:datasets/landsat/Dockerfile" + "pctasks-sentinel-2:datasets/sentinel-2/Dockerfile" + "pctasks-modis:datasets/modis/Dockerfile" + "pctasks-noaa-cdr:datasets/noaa-cdr/Dockerfile" + "pctasks-sentinel-1-grd:datasets/sentinel-1-grd/Dockerfile" + "pctasks-sentinel-1-rtc:datasets/sentinel-1-rtc/Dockerfile" + "pctasks-sentinel-3:datasets/sentinel-3/Dockerfile" + "pctasks-sentinel-5p:datasets/sentinel-5p/Dockerfile" + "pctasks-gbif:datasets/gbif/Dockerfile" + "pctasks-ecmwf-forecast:datasets/ecmwf-forecast/Dockerfile" +) + +for entry in "${images[@]}"; do + name="${entry%%:*}" + dockerfile="${entry#*:}" + image="$REGISTRY/$name:$TAG" + echo "Building $image..." + docker build -t "$image" -f "$dockerfile" . + docker push "$image" +done + +# Build image with build-arg +image="$REGISTRY/pctasks-noaa-mrms-qpe:$TAG" +echo "Building $image..." +docker build -t "$image" -f datasets/noaa-mrms-qpe/Dockerfile --build-arg registry=$REGISTRY . +docker push "$image" \ No newline at end of file From b9b8230476fa10e6b4b43d6053f50dc004e77edc Mon Sep 17 00:00:00 2001 From: Jeff Shepherd Date: Thu, 15 Jan 2026 09:18:42 +0000 Subject: [PATCH 42/42] update link to MPC Met Office collections in descriptions --- .../met-office-global-deterministic-height/description.md | 7 +++++-- .../description.md | 7 +++++-- .../description.md | 7 +++++-- .../description.md | 7 +++++-- .../met-office-uk-deterministic-height/description.md | 7 +++++-- .../description.md | 7 +++++-- .../met-office-uk-deterministic-pressure/description.md | 7 +++++-- .../description.md | 7 +++++-- 8 files changed, 40 insertions(+), 16 deletions(-) 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 index 88cace3d9..29a207395 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-height/description.md @@ -47,7 +47,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md index c84d5cd67..c054b95dd 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-near-surface/description.md @@ -80,7 +80,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. 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 index a2364a0bf..bb05ccc7b 100644 --- a/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-global-deterministic-pressure/description.md @@ -47,7 +47,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. 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 index af91d67ac..7064bb84b 100644 --- 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 @@ -43,7 +43,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md index e9c8cda70..02041569a 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-height/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-height/description.md @@ -54,7 +54,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md index 9357034e2..cea150898 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-near-surface/description.md @@ -71,7 +71,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md index 4c4c27b76..b360bdf33 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-pressure/description.md @@ -57,7 +57,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. diff --git a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md index a39b95d22..30e54550b 100644 --- a/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md +++ b/datasets/met-office/collection/met-office-uk-deterministic-whole-atmosphere/description.md @@ -54,7 +54,10 @@ British Crown copyright 2023-2025, the Met Office, is licensed under [CC BY-SA]( ## Providers [Met Office](https://www.metoffice.gov.uk/) -See all datasets managed by [Met Office.](https://registry.opendata.aws/?search=managedBy:met%20office) + +See all datasets managed by [Met Office.](https://planetarycomputer.microsoft.com/catalog?filter=met+office) ## Contact -[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). As a non-operational service we aim to respond to any service support enquiries within 3-5 business days. +[servicedesk@metoffice.gov.uk](mailto:servicedesk@metoffice.gov.uk). Service desk is only available Mon – Fri, 09:00 until 17:00 UTC (-1 hour during BST). + +As a non-operational service we aim to respond to any service support enquiries within 3-5 business days.