{
  "type": "Collection",
  "id": "noaa-gefs-analysis",
  "stac_version": "1.1.0",
  "description": "Weather analysis from the Global Ensemble Forecast System (GEFS) 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-gefs-analysis/",
      "type": "text/html",
      "title": "Dataset documentation"
    },
    {
      "rel": "example",
      "href": "https://github.com/dynamical-org/notebooks/blob/main/noaa-gefs-analysis.ipynb",
      "type": "application/x-ipynb+json",
      "title": "Quickstart (GitHub)"
    },
    {
      "rel": "example",
      "href": "https://colab.research.google.com/github/dynamical-org/notebooks/blob/main/noaa-gefs-analysis.ipynb",
      "type": "text/html",
      "title": "Quickstart (Colab)"
    },
    {
      "rel": "self",
      "href": "https://stac.dynamical.org/noaa-gefs-analysis/collection.json",
      "type": "application/json",
      "title": "NOAA GEFS analysis"
    },
    {
      "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 GEFS data processed by dynamical.org from NOAA Open Data Dissemination archives.",
  "version": "0.1.2",
  "model_id": "noaa-gefs",
  "model_name": "NOAA GEFS",
  "description_summary": "This analysis dataset is an archive of the model's best estimate of past weather. It is created by concatenating the first few hours of each historical forecast to provide a dataset with dimensions time, latitude, and longitude.",
  "description_details": "### Sources\n\nTo provide the longest possible historical record, this dataset in constructed from three distinct GEFS forecast archives.\n\n- From 2000-01-01 to 2019-12-31 we use the [GEFS reforecast](https://registry.opendata.aws/noaa-gefs-reforecast/).\n- From 2020-01-01 to 2020-09-23 we use [GEFS forecast archive](https://registry.opendata.aws/noaa-gefs/) data which has a lower spatial and temporal resolution.\n- From 2020-09-23 to Present we use [GEFS operational forecast archives](https://registry.opendata.aws/noaa-gefs/).\n\nSource files 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-gefs/). Operational data is additionally accessed from [NOAA NOMADS](https://nomads.ncep.noaa.gov/).\n\n### Variable availability\n\nData is available for all variables at all times with the following exceptions.\n\n- Unavailable before 2020-01-01: `relative_humidity_2m`, `percent_frozen_precipitation_surface`, `categorical_freezing_rain_surface`, `categorical_ice_pellets_surface`, `categorical_rain_surface`, `categorical_snow_surface`\n- Unavailable 2020-01-01T00 to 2020-09-22T21: `geopotential_height_cloud_ceiling`\n\n### Construction\n\nTo create a single time dimension we concatenate the first few hours of each forecast. From 2000-01-01 to 2019-12-31 reforecasts are available once per day and this dataset uses the first 21 or 24 hours of each forecast. From 2020-01-01 to present forecasts are available every 6 hours and this dataset uses the first 3 or 6 hours of each forecast. Variables with an instantaneous `step_type` use the shortest possible lead times (e.g. 0 and 3 hours) while accumulated variables must use one additional forecast step (e.g. 3 and 6 hours) because they do not have an hour 0 forecast value.\n\n### Interpolation\n\nFor most of the time range of the archive the source data is available at 0.25-degree resolution and a 3 hourly time step and we perform no interpolation. There are two exceptions to this. 1) From 2020-01-01 to 2020-09-23 the source data has a 1.0-degree spatial resolution and a 6 hourly time step. 2) From 2020-09-23 to present the 100m wind components have a 0.5-degree spatial resolution in the source data. To provide a consistent archive in the above two cases we first perform bilinear interpolation in space to 0.25-degree resolution followed by linear interpolation in time to a 3-hourly timestep if necessary. The original, uninterpolated data can be obtained by selecting latitudes and longitudes evenly divisible by 1 and, in case 1), time steps whose hour is divisible by 6.\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/gefs/common_gefs_template_config.py).",
  "description_model": "The Global Ensemble Forecast System (GEFS) is a National Oceanic and Atmospheric Administration (NOAA) National Centers for Environmental Prediction (NCEP) weather forecast model. GEFS creates 31 separate forecasts (ensemble members) to describe the range of forecast uncertainty.",
  "examples": [
    {
      "title": "Temperature at a specific place and time",
      "code": "import dynamical_catalog  # dynamical-catalog>=0.5.0\n\nds = dynamical_catalog.open(\"noaa-gefs-analysis\")\nds[\"temperature_2m\"].sel(time=\"2025-01-01T00\", latitude=0, longitude=0).compute()",
      "language": "python"
    }
  ],
  "cube:dimensions": {
    "latitude": {
      "type": "spatial",
      "extent": [
        -90.0,
        90.0
      ],
      "axis": "y",
      "unit": "degree_north",
      "size": 721
    },
    "longitude": {
      "type": "spatial",
      "extent": [
        -180.0,
        179.75
      ],
      "axis": "x",
      "unit": "degree_east",
      "size": 1440
    },
    "time": {
      "type": "temporal",
      "extent": [
        "2000-01-01T00:00:00Z",
        null
      ],
      "unit": "seconds since 1970-01-01"
    }
  },
  "cube:variables": {
    "categorical_freezing_rain_surface": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical freezing rain",
      "short_name": "cfrzr",
      "comment": "0=no; 1=yes"
    },
    "categorical_ice_pellets_surface": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical ice pellets",
      "short_name": "cicep",
      "comment": "0=no; 1=yes"
    },
    "categorical_rain_surface": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical rain",
      "short_name": "crain",
      "comment": "0=no; 1=yes"
    },
    "categorical_snow_surface": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "1",
      "long_name": "Categorical snow",
      "short_name": "csnow",
      "comment": "0=no; 1=yes"
    },
    "downward_long_wave_radiation_flux_surface": {
      "dimensions": [
        "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 value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC)."
    },
    "downward_short_wave_radiation_flux_surface": {
      "dimensions": [
        "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 value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC)."
    },
    "geopotential_height_500hpa": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "m",
      "long_name": "Geopotential height",
      "standard_name": "geopotential_height",
      "short_name": "gh"
    },
    "geopotential_height_cloud_ceiling": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "m",
      "long_name": "Geopotential height",
      "standard_name": "geopotential_height",
      "short_name": "gh"
    },
    "maximum_temperature_2m": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "degree_Celsius",
      "long_name": "Maximum temperature",
      "standard_name": "air_temperature",
      "short_name": "tmax"
    },
    "minimum_temperature_2m": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "degree_Celsius",
      "long_name": "Minimum temperature",
      "standard_name": "air_temperature",
      "short_name": "tmin"
    },
    "percent_frozen_precipitation_surface": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "percent",
      "long_name": "Percent frozen precipitation",
      "short_name": "cpofp",
      "comment": "Contains the value -50 when there is no precipitation."
    },
    "precipitable_water_atmosphere": {
      "dimensions": [
        "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": [
        "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": [
        "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": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "Pa",
      "long_name": "Surface pressure",
      "standard_name": "surface_air_pressure",
      "short_name": "sp"
    },
    "relative_humidity_2m": {
      "dimensions": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "percent",
      "long_name": "2 metre relative humidity",
      "standard_name": "relative_humidity",
      "short_name": "2r"
    },
    "temperature_2m": {
      "dimensions": [
        "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": [
        "time",
        "latitude",
        "longitude"
      ],
      "type": "data",
      "unit": "percent",
      "long_name": "Total cloud cover",
      "standard_name": "cloud_area_fraction",
      "short_name": "tcc",
      "comment": "Average value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC)."
    },
    "wind_u_100m": {
      "dimensions": [
        "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": [
        "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": [
        "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": [
        "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 GEFS analysis",
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180.0,
          -90.0,
          179.75,
          90.0
        ]
      ]
    },
    "temporal": {
      "interval": [
        [
          "2000-01-01T00:00:00Z",
          null
        ]
      ]
    }
  },
  "license": "CC-BY-4.0",
  "summaries": {
    "spatial_domain": [
      "Global"
    ],
    "spatial_resolution": [
      "0.25 degrees (~20km)"
    ],
    "time_domain": [
      "2000-01-01 00:00:00 UTC to Present"
    ],
    "time_resolution": [
      "3.0 hours"
    ]
  },
  "assets": {
    "icechunk": {
      "href": "s3://dynamical-noaa-gefs/noaa-gefs-analysis/v0.1.2.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"
      ]
    }
  }
}