NOAA Global Forecast System (GFS)
Original Data​
The origianl dataset is located at https://www.ncei.noaa.gov/products/weather-climate-models/global-forecast
The Global Forecast System (GFS) is a 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 accurately depict weather conditions.
Earthmover maintains an Arraylake of GFS data for demo purposes. The dataset begins on 2024-05-12 and is updated every six hours following the GFS forecast cycle.
Arraylake Repo​
The GFS Arraylake repo is called earthmover-demos/gfs
and is available to browse at https://app.earthmover.io/earthmover-demos/gfs.
There are three sub-groups within the repo:
solar
- A set of surface variables relevant to solar energy forecasting, chunked using an isotropic schema suitable for both spatial and temporal queries.timeseries
- The same data, but optimized more for timeseries queries.2023
- A static datastet of a single surface temperature temperature variable.
Open Repo and explore contents​
from arraylake import Client
client = Client()
repo = client.get_repo("earthmover-demos/gfs")
repo
<arraylake.repos.v1.Repo 'earthmover-demos/gfs'>
ds = repo.to_xarray('solar')
print(ds)
<xarray.Dataset> Size: 5TB
Dimensions: (longitude: 1440, latitude: 721, time: 1111, step: 209)
Coordinates:
* latitude (latitude) float64 6kB 90.0 89.75 89.5 ... -89.5 -89.75 -90.0
* longitude (longitude) float64 12kB 0.0 0.25 0.5 0.75 ... 359.2 359.5 359.8
* step (step) timedelta64[ns] 2kB 00:00:00 01:00:00 ... 16 days 00:00:00
* time (time) datetime64[ns] 9kB 2024-05-12T18:00:00 ... 2025-02-14T0...
Data variables:
gust (longitude, latitude, time, step) float32 964GB ...
prate (longitude, latitude, time, step) float32 964GB ...
r2 (longitude, latitude, time, step) float32 964GB ...
t2m (longitude, latitude, time, step) float32 964GB ...
tcc (longitude, latitude, time, step) float32 964GB ...
Attributes:
description: GFS data ingested for forecasting demo
Spatial Query and Plot​
Here we find a specific forecast and make a global map of surface temperature humidity.
ds.t2m.sel(time="2024-06-01", method="nearest").isel(step=4).plot(x='longitude', robust=True)
<matplotlib.collections.QuadMesh at 0x7ff9744d7b90>
Timseries Query and Plot​
Here we extract the forecast at a specific location.
ds.t2m.sel(longitude=255, latitude=40, time="2024-09-04", method="nearest").plot()
[<matplotlib.lines.Line2D at 0x7ff97447c650>]