{
  "type": "Collection",
  "id": "google-weathernext3-forecast-15-day-0-1-degree-virtual",
  "stac_version": "1.1.0",
  "description": "Weather forecasts from the 64-member Google DeepMind WeatherNext 3 ensemble model.",
  "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-15-day-0-1-degree-virtual/",
      "type": "text/html",
      "title": "Dataset documentation"
    },
    {
      "rel": "about",
      "href": "https://dynamical.org/catalog/google-weathernext3-forecast-15-day-0-1-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-15-day-0-1-degree-virtual/collection.json",
      "type": "application/json",
      "title": "Google WeatherNext 3 forecast, 15 day, 0.1 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 15-day forecasts of gridded surface weather fields. 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, cloud fractions to percent, hourly precipitation amounts to rates in kg m\u207b\u00b2 s\u207b\u00b9, and hourly solar energy to flux in W m\u207b\u00b2.\n\n### Data availability\n\nThis data product starts with the 2026-01-01T00 UTC initialization and is updated four times a day. Forecasts include steps whose valid time is in the future. Forecasts are initialized at 00, 06, 12 and 18 UTC. 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 (6 hours) |\n| statistic | 1 |\n| lead_time | 1 (1 hour) |\n| y | 1801 (180.1\u00b0) |\n| x | 3600 (360\u00b0) |\n| **uncompressed** | 24.7 MiB |\n\n### Validation report\n\nReview the [validation report](https://dynamical.org/catalog/google-weathernext3-forecast-15-day-0-1-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-15-day-0-1-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-15-day-0-1-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-15-day-0-1-degree-virtual\nSTAC collection: https://stac.dynamical.org/google-weathernext3-forecast-15-day-0-1-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,
        1296000
      ],
      "unit": "seconds",
      "size": 360
    },
    "statistic": {
      "type": "other",
      "extent": [
        null,
        null
      ],
      "unit": "1",
      "size": 6
    },
    "x": {
      "type": "spatial",
      "extent": [
        0.0,
        359.90000000000003
      ],
      "axis": "x",
      "unit": "degree_east",
      "size": 3600
    },
    "y": {
      "type": "spatial",
      "extent": [
        -90.0,
        90.0
      ],
      "axis": "y",
      "unit": "degree_north",
      "size": 1801
    }
  },
  "cube:variables": {
    "cloud_cover_high": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "percent",
      "long_name": "High cloud cover",
      "standard_name": "cloud_area_fraction_in_atmosphere_layer",
      "short_name": "hcc"
    },
    "cloud_cover_low": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "percent",
      "long_name": "Low cloud cover",
      "standard_name": "cloud_area_fraction_in_atmosphere_layer",
      "short_name": "lcc"
    },
    "cloud_cover_medium": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "percent",
      "long_name": "Medium cloud cover",
      "standard_name": "cloud_area_fraction_in_atmosphere_layer",
      "short_name": "mcc"
    },
    "dew_point_temperature_2m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "degree_Celsius",
      "long_name": "2 metre dewpoint temperature",
      "standard_name": "dew_point_temperature",
      "short_name": "2d"
    },
    "downward_direct_short_wave_radiation_flux_surface": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "W m-2",
      "long_name": "Surface direct short-wave radiation flux",
      "standard_name": "surface_direct_downwelling_shortwave_flux_in_air",
      "short_name": "aswdir_s",
      "comment": "Average flux since the previous forecast step."
    },
    "downward_short_wave_radiation_flux_surface": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "W m-2",
      "long_name": "Surface downward short-wave radiation flux",
      "standard_name": "surface_downwelling_shortwave_flux_in_air",
      "short_name": "sdswrf",
      "comment": "Average flux since the previous forecast step."
    },
    "precipitation_experimental_surface": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "kg m-2 s-1",
      "long_name": "Precipitation rate",
      "standard_name": "precipitation_flux",
      "short_name": "prate",
      "comment": "Average precipitation rate since the previous forecast step. Units equivalent to mm/s. WeatherNext 3 forecast of 1-hour precipitation from its experimental satellite-radar precipitation head; a model forecast, not an observation."
    },
    "precipitation_imerg_surface": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "kg m-2 s-1",
      "long_name": "Precipitation rate",
      "standard_name": "precipitation_flux",
      "short_name": "prate",
      "comment": "Average precipitation rate since the previous forecast step. Units equivalent to mm/s. WeatherNext 3 forecast of 1-hour precipitation calibrated to IMERG satellite precipitation; a model forecast, not an observation."
    },
    "precipitation_surface": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "kg m-2 s-1",
      "long_name": "Precipitation rate",
      "standard_name": "precipitation_flux",
      "short_name": "prate",
      "comment": "Average precipitation rate since the previous forecast step. Units equivalent to mm/s. WeatherNext 3 model-native 1-hour precipitation."
    },
    "pressure_reduced_to_mean_sea_level": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "Pa",
      "long_name": "Pressure reduced to MSL",
      "standard_name": "air_pressure_at_mean_sea_level",
      "short_name": "prmsl"
    },
    "sea_surface_temperature": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "degree_Celsius",
      "long_name": "Sea surface temperature",
      "standard_name": "sea_surface_temperature",
      "short_name": "sst",
      "comment": "NaN over land where sea surface temperature does not apply."
    },
    "temperature_2m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "degree_Celsius",
      "long_name": "2 metre temperature",
      "standard_name": "air_temperature",
      "short_name": "2t"
    },
    "total_cloud_cover_atmosphere": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "percent",
      "long_name": "Total cloud cover",
      "standard_name": "cloud_area_fraction",
      "short_name": "tcc"
    },
    "wind_speed_100m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "m s-1",
      "long_name": "100 metre wind speed",
      "standard_name": "wind_speed",
      "short_name": "100si",
      "comment": "The statistic of ensemble wind speed, not derived from the u/v statistics."
    },
    "wind_speed_10m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "m s-1",
      "long_name": "10 metre wind speed",
      "standard_name": "wind_speed",
      "short_name": "10si",
      "comment": "The statistic of ensemble wind speed, not derived from the u/v statistics."
    },
    "wind_u_100m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "m s-1",
      "long_name": "100 metre U wind component",
      "standard_name": "eastward_wind",
      "short_name": "100u"
    },
    "wind_u_10m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "m s-1",
      "long_name": "10 metre U wind component",
      "standard_name": "eastward_wind",
      "short_name": "10u"
    },
    "wind_v_100m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "m s-1",
      "long_name": "100 metre V wind component",
      "standard_name": "northward_wind",
      "short_name": "100v"
    },
    "wind_v_10m": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "type": "data",
      "chunks": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "unit": "m s-1",
      "long_name": "10 metre V wind component",
      "standard_name": "northward_wind",
      "short_name": "10v"
    }
  },
  "dynamical-org:chunking": {
    "dtype": "float32",
    "chunk": {
      "dimensions": [
        "init_time",
        "statistic",
        "lead_time",
        "y",
        "x"
      ],
      "shape": [
        1,
        1,
        1,
        1801,
        3600
      ],
      "lengths": {
        "init_time": "6 hours",
        "lead_time": "1 hour",
        "y": "180.1\u00b0",
        "x": "360\u00b0"
      },
      "uncompressed_size_bytes": 25934400,
      "uncompressed_size": "24.7 MiB"
    }
  },
  "title": "Google WeatherNext 3 forecast, 15 day, 0.1 degree, virtual",
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180.0,
          -90.0,
          179.89999999999998,
          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.1 degrees (~10km)"
    ],
    "time_domain": [
      "Forecasts initialized 2026-01-01 00:00:00 UTC to Present"
    ],
    "time_resolution": [
      "Forecasts initialized every 6 hours"
    ],
    "forecast_domain": [
      "Forecast lead time 1-360 hours ahead"
    ],
    "forecast_resolution": [
      "Hourly"
    ]
  },
  "assets": {
    "icechunk": {
      "href": "https://google-weathernext3.r2.dynamical.org/google-weathernext3-forecast-15-day-0-1-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-15-day-0-1-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"
      ]
    }
  }
}