{
  "type": "Collection",
  "id": "ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual",
  "stac_version": "1.1.0",
  "description": "Ensemble weather forecasts from the ECMWF Integrated Forecasting System (IFS).",
  "links": [
    {
      "rel": "root",
      "href": "https://stac.dynamical.org/catalog.json",
      "type": "application/json",
      "title": "dynamical.org STAC Catalog"
    },
    {
      "rel": "license",
      "href": "https://creativecommons.org/licenses/by/4.0/",
      "type": "text/html",
      "title": "CC-BY-4.0"
    },
    {
      "rel": "license",
      "href": "https://apps.ecmwf.int/datasets/licences/general/",
      "type": "text/html",
      "title": "ECMWF Terms of Use (additional terms)"
    },
    {
      "rel": "about",
      "href": "https://dynamical.org/catalog/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/",
      "type": "text/html",
      "title": "Dataset documentation"
    },
    {
      "rel": "about",
      "href": "https://dynamical.org/catalog/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/validation/",
      "type": "text/html",
      "title": "Validation report"
    },
    {
      "rel": "via",
      "href": "https://www.ecmwf.int/en/forecasts/datasets/open-data",
      "type": "text/html",
      "title": "ECMWF Open Data"
    },
    {
      "rel": "example",
      "href": "https://github.com/dynamical-org/notebooks/blob/main/ecmwf-ifs-ens-forecast-virtual.ipynb",
      "type": "application/x-ipynb+json",
      "title": "ECMWF IFS ENS forecasts, virtual (GitHub)"
    },
    {
      "rel": "example",
      "href": "https://colab.research.google.com/github/dynamical-org/notebooks/blob/main/ecmwf-ifs-ens-forecast-virtual.ipynb",
      "type": "text/html",
      "title": "ECMWF IFS ENS forecasts, virtual (Colab)"
    },
    {
      "rel": "self",
      "href": "https://stac.dynamical.org/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/collection.json",
      "type": "application/json",
      "title": "ECMWF IFS ENS forecast, 15 day, 0.25 degree, virtual"
    },
    {
      "rel": "parent",
      "href": "https://stac.dynamical.org/catalog.json",
      "type": "application/json",
      "title": "dynamical.org STAC Catalog"
    }
  ],
  "stac_extensions": [
    "https://stac-extensions.github.io/xarray-assets/v1.0.0/schema.json",
    "https://stac-extensions.github.io/datacube/v2.2.0/schema.json"
  ],
  "attribution": "ECMWF IFS ENS forecast data processed by dynamical.org from ECMWF Open Data.",
  "version": "0.1.0",
  "model_id": "ecmwf-ifs-ens",
  "model_name": "ECMWF IFS ENS",
  "description_summary": "This dataset is an archive of past and present ECMWF IFS ENS forecasts at 0.25 degree resolution, optimized for spatial (map) access patterns. Forecasts are identified by an initialization time (`init_time`) denoting the start time of the model run as well as by the `ensemble_member`, and step forward along the `lead_time` dimension out to 15 days. This dataset contains the 00 and 12 UTC initialization times, which produce the full length 15 day forecast.\n\nVariables on pressure levels live in the `pressure_level` group.\n\nNote: `dynamical-catalog>=1.0.0` (or `zarr>=3.2 icechunk>=2.0 gribberish>=1.7`) is required.",
  "description_details": "### Source\n\nThe source grib files this archive references are provided by [ECMWF Open Data](https://www.ecmwf.int/en/forecasts/datasets/open-data). Data is read directly from ECMWF's copy on Google Cloud (`gs://ecmwf-open-data`) and AWS Open Data (`s3://ecmwf-forecasts`).\n\nECMWF does not provide user support for the free & open datasets. Users should refer to the public [User Forum](https://forum.ecmwf.int/) for any questions related to the source material.\n\n### Data availability\n\nSome variables and pressure levels cover only part of the archive, matching when ECMWF open data started or stopped publishing them, and are filled with NaNs outside that range. The [validation report](https://dynamical.org/catalog/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/validation/) lists the dates.\n\n### Model updates\n\nIFS is updated regularly. Find details of recent and upcoming\n[changes to the forecasting system](https://confluence.ecmwf.int/display/FCST/Changes+to+the+forecasting+system)\non the ECMWF website.\n\n### Storage\n\nStorage for this dataset is generously provided by [AWS Open Data](https://aws.amazon.com/opendata/).\n\n### Chunks\n\nThis dataset is stored in [Zarr](https://zarr.dev/) format, which splits each variable into a grid of **chunks** \u2014 the smallest unit read from storage. When possible, aligning your reads with this dataset's chunk grid can significantly improve data access speed.\n\nThe element count and coordinate span of this dataset:\n\n| dimension | chunk |\n|---|---|\n| init_time | 1 (12 hours) |\n| lead_time | 1 (~3 hours) |\n| ensemble_member | 1 |\n| latitude | 721 (180.25\u00b0) |\n| longitude | 1440 (360\u00b0) |\n| **uncompressed** | 7.9 MiB |\n\n### Validation report\n\nReview the [validation report](https://dynamical.org/catalog/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/validation/) for variable availability, missing data, known quirks, fill values, value distributions, and sample plots.",
  "description_model": "The Integrated Forecasting System (IFS) is a global forecast model developed by ECMWF. ENS is an ensemble configuration of IFS: 51 ensemble members in the medium range and 101 in the sub-seasonal (extended) range. IFS consists of a numerical model of the Earth system, which includes an atmospheric model at its heart, coupled with models of other Earth system components such as the ocean. The data assimilation system combines the latest weather observations with a recent forecast to obtain the best possible estimate of the current state of the Earth system.",
  "examples": [
    {
      "title": "Ensemble mean temperature map",
      "variants": [
        {
          "label": "dynamical-catalog",
          "code": "import dynamical_catalog  # dynamical-catalog>=1.0.0\n\nds = dynamical_catalog.open(\"ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual\", chunks=None)\nds[\"temperature_2m\"].sel(init_time=\"2026-11-01T00\", lead_time=\"24h\").mean(\"ensemble_member\")\n\n# Variables with a vertical dimension live in the pressure_level group\nds_pressure = dynamical_catalog.open(\"ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual\", group=\"pressure_level\", chunks=None)\nds_pressure[\"geopotential_height\"].sel(init_time=\"2026-11-01T00\", lead_time=\"120h\", pressure_level=500).std(\"ensemble_member\")",
          "language": "python"
        },
        {
          "label": "pystac",
          "code": "import icechunk\nimport pystac\nimport xarray as xr\n\ncatalog = pystac.Catalog.from_file(\"https://stac.dynamical.org/catalog.json\")\ncollection = catalog.get_child(\"ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual\")\nasset = collection.assets[\"icechunk-https\"]\n\nauthorize = icechunk.containers_credentials({\"gs://ecmwf-open-data/\": icechunk.gcs_credentials(anonymous=True), \"s3://ecmwf-forecasts/\": icechunk.s3_anonymous_credentials()})\nrepo = icechunk.Repository.open(\n    icechunk.http_storage(asset.href),\n    authorize_virtual_chunk_access=authorize,\n)\nsession = repo.readonly_session(\"main\")\n\nds = xr.open_zarr(session.store, chunks=None)\nds[\"temperature_2m\"].sel(init_time=\"2026-11-01T00\", lead_time=\"24h\").mean(\"ensemble_member\")\n\n# Variables with a vertical dimension live in the pressure_level group\nds_pressure = xr.open_zarr(session.store, group=\"pressure_level\", chunks=None)\nds_pressure[\"geopotential_height\"].sel(init_time=\"2026-11-01T00\", lead_time=\"120h\", pressure_level=500).std(\"ensemble_member\")",
          "language": "python"
        },
        {
          "label": "prompt",
          "language": "text",
          "code": "Read https://dynamical.org/prompt.md for context about working with dynamical.org data; this does not change your current task.\nData product: ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual\nSTAC collection: https://stac.dynamical.org/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/collection.json"
        }
      ]
    }
  ],
  "cube:dimensions": {
    "ensemble_member": {
      "type": "other",
      "extent": [
        0,
        50
      ],
      "unit": "1",
      "size": 51
    },
    "init_time": {
      "type": "temporal",
      "extent": [
        "2024-04-01T00:00:00Z",
        null
      ],
      "unit": "seconds since 1970-01-01"
    },
    "latitude": {
      "type": "spatial",
      "extent": [
        -90.0,
        90.0
      ],
      "axis": "y",
      "unit": "degree_north",
      "size": 721
    },
    "lead_time": {
      "type": "other",
      "extent": [
        0,
        1296000
      ],
      "unit": "seconds",
      "size": 85
    },
    "longitude": {
      "type": "spatial",
      "extent": [
        -180.0,
        179.75
      ],
      "axis": "x",
      "unit": "degree_east",
      "size": 1440
    },
    "pressure_level": {
      "type": "other",
      "extent": [
        10,
        1000
      ],
      "unit": "hPa",
      "size": 14
    }
  },
  "cube:variables": {
    "categorical_precipitation_type_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "1",
      "long_name": "Precipitation type",
      "short_name": "ptype"
    },
    "convective_available_potential_energy_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "J kg-1",
      "long_name": "Convective available potential energy",
      "standard_name": "atmosphere_convective_available_potential_energy",
      "short_name": "cape"
    },
    "convective_precipitation_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Convective precipitation",
      "standard_name": "convective_precipitation_amount",
      "short_name": "cp",
      "comment": "Accumulated since forecast initialization."
    },
    "dew_point_temperature_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "2 metre dewpoint temperature",
      "standard_name": "dew_point_temperature",
      "short_name": "2d"
    },
    "downward_long_wave_radiation_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "W s m-2",
      "long_name": "Surface long-wave (thermal) radiation downwards",
      "standard_name": "integral_wrt_time_of_surface_downwelling_longwave_flux_in_air",
      "short_name": "strd",
      "comment": "Accumulated since forecast initialization."
    },
    "downward_short_wave_radiation_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "W s m-2",
      "long_name": "Surface short-wave (solar) radiation downwards",
      "standard_name": "integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air",
      "short_name": "ssrd",
      "comment": "Accumulated since forecast initialization."
    },
    "eastward_turbulent_surface_stress_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "Pa s",
      "long_name": "Time-integrated eastward turbulent surface stress",
      "standard_name": "integral_wrt_time_of_surface_downward_eastward_stress",
      "short_name": "ewss",
      "comment": "Accumulated since forecast initialization."
    },
    "geopotential_height_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m",
      "long_name": "Geopotential height",
      "standard_name": "geopotential_height",
      "short_name": "gh",
      "comment": "Surface (orography) geopotential height. Available for control member 0 only; members 1-50 are NaN. Time-invariant field published at lead time 0 only."
    },
    "high_cloud_cover": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "percent",
      "long_name": "High cloud cover",
      "standard_name": "cloud_area_fraction_in_atmosphere_layer",
      "short_name": "hcc"
    },
    "land_sea_mask_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "1",
      "long_name": "Land-sea mask",
      "standard_name": "land_area_fraction",
      "short_name": "lsm",
      "comment": "Fraction (0-1) of the grid box that is land."
    },
    "low_cloud_cover": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "percent",
      "long_name": "Low cloud cover",
      "standard_name": "cloud_area_fraction_in_atmosphere_layer",
      "short_name": "lcc"
    },
    "maximum_temperature_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "Maximum temperature",
      "standard_name": "air_temperature",
      "short_name": "tmax",
      "comment": "Maximum since the preceding forecast step. Not available at lead time 0."
    },
    "medium_cloud_cover": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "percent",
      "long_name": "Medium cloud cover",
      "standard_name": "cloud_area_fraction_in_atmosphere_layer",
      "short_name": "mcc"
    },
    "minimum_temperature_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "Minimum temperature",
      "standard_name": "air_temperature",
      "short_name": "tmin",
      "comment": "Minimum since the preceding forecast step. Not available at lead time 0."
    },
    "most_unstable_convective_available_potential_energy_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "J kg-1",
      "long_name": "Most-unstable CAPE",
      "standard_name": "atmosphere_convective_available_potential_energy",
      "short_name": "mucape"
    },
    "net_long_wave_radiation_run_total_atmosphere_top": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "W s m-2",
      "long_name": "Top net long-wave (thermal) radiation",
      "short_name": "ttr",
      "comment": "Positive downwards, the negative of outgoing long-wave radiation. Accumulated since forecast initialization."
    },
    "net_long_wave_radiation_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "W s m-2",
      "long_name": "Surface net long-wave (thermal) radiation",
      "standard_name": "integral_wrt_time_of_surface_net_downward_longwave_flux",
      "short_name": "str",
      "comment": "Accumulated since forecast initialization."
    },
    "net_short_wave_radiation_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "W s m-2",
      "long_name": "Surface net short-wave (solar) radiation",
      "standard_name": "integral_wrt_time_of_surface_net_downward_shortwave_flux",
      "short_name": "ssr",
      "comment": "Accumulated since forecast initialization."
    },
    "northward_turbulent_surface_stress_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "Pa s",
      "long_name": "Time-integrated northward turbulent surface stress",
      "standard_name": "integral_wrt_time_of_surface_downward_northward_stress",
      "short_name": "nsss",
      "comment": "Accumulated since forecast initialization."
    },
    "precipitable_water_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Precipitable water",
      "standard_name": "atmosphere_mass_content_of_water_vapor",
      "short_name": "pwat"
    },
    "precipitation_rate_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2 s-1",
      "long_name": "Precipitation rate",
      "standard_name": "precipitation_flux",
      "short_name": "prate"
    },
    "pressure_reduced_to_mean_sea_level": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "Pa",
      "long_name": "Pressure reduced to MSL",
      "standard_name": "air_pressure_at_mean_sea_level",
      "short_name": "prmsl"
    },
    "pressure_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "Pa",
      "long_name": "Surface pressure",
      "standard_name": "surface_air_pressure",
      "short_name": "sp"
    },
    "runoff_water_equivalent_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Runoff water equivalent (surface plus subsurface)",
      "standard_name": "runoff_amount",
      "short_name": "rowe",
      "comment": "Accumulated since forecast initialization."
    },
    "sea_ice_thickness_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m",
      "long_name": "Sea ice thickness",
      "standard_name": "sea_ice_thickness",
      "short_name": "sithick",
      "comment": "NaN where there is no ocean model value, including over land."
    },
    "sea_surface_height": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m",
      "long_name": "Sea surface height",
      "short_name": "zos",
      "comment": "NaN where there is no ocean model value, including over land."
    },
    "sea_water_velocity_u_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m s-1",
      "long_name": "Eastward surface sea water velocity",
      "standard_name": "eastward_sea_water_velocity",
      "short_name": "sve",
      "comment": "Applies over the ocean only; over land the values are NaN or near zero, so mask with land_sea_mask_surface."
    },
    "sea_water_velocity_v_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m s-1",
      "long_name": "Northward surface sea water velocity",
      "standard_name": "northward_sea_water_velocity",
      "short_name": "svn",
      "comment": "Applies over the ocean only; over land the values are NaN or near zero, so mask with land_sea_mask_surface."
    },
    "skin_temperature_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "Skin temperature",
      "standard_name": "surface_temperature",
      "short_name": "skt"
    },
    "slope_of_sub_gridscale_orography_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "1",
      "long_name": "Slope of sub-gridscale orography",
      "short_name": "slor",
      "comment": "Available for control member 0 only; members 1-50 are NaN. Time-invariant field published at lead time 0 only."
    },
    "snow_albedo_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "percent",
      "long_name": "Snow albedo",
      "short_name": "asn",
      "comment": "Applies only where snow is present (snow_water_equivalent_surface > 0); snow-free cells hold placeholder values that also occur over snow."
    },
    "snow_density_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-3",
      "long_name": "Snow density",
      "standard_name": "surface_snow_density",
      "short_name": "rsn",
      "comment": "Applies only where snow is present (snow_water_equivalent_surface > 0); snow-free cells hold placeholder values that also occur over snow."
    },
    "snow_water_equivalent_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m",
      "long_name": "Snow depth water equivalent",
      "standard_name": "lwe_thickness_of_surface_snow_amount",
      "short_name": "sd",
      "comment": "Capped at 10 m; most of the Antarctic and Greenland ice sheets sit at this cap."
    },
    "snowfall_water_equivalent_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Snowfall water equivalent",
      "standard_name": "snowfall_amount",
      "short_name": "sf",
      "comment": "Accumulated since forecast initialization."
    },
    "soil_temperature_layer_1": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "Soil temperature",
      "standard_name": "soil_temperature",
      "short_name": "sot",
      "comment": "ECMWF soil level 1, the uppermost soil layer. Over water this is the sea surface temperature, not a soil temperature."
    },
    "soil_temperature_layer_2": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "Soil temperature",
      "standard_name": "soil_temperature",
      "short_name": "sot",
      "comment": "ECMWF soil level 2, the second soil layer from the surface. Over water this is the sea surface temperature, not a soil temperature."
    },
    "soil_temperature_layer_3": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "Soil temperature",
      "standard_name": "soil_temperature",
      "short_name": "sot",
      "comment": "ECMWF soil level 3. Over water this is the sea surface temperature, not a soil temperature."
    },
    "soil_temperature_layer_4": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "Soil temperature",
      "standard_name": "soil_temperature",
      "short_name": "sot",
      "comment": "ECMWF soil level 4. Over water this is the sea surface temperature, not a soil temperature."
    },
    "standard_deviation_of_sub_gridscale_orography_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m",
      "long_name": "Standard deviation of sub-gridscale orography",
      "short_name": "sdor",
      "comment": "Available for control member 0 only; members 1-50 are NaN. Time-invariant field published at lead time 0 only."
    },
    "temperature_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "degree_Celsius",
      "long_name": "2 metre temperature",
      "standard_name": "air_temperature",
      "short_name": "2t"
    },
    "total_cloud_cover_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "percent",
      "long_name": "Total cloud cover",
      "standard_name": "cloud_area_fraction",
      "short_name": "tcc"
    },
    "total_column_cloud_ice_water_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Total column cloud ice water",
      "standard_name": "atmosphere_mass_content_of_cloud_ice",
      "short_name": "tciw"
    },
    "total_column_cloud_liquid_water_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Total column cloud liquid water",
      "standard_name": "atmosphere_mass_content_of_cloud_liquid_water",
      "short_name": "tclw"
    },
    "total_column_rain_water_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Total column rain water",
      "short_name": "tcrw"
    },
    "total_column_water_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Total column water",
      "standard_name": "atmosphere_mass_content_of_water",
      "short_name": "tcw"
    },
    "total_precipitation_run_total_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "kg m-2",
      "long_name": "Total precipitation",
      "standard_name": "precipitation_amount",
      "short_name": "tp",
      "comment": "Accumulated since forecast initialization."
    },
    "volumetric_soil_moisture_layer_1": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "1",
      "long_name": "Volumetric soil moisture",
      "standard_name": "volume_fraction_of_condensed_water_in_soil",
      "short_name": "vsw",
      "comment": "ECMWF soil level 1, the uppermost soil layer. Applies over land only; over water the values are near zero, so mask with land_sea_mask_surface."
    },
    "volumetric_soil_moisture_layer_2": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "1",
      "long_name": "Volumetric soil moisture",
      "standard_name": "volume_fraction_of_condensed_water_in_soil",
      "short_name": "vsw",
      "comment": "ECMWF soil level 2, the second soil layer from the surface. Applies over land only; over water the values are near zero, so mask with land_sea_mask_surface."
    },
    "volumetric_soil_moisture_layer_3": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "1",
      "long_name": "Volumetric soil moisture",
      "standard_name": "volume_fraction_of_condensed_water_in_soil",
      "short_name": "vsw",
      "comment": "ECMWF soil level 3. Applies over land only; over water the values are near zero, so mask with land_sea_mask_surface."
    },
    "volumetric_soil_moisture_layer_4": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "1",
      "long_name": "Volumetric soil moisture",
      "standard_name": "volume_fraction_of_condensed_water_in_soil",
      "short_name": "vsw",
      "comment": "ECMWF soil level 4. Applies over land only; over water the values are near zero, so mask with land_sea_mask_surface."
    },
    "wind_gust_10m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m s-1",
      "long_name": "Maximum 10 metre wind gust since previous post-processing",
      "standard_name": "wind_speed_of_gust",
      "short_name": "10fg",
      "comment": "Maximum over the preceding hour through lead 90 hours, then since the preceding forecast step. Not available at lead time 0."
    },
    "wind_u_100m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m s-1",
      "long_name": "100 metre U wind component",
      "standard_name": "eastward_wind",
      "short_name": "100u"
    },
    "wind_u_10m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m s-1",
      "long_name": "10 metre U wind component",
      "standard_name": "eastward_wind",
      "short_name": "10u"
    },
    "wind_v_100m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m s-1",
      "long_name": "100 metre V wind component",
      "standard_name": "northward_wind",
      "short_name": "100v"
    },
    "wind_v_10m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440
      ],
      "unit": "m s-1",
      "long_name": "10 metre V wind component",
      "standard_name": "northward_wind",
      "short_name": "10v"
    },
    "pressure_level/divergence": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "s-1",
      "long_name": "Divergence",
      "standard_name": "divergence_of_wind",
      "short_name": "d"
    },
    "pressure_level/geopotential": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "m2 s-2",
      "long_name": "Geopotential",
      "standard_name": "geopotential",
      "short_name": "z",
      "comment": "Available for control member 0 only; members 1-50 are NaN."
    },
    "pressure_level/geopotential_height": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "m",
      "long_name": "Geopotential height",
      "standard_name": "geopotential_height",
      "short_name": "gh"
    },
    "pressure_level/relative_humidity": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "percent",
      "long_name": "Relative humidity",
      "standard_name": "relative_humidity",
      "short_name": "r"
    },
    "pressure_level/relative_vorticity": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "s-1",
      "long_name": "Vorticity (relative)",
      "standard_name": "atmosphere_upward_relative_vorticity",
      "short_name": "vo"
    },
    "pressure_level/specific_humidity": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "1",
      "long_name": "Specific humidity",
      "standard_name": "specific_humidity",
      "short_name": "q"
    },
    "pressure_level/temperature": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "degree_Celsius",
      "long_name": "Temperature",
      "standard_name": "air_temperature",
      "short_name": "t"
    },
    "pressure_level/vertical_velocity": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "Pa s-1",
      "long_name": "Vertical velocity",
      "standard_name": "lagrangian_tendency_of_air_pressure",
      "short_name": "w"
    },
    "pressure_level/wind_u": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "m s-1",
      "long_name": "U component of wind",
      "standard_name": "eastward_wind",
      "short_name": "u"
    },
    "pressure_level/wind_v": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude",
        "pressure_level"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        721,
        1440,
        1
      ],
      "unit": "m s-1",
      "long_name": "V component of wind",
      "standard_name": "northward_wind",
      "short_name": "v"
    }
  },
  "dynamical-org:chunking": {
    "dtype": "float64",
    "chunk": {
      "dimensions": [
        "init_time",
        "lead_time",
        "ensemble_member",
        "latitude",
        "longitude"
      ],
      "shape": [
        1,
        1,
        1,
        721,
        1440
      ],
      "lengths": {
        "init_time": "12 hours",
        "lead_time": "~3 hours",
        "latitude": "180.25\u00b0",
        "longitude": "360\u00b0"
      },
      "uncompressed_size_bytes": 8305920,
      "uncompressed_size": "7.9 MiB"
    }
  },
  "title": "ECMWF IFS ENS forecast, 15 day, 0.25 degree, virtual",
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180.0,
          -90.0,
          179.75,
          90.0
        ]
      ]
    },
    "temporal": {
      "interval": [
        [
          "2024-04-01T00:00:00Z",
          null
        ]
      ]
    }
  },
  "license": "CC-BY-4.0",
  "providers": [
    {
      "name": "ECMWF",
      "roles": [
        "producer"
      ],
      "url": "https://www.ecmwf.int/"
    },
    {
      "name": "dynamical.org",
      "roles": [
        "processor",
        "host"
      ],
      "url": "https://dynamical.org/"
    }
  ],
  "summaries": {
    "spatial_domain": [
      "Global"
    ],
    "spatial_resolution": [
      "0.25 degrees (~20km)"
    ],
    "time_domain": [
      "Forecasts initialized 2024-04-01 00:00:00 UTC to Present"
    ],
    "time_resolution": [
      "Forecasts initialized every 12 hours"
    ],
    "forecast_domain": [
      "Forecast lead time 0-360 hours (0-15 days) ahead"
    ],
    "forecast_resolution": [
      "Forecast step 0-144 hours: 3 hourly, 144-360 hours: 6 hourly"
    ]
  },
  "assets": {
    "icechunk": {
      "href": "s3://dynamical-ecmwf-ifs-ens/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/v0.1.0.icechunk/",
      "type": "application/x-icechunk",
      "title": "Icechunk v2 repository",
      "xarray:open_kwargs": {
        "engine": "zarr"
      },
      "xarray:storage_options": {
        "anon": true,
        "client_kwargs": {
          "region_name": "us-west-2"
        }
      },
      "icechunk:virtual_chunk_containers": [
        {
          "url_prefix": "gs://ecmwf-open-data/",
          "credentials": {
            "type": "gcs",
            "anonymous": true
          }
        },
        {
          "url_prefix": "s3://ecmwf-forecasts/",
          "credentials": {
            "type": "s3",
            "anonymous": true
          }
        }
      ],
      "roles": [
        "data"
      ]
    },
    "icechunk-https": {
      "href": "https://dynamical-ecmwf-ifs-ens.s3.us-west-2.amazonaws.com/ecmwf-ifs-ens-forecast-15-day-0-25-degree-virtual/v0.1.0.icechunk",
      "type": "application/x-icechunk",
      "title": "Icechunk v2 repository (HTTPS)",
      "xarray:open_kwargs": {
        "engine": "zarr"
      },
      "icechunk:virtual_chunk_containers": [
        {
          "url_prefix": "gs://ecmwf-open-data/",
          "credentials": {
            "type": "gcs",
            "anonymous": true
          }
        },
        {
          "url_prefix": "s3://ecmwf-forecasts/",
          "credentials": {
            "type": "s3",
            "anonymous": true
          }
        }
      ],
      "roles": [
        "data"
      ]
    }
  }
}