{
  "type": "Collection",
  "id": "noaa-gfs-forecast",
  "stac_version": "1.1.0",
  "description": "Weather forecasts from the Global Forecast System (GFS) operated by NOAA NWS NCEP.",
  "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": "about",
      "href": "https://dynamical.org/catalog/noaa-gfs-forecast/",
      "type": "text/html",
      "title": "Dataset documentation"
    },
    {
      "rel": "example",
      "href": "https://github.com/dynamical-org/notebooks/blob/main/noaa-gfs-forecast.ipynb",
      "type": "application/x-ipynb+json",
      "title": "Quickstart (GitHub)"
    },
    {
      "rel": "example",
      "href": "https://colab.research.google.com/github/dynamical-org/notebooks/blob/main/noaa-gfs-forecast.ipynb",
      "type": "text/html",
      "title": "Quickstart (Colab)"
    },
    {
      "rel": "example",
      "href": "https://github.com/dynamical-org/notebooks/blob/main/noaa-gfs%2Becmwf-aifs-hdd.ipynb",
      "type": "application/x-ipynb+json",
      "title": "Heating degree days: GFS vs AIFS (GitHub)"
    },
    {
      "rel": "example",
      "href": "https://colab.research.google.com/github/dynamical-org/notebooks/blob/main/noaa-gfs%2Becmwf-aifs-hdd.ipynb",
      "type": "text/html",
      "title": "Heating degree days: GFS vs AIFS (Colab)"
    },
    {
      "rel": "self",
      "href": "https://stac.dynamical.org/noaa-gfs-forecast/collection.json",
      "type": "application/json",
      "title": "NOAA GFS forecast"
    },
    {
      "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": "NOAA NWS NCEP GFS data processed by dynamical.org from NOAA Open Data Dissemination archives.",
  "version": "0.2.7",
  "model_id": "noaa-gfs",
  "model_name": "NOAA GFS",
  "description_summary": "This dataset is an archive of past and present GFS forecasts. Forecasts are identified by an initialization time (`init_time`) denoting the start time of the model run. Each forecast steps forward in time along the `lead_time` dimension.",
  "description_details": "### Source\n\nThe source grib files this archive is constructed from are provided by [NOAA Open Data Dissemination (NODD)](https://www.noaa.gov/information-technology/open-data-dissemination) and accessed from the [AWS Open Data Registry](https://registry.opendata.aws/noaa-gfs-bdp-pds/). Operational data is additionally accessed from [NOAA NOMADS](https://nomads.ncep.noaa.gov/).\n\n### Storage\n\nStorage for this dataset is generously provided by [Source Cooperative](https://source.coop/), a [Radiant Earth](https://radiant.earth/) initiative. Icechunk storage generously provided by [AWS Open Data](https://aws.amazon.com/opendata/).\n\n### Compression\n\nThe data values in this dataset have been rounded in their binary floating point representation to improve compression. See [Kl\u00f6wer et al. 2021](https://www.nature.com/articles/s43588-021-00156-2) for more information on this approach. The exact number of rounded bits can be found in our [reformatting code](https://github.com/dynamical-org/reformatters/blob/main/src/reformatters/noaa/gfs/forecast/template_config.py).",
  "description_model": "The Global Forecast System (GFS) is a National Oceanic and Atmospheric Administration (NOAA) National Centers for Environmental Prediction (NCEP) weather forecast model that generates data for dozens of atmospheric and land-soil variables, including temperatures, winds, precipitation, soil moisture, and atmospheric ozone concentration. The system couples four separate models (atmosphere, ocean model, land/soil model, and sea ice) that work together to depict weather conditions.",
  "examples": [
    {
      "title": "Maximum temperature in a forecast",
      "code": "import dynamical_catalog  # dynamical-catalog>=0.5.0\n\nds = dynamical_catalog.open(\"noaa-gfs-forecast\")\nds[\"temperature_2m\"].sel(init_time=\"2025-01-01T00\", latitude=0, longitude=0).max().compute()",
      "language": "python"
    }
  ],
  "cube:dimensions": {
    "init_time": {
      "type": "temporal",
      "extent": [
        "2021-05-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,
        1382400
      ],
      "unit": "seconds",
      "size": 209
    },
    "longitude": {
      "type": "spatial",
      "extent": [
        -180.0,
        179.75
      ],
      "axis": "x",
      "unit": "degree_east",
      "size": 1440
    }
  },
  "cube:variables": {
    "categorical_freezing_rain_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical freezing rain",
      "short_name": "cfrzr",
      "comment": "Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes."
    },
    "categorical_ice_pellets_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical ice pellets",
      "short_name": "cicep",
      "comment": "Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes."
    },
    "categorical_rain_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical rain",
      "short_name": "crain",
      "comment": "Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes."
    },
    "categorical_snow_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical snow",
      "short_name": "csnow",
      "comment": "Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes."
    },
    "downward_long_wave_radiation_flux_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "W m-2",
      "long_name": "Surface downward long-wave radiation flux",
      "standard_name": "surface_downwelling_longwave_flux_in_air",
      "short_name": "sdlwrf",
      "comment": "Average over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z)."
    },
    "downward_short_wave_radiation_flux_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "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 over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z)."
    },
    "geopotential_height_cloud_ceiling": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "m",
      "long_name": "Geopotential height",
      "standard_name": "geopotential_height",
      "short_name": "gh"
    },
    "maximum_temperature_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "degree_Celsius",
      "long_name": "Maximum temperature",
      "standard_name": "air_temperature",
      "short_name": "tmax",
      "comment": "Maximum over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z)."
    },
    "minimum_temperature_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "degree_Celsius",
      "long_name": "Minimum temperature",
      "standard_name": "air_temperature",
      "short_name": "tmin",
      "comment": "Minimum over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z)."
    },
    "percent_frozen_precipitation_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "percent",
      "long_name": "Percent frozen precipitation",
      "short_name": "cpofp"
    },
    "precipitable_water_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "kg m-2",
      "long_name": "Precipitable water",
      "standard_name": "atmosphere_mass_content_of_water_vapor",
      "short_name": "pwat"
    },
    "precipitation_surface": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "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."
    },
    "pressure_reduced_to_mean_sea_level": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "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",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "Pa",
      "long_name": "Surface pressure",
      "standard_name": "surface_air_pressure",
      "short_name": "sp"
    },
    "relative_humidity_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "percent",
      "long_name": "2 metre relative humidity",
      "standard_name": "relative_humidity",
      "short_name": "2r"
    },
    "temperature_2m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "degree_Celsius",
      "long_name": "2 metre temperature",
      "standard_name": "air_temperature",
      "short_name": "2t"
    },
    "total_cloud_cover_atmosphere": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "percent",
      "long_name": "Total cloud cover",
      "standard_name": "cloud_area_fraction",
      "short_name": "tcc",
      "comment": "Average over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z)."
    },
    "wind_u_100m": {
      "dimensions": [
        "init_time",
        "lead_time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "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",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "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",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "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",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "m s-1",
      "long_name": "10 metre V wind component",
      "standard_name": "northward_wind",
      "short_name": "10v"
    }
  },
  "title": "NOAA GFS forecast",
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180.0,
          -90.0,
          179.75,
          90.0
        ]
      ]
    },
    "temporal": {
      "interval": [
        [
          "2021-05-01T00:00:00Z",
          null
        ]
      ]
    }
  },
  "license": "CC-BY-4.0",
  "summaries": {
    "spatial_domain": [
      "Global"
    ],
    "spatial_resolution": [
      "0.25 degrees (~20km)"
    ],
    "time_domain": [
      "Forecasts initialized 2021-05-01 00:00:00 UTC to Present"
    ],
    "time_resolution": [
      "Forecasts initialized every 6 hours"
    ],
    "forecast_domain": [
      "Forecast lead time 0-384 hours (0-16 days) ahead"
    ],
    "forecast_resolution": [
      "Forecast step 0-120 hours: hourly, 123-384 hours: 3 hourly"
    ]
  },
  "assets": {
    "icechunk": {
      "href": "s3://dynamical-noaa-gfs/noaa-gfs-forecast/v0.2.7.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"
        }
      },
      "roles": [
        "data"
      ]
    }
  }
}