{
  "type": "Collection",
  "id": "google-weathernext3-forecast-48-hour-0-05-degree-virtual",
  "stac_version": "1.1.0",
  "description": "Weather forecasts from the 64-member Google DeepMind WeatherNext 3 ensemble model. These variables are WeatherNext 3's station-trained head, defined everywhere.",
  "links": [
    {
      "rel": "root",
      "href": "https://stac.dynamical.org/catalog.json",
      "type": "application/json",
      "title": "dynamical.org STAC Catalog"
    },
    {
      "rel": "license",
      "href": "https://storage.googleapis.com/weathernext-public/terms-of-use.pdf",
      "title": "GDM Real-Time Weather Forecasting Experimental Data Terms of Use for Real-Time Data & Forecasts"
    },
    {
      "rel": "license",
      "href": "https://creativecommons.org/licenses/by/4.0/",
      "title": "CC BY 4.0 for Historical Data"
    },
    {
      "rel": "about",
      "href": "https://dynamical.org/catalog/google-weathernext3-forecast-48-hour-0-05-degree-virtual/",
      "type": "text/html",
      "title": "Dataset documentation"
    },
    {
      "rel": "about",
      "href": "https://dynamical.org/catalog/google-weathernext3-forecast-48-hour-0-05-degree-virtual/validation/",
      "type": "text/html",
      "title": "Validation report"
    },
    {
      "rel": "via",
      "href": "https://developers.google.com/weathernext/guides/gcs",
      "type": "text/html",
      "title": "WeatherNext 3 statistics on Google Cloud Storage"
    },
    {
      "rel": "example",
      "href": "https://github.com/dynamical-org/notebooks/blob/main/google-weathernext3-forecast-virtual.ipynb",
      "type": "application/x-ipynb+json",
      "title": "WeatherNext 3 forecasts, virtual (GitHub)"
    },
    {
      "rel": "example",
      "href": "https://colab.research.google.com/github/dynamical-org/notebooks/blob/main/google-weathernext3-forecast-virtual.ipynb",
      "type": "text/html",
      "title": "WeatherNext 3 forecasts, virtual (Colab)"
    },
    {
      "rel": "self",
      "href": "https://stac.dynamical.org/google-weathernext3-forecast-48-hour-0-05-degree-virtual/collection.json",
      "type": "application/json",
      "title": "Google WeatherNext 3 forecast, 48 hour, 0.05 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": "Google WeatherNext 3 forecast data processed by dynamical.org from Google's WeatherNext 3 experimental data. Copyright 2024-6 Google LLC. \u00a9 2024-6 Google LLC, whose machine learning models were used to create the experimental data made available under the following licence terms https://storage.googleapis.com/weathernext-public/terms-of-use.pdf. This data is intended for experimental modelling only and is not intended, validated, or approved for real world use.",
  "version": "0.1.0",
  "model_id": "google-weathernext3",
  "model_name": "Google WeatherNext 3",
  "description_summary": "This data product provides 48-hour forecasts from the station-trained temperature and dew point head, evaluated on a global grid. These fields are distinct from the gridded fields in the 0.1 degree products. Google's precomputed ensemble mean and percentiles are selected along the `statistic` dimension. The spatial dimensions `y` and `x` hold latitude and 0-360 degree longitude.",
  "description_details": "### Source\n\nThis data product is built from Google's [WeatherNext 3 statistics archive](https://developers.google.com/weathernext/guides/gcs). Google supplies the mean and the 10th, 25th, 50th, 75th and 90th percentiles of its ensemble; these are exposed as `mean`, `p10`, `p25`, `p50`, `p75` and `p90` on the `statistic` dimension. Individual ensemble members are not included. Google's [attributions and acknowledgements](https://storage.googleapis.com/weathernext-public/weathernext-3-attributions-acknowledgements.pdf) list third-party materials whose terms may also apply.\n\n**Modifications.** dynamical.org restructures the source into an Icechunk virtual data product with dynamical.org's variable and dimension names and converts units as data is read. Temperatures are converted from kelvin to degrees Celsius.\n\n### Data availability\n\nThis data product starts with the 2026-01-01T00 UTC initialization and is updated every hour. Forecasts include steps whose valid time is in the future. Forecasts are initialized every hour; the six-hourly source forecasts are restricted to their first 48 hours. Recent initializations may be incomplete while source data arrives; unpublished steps read as NaN.\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 (1 hour) |\n| statistic | 1 |\n| lead_time | 1 (1 hour) |\n| y | 3601 (180.05\u00b0) |\n| x | 7200 (360\u00b0) |\n| **uncompressed** | 98.9 MiB |\n\n### Validation report\n\nReview the [validation report](https://dynamical.org/catalog/google-weathernext3-forecast-48-hour-0-05-degree-virtual/validation/) for variable availability, missing data, known quirks, fill values, value distributions, and sample plots.",
  "description_model": "WeatherNext 3 is Google's global probabilistic weather forecasting model. It combines atmospheric analyses with satellite observations and produces forecasts trained against gridded fields and weather station observations.",
  "examples": [
    {
      "title": "Ensemble mean temperature",
      "variants": [
        {
          "label": "dynamical-catalog",
          "code": "import dynamical_catalog  # dynamical-catalog>=1.0.0\n\nds = dynamical_catalog.open(\"google-weathernext3-forecast-48-hour-0-05-degree-virtual\", chunks=None)\nds[\"temperature_2m\"].sel(init_time=\"2026-07-01T00\", lead_time=\"24h\", statistic=\"mean\", y=slice(25, 55), x=slice(230, 300))",
          "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(\"google-weathernext3-forecast-48-hour-0-05-degree-virtual\")\nasset = collection.assets[\"icechunk-https\"]\n\nauthorize = icechunk.containers_credentials({\"https://wn.dynamical.org/chunks/\": icechunk.Credentials.HttpAccess()})\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-07-01T00\", lead_time=\"24h\", statistic=\"mean\", y=slice(25, 55), x=slice(230, 300))",
          "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: google-weathernext3-forecast-48-hour-0-05-degree-virtual\nSTAC collection: https://stac.dynamical.org/google-weathernext3-forecast-48-hour-0-05-degree-virtual/collection.json"
        }
      ]
    }
  ],
  "cube:dimensions": {
    "init_time": {
      "type": "temporal",
      "extent": [
        "2026-01-01T00:00:00Z",
        null
      ],
      "unit": "seconds since 1970-01-01"
    },
    "lead_time": {
      "type": "other",
      "extent": [
        3600,
        172800
      ],
      "unit": "seconds",
      "size": 48
    },
    "statistic": {
      "type": "other",
      "extent": [
        null,
        null
      ],
      "unit": "1",
      "size": 6
    },
    "x": {
      "type": "spatial",
      "extent": [
        0.0,
        359.95000000000005
      ],
      "axis": "x",
      "unit": "degree_east",
      "size": 7200
    },
    "y": {
      "type": "spatial",
      "extent": [
        -90.0,
        90.0
      ],
      "axis": "y",
      "unit": "degree_north",
      "size": 3601
    }
  },
  "cube:variables": {
    "dew_point_temperature_2m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        3601,
        7200
      ],
      "unit": "degree_Celsius",
      "long_name": "2 metre dewpoint temperature",
      "standard_name": "dew_point_temperature",
      "short_name": "2d",
      "comment": "WeatherNext 3's station-trained head, defined everywhere."
    },
    "temperature_2m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        3601,
        7200
      ],
      "unit": "degree_Celsius",
      "long_name": "2 metre temperature",
      "standard_name": "air_temperature",
      "short_name": "2t",
      "comment": "WeatherNext 3's station-trained head, defined everywhere."
    }
  },
  "dynamical-org:chunking": {
    "dtype": "float32",
    "chunk": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "shape": [
        1,
        1,
        1,
        3601,
        7200
      ],
      "lengths": {
        "init_time": "1 hour",
        "lead_time": "1 hour",
        "y": "180.05\u00b0",
        "x": "360\u00b0"
      },
      "uncompressed_size_bytes": 103708800,
      "uncompressed_size": "98.9 MiB"
    }
  },
  "title": "Google WeatherNext 3 forecast, 48 hour, 0.05 degree, virtual",
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180.0,
          -90.0,
          179.95000000000005,
          90.0
        ]
      ]
    },
    "temporal": {
      "interval": [
        [
          "2026-01-01T00:00:00Z",
          null
        ]
      ]
    }
  },
  "license": "other",
  "providers": [
    {
      "name": "Google DeepMind",
      "roles": [
        "producer"
      ],
      "url": "https://deepmind.google/"
    },
    {
      "name": "dynamical.org",
      "roles": [
        "processor",
        "host"
      ],
      "url": "https://dynamical.org/"
    }
  ],
  "summaries": {
    "spatial_domain": [
      "Global"
    ],
    "spatial_resolution": [
      "0.05 degrees (~5km)"
    ],
    "time_domain": [
      "Forecasts initialized 2026-01-01 00:00:00 UTC to Present"
    ],
    "time_resolution": [
      "Forecasts initialized every 1 hours"
    ],
    "forecast_domain": [
      "Forecast lead time 1-48 hours ahead"
    ],
    "forecast_resolution": [
      "Hourly"
    ]
  },
  "assets": {
    "icechunk": {
      "href": "https://google-weathernext3.r2.dynamical.org/google-weathernext3-forecast-48-hour-0-05-degree-virtual/v0.1.0.icechunk/",
      "type": "application/x-icechunk",
      "title": "Icechunk v2 repository",
      "xarray:open_kwargs": {
        "engine": "zarr"
      },
      "icechunk:virtual_chunk_containers": [
        {
          "url_prefix": "https://wn.dynamical.org/chunks/",
          "credentials": {
            "type": "http"
          }
        }
      ],
      "roles": [
        "data"
      ]
    },
    "icechunk-https": {
      "href": "https://google-weathernext3.r2.dynamical.org/google-weathernext3-forecast-48-hour-0-05-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": "https://wn.dynamical.org/chunks/",
          "credentials": {
            "type": "http"
          }
        }
      ],
      "roles": [
        "data"
      ]
    }
  }
}