Weather analysis from the Global Forecast System (GFS) operated by NOAA NWS NCEP.

| | |
|-------|-------|
| Spatial domain | Global |
| Spatial resolution | 0.25 degrees (~20km) |
| Time domain | 2021-05-01 00:00:00 UTC to Present |
| Time resolution | 1 hour |

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.

This analysis dataset is an archive of the model&#39;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.

_Don't see what you're looking for or have a question? Contact feedback@dynamical.org._


## Examples

* [Quickstart (Github)](https://github.com/dynamical-org/notebooks/blob/main/noaa-gfs-analysis.ipynb)
* [Quickstart (Colab)](https://colab.research.google.com/github/dynamical-org/notebooks/blob/main/noaa-gfs-analysis.ipynb)



## Dimensions

| dimension | min | max | units |
|-------|-------|-------|-------|
| **latitude** | -90 | 90 | degree_north |
| **longitude** | -180 | 179.75 | degree_east |
| **time** | 2021-05-01T00:00:00Z |  | seconds since 1970-01-01 |


## Variables

| variable | units | dimensions |
|-------|-------|-------|
| **categorical_freezing_rain_surface**<br>`cfrzr`<br>Categorical freezing rain<br>Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes. | 1 | time × latitude × longitude |
| **categorical_ice_pellets_surface**<br>`cicep`<br>Categorical ice pellets<br>Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes. | 1 | time × latitude × longitude |
| **categorical_rain_surface**<br>`crain`<br>Categorical rain<br>Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes. | 1 | time × latitude × longitude |
| **categorical_snow_surface**<br>`csnow`<br>Categorical snow<br>Presence/absence over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). 0=no; 1=yes. | 1 | time × latitude × longitude |
| **downward_long_wave_radiation_flux_surface**<br>`sdlwrf`<br>Surface downward long-wave radiation flux<br>Average over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). | W m-2 | time × latitude × longitude |
| **downward_short_wave_radiation_flux_surface**<br>`sdswrf`<br>Surface downward short-wave radiation flux<br>Average over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). | W m-2 | time × latitude × longitude |
| **geopotential_height_cloud_ceiling**<br>`gh`<br>Geopotential height | m | time × latitude × longitude |
| **maximum_temperature_2m**<br>`tmax`<br>Maximum temperature<br>Maximum over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). | degree_Celsius | time × latitude × longitude |
| **minimum_temperature_2m**<br>`tmin`<br>Minimum temperature<br>Minimum over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). | degree_Celsius | time × latitude × longitude |
| **percent_frozen_precipitation_surface**<br>`cpofp`<br>Percent frozen precipitation | percent | time × latitude × longitude |
| **precipitable_water_atmosphere**<br>`pwat`<br>Precipitable water | kg m-2 | time × latitude × longitude |
| **precipitation_surface**<br>`prate`<br>Precipitation rate<br>Average precipitation rate since the previous forecast step. Units equivalent to mm/s. | kg m-2 s-1 | time × latitude × longitude |
| **pressure_reduced_to_mean_sea_level**<br>`prmsl`<br>Pressure reduced to MSL | Pa | time × latitude × longitude |
| **pressure_surface**<br>`sp`<br>Surface pressure | Pa | time × latitude × longitude |
| **relative_humidity_2m**<br>`2r`<br>2 metre relative humidity | percent | time × latitude × longitude |
| **temperature_2m**<br>`2t`<br>2 metre temperature | degree_Celsius | time × latitude × longitude |
| **total_cloud_cover_atmosphere**<br>`tcc`<br>Total cloud cover<br>Average over the previous 1-6 hours, reset every 6-hour forecast step (00Z, 06Z, 12Z, 18Z). | percent | time × latitude × longitude |
| **wind_u_100m**<br>`100u`<br>100 metre U wind component | m s-1 | time × latitude × longitude |
| **wind_u_10m**<br>`10u`<br>10 metre U wind component | m s-1 | time × latitude × longitude |
| **wind_v_100m**<br>`100v`<br>100 metre V wind component | m s-1 | time × latitude × longitude |
| **wind_v_10m**<br>`10v`<br>10 metre V wind component | m s-1 | time × latitude × longitude |


Contact feedback@dynamical.org to request additional variables.

## Details

### License
Dataset licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).

### Attribution and citation
_NOAA NWS NCEP GFS data processed by dynamical.org from NOAA Open Data Dissemination archives._

Or _NOAA GFS from dynamical.org._

[DOI: 10.5281/zenodo.18777399](https://doi.org/10.5281/zenodo.18777399)

### Construction

GFS starts a new model run every 6 hours and dynamical.org has created this analysis by concatenating the first 6 hours of each forecast along the time dimension.

### Source

The 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/).

### Storage

Storage 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/).

### Chunks &amp; shards

This dataset is stored in [Zarr](https://zarr.dev/) format, which splits each variable into a grid of **chunks** — the smallest unit read from storage. Chunks are grouped into larger **shards** (the objects actually written to storage), which keeps the object count manageable for long-archive datasets. When possible, aligning your reads with this dataset&#39;s chunk grid can significantly improve data access speed.

The element count and coordinate span of this dataset:

| dimension | chunk | shard |
|---|---|---|
| time | 1440 (60 days) | 1440 (60 days) |
| latitude | 50 (12.5°) | 400 (100°) |
| longitude | 50 (12.5°) | 400 (100°) |
| **uncompressed** | 13.7 MiB | 878.9 MiB |

The same values are published in the `dynamical-org:chunking` field of this dataset&#39;s [STAC collection metadata](https://stac.dynamical.org/catalog.json).

### Compression

The data values in this dataset have been rounded in their binary floating point representation to improve compression. See [Klöwer 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/analysis/template_config.py).

### Related dataset

[NOAA GEFS analysis](/catalog/noaa-gefs-analysis/) provides a much longer historical record.

