GribStream

GribStream
Fast & Efficient Historical Weather Forecast API

Leverage The National Blend of Models (NBM) & The Global Forecast System (GFS) & The Rapid Refresh (RAP) & High-Resolution Rapid Refresh (HRRR) & GraphCast Global Forecast System (GraphCast GFS) & The Global Ensemble Forecast System (GEFS) & The Climate Forecast System (CFS)

🚀 Blazing Fast

Tens of thousands of points at hourly rate, for months at a time in a single http request, in seconds.

🛠️ Easy to Use

Simple API, open-source clients and clear documentation. Try it in minutes.

📈 Cost-effective

Killer pricing and performance. Extract only what you need. No need to download/archive, just consume the on-demand stream.

What is The National Blend of Models (NBM)?

The National Blend of Models (NBM) is a robust, nationwide framework of calibrated forecast tools that combines both NWS and external numerical weather prediction outputs, along with refined post-processed guidance. Its primary objective is to deliver a highly accurate, consistent, and reliable foundation for gridded forecasts.

What is The Global Forecast System (GFS)?

The Global Forecast System (GFS) is a weather forecasting model developed by the National Centers for Environmental Prediction (NCEP). It provides data on numerous atmospheric and land-soil characteristics—including temperature, wind, precipitation, soil moisture, and atmospheric ozone—by integrating four separate models for the atmosphere, ocean, land/soil, and sea ice. This combined approach helps depict weather conditions accurately.

What is The Rapid Refresh (RAP)?

The Rapid Refresh (RAP) is NOAA’s hourly-updated continental-scale assimilation and modeling system, operated by NCEP. Primarily covering North America, RAP consists of a numerical forecast model and an analysis/assimilation component to initialize that model. It is especially useful for producing Skew-T Log-P diagrams.

What is The High-Resolution Rapid Refresh (HRRR)?

The High-Resolution Rapid Refresh (HRRR) is a real-time NOAA atmospheric model offering a 3-km resolution and hourly updates. It includes cloud-resolving and convection-allowing features, initialized by 3-km grids with radar data assimilation. Every 15 minutes, radar observations are incorporated over a one-hour cycle, adding further detail beyond the hourly data assimilation from the 13-km Rapid Refresh.

What is The GraphCast Global Forecast System (GraphCast GFS)?

The GraphCast Global Forecast System (GraphCast GFS) is an experimental forecasting approach built upon Google DeepMind’s GraphCast Machine Learning Weather Prediction (MLWP) model. It aims to leverage cutting-edge machine learning methods for improved weather predictions.

What is The Global Ensemble Forecast System (GEFS)?

The Global Ensemble Forecast System (GEFS) is a probabilistic weather prediction system managed by NOAA. It utilizes multiple ensemble members to generate a range of possible outcomes, enhancing the ability to assess weather uncertainties and probabilities. The ensemble approach helps to capture the range of possible weather scenarios by running slightly different initial conditions or model configurations, which are referred to as ensemble members or components.

Currently supported ensemble components in the GEFS include the "chem" for atmospheric chemistry forecasts, "wave prob" for probabilistic ocean wave forecasts, and "atmos mean" for averaged atmospheric conditions. Each component provides specialized forecasts that cater to different aspects of meteorological analysis and prediction, contributing to a comprehensive understanding of potential weather developments.

What is the Climate Forecast System (CFS)?

The Climate Forecast System (CFS), developed by NCEP, provides medium- to long-range global forecasts, spanning days to seasons. It integrates atmospheric, oceanic, land, and sea ice data using a coupled model that assimilates real-time observations from satellites, buoys, and weather stations.

CFS produces ensemble-based probabilistic forecasts, covering variables like temperature, pressure, wind, sea surface temperature, and soil moisture. It is widely used for seasonal climate outlooks, agricultural planning, water resource management, and energy forecasting, helping industries anticipate droughts, floods, and climate anomalies up to nine months ahead.

Features roadmap

Actively being developed, hover items for details and don't hesitate contacting us for more information.

Result formats

✅CSV

Parquet

JSON lines

Image PNG, JPG, TIFF

MP4 H.264 H.265

Locations by

✅Latitude,Longitude

Zip Code

City

Shape

Times by

✅Range

✅List

✅Best series

✅Asof / Time-travel

Downsampling

Interpolation / upsampling

Aggregations

Averages

Weighted averages

Time weighted averages

Minimum, maximum

Percentiles

Histograms

Notifications

Threshold based

EMA outlier

Prediction changed

To e-mail

To webhook

✅ readily available

Examples

Query the best GFS historical data for two parameters, for a three day range, for three coordinates, as of the end of the second day

start = datetime.datetime.now(datetime.UTC)
df = client.history(
    dataset='gfs',
    from_time=datetime.datetime(year=2022, month=8, day=10, hour=0),
    until_time=datetime.datetime(year=2022, month=8, day=13, hour=0),
    coordinates=[
        {"lat": 40.75, "lon": -73.98},
        {"lat": 29.75, "lon": -95.36},
        {"lat": 47.60, "lon": -122.33},
    ],
    variables=[
        {"name": "TMP", "level": "2 m above ground", "info": ""},
        {"name": "TMP", "level": "surface", "info": ""},
    ],
    # Time travel. Before as_of, forecasted_time is history, after it is the forecast at as_of
    as_of=datetime.datetime(year=2024, month=8, day=12, hour=0),
    min_horizon=0,
    max_horizon=264,
)
print(df.sort_values(['forecasted_time', 'lat', 'lon']).head(20).to_string(index=False))
print('response in:', datetime.datetime.now(datetime.UTC) - start)

Output:

            forecasted_at           forecasted_time   lat     lon  TMP|2 m above ground|  TMP|surface|
2022-08-10 00:00:00+00:00 2022-08-10 00:00:00+00:00 29.75  -95.36                 305.76        306.26
2022-08-10 00:00:00+00:00 2022-08-10 00:00:00+00:00 40.75  -73.98                 303.16        303.46
2022-08-10 00:00:00+00:00 2022-08-10 00:00:00+00:00 47.60 -122.33                 297.66        298.66
2022-08-10 00:00:00+00:00 2022-08-10 01:00:00+00:00 29.75  -95.36                 304.38        304.30
2022-08-10 00:00:00+00:00 2022-08-10 01:00:00+00:00 40.75  -73.98                 301.58        301.80
2022-08-10 00:00:00+00:00 2022-08-10 01:00:00+00:00 47.60 -122.33                 295.48        296.10
2022-08-10 00:00:00+00:00 2022-08-10 02:00:00+00:00 29.75  -95.36                 303.24        303.22
2022-08-10 00:00:00+00:00 2022-08-10 02:00:00+00:00 40.75  -73.98                 301.04        301.42
2022-08-10 00:00:00+00:00 2022-08-10 02:00:00+00:00 47.60 -122.33                 294.24        294.52
2022-08-10 00:00:00+00:00 2022-08-10 03:00:00+00:00 29.75  -95.36                 302.77        302.79
2022-08-10 00:00:00+00:00 2022-08-10 03:00:00+00:00 40.75  -73.98                 300.47        300.69
2022-08-10 00:00:00+00:00 2022-08-10 03:00:00+00:00 47.60 -122.33                 291.47        290.99
2022-08-10 00:00:00+00:00 2022-08-10 04:00:00+00:00 29.75  -95.36                 301.26        300.90
2022-08-10 00:00:00+00:00 2022-08-10 04:00:00+00:00 40.75  -73.98                 299.06        299.50
2022-08-10 00:00:00+00:00 2022-08-10 04:00:00+00:00 47.60 -122.33                 288.96        288.20
2022-08-10 00:00:00+00:00 2022-08-10 05:00:00+00:00 29.75  -95.36                 300.61        300.24
2022-08-10 00:00:00+00:00 2022-08-10 05:00:00+00:00 40.75  -73.98                 297.31        297.44
2022-08-10 00:00:00+00:00 2022-08-10 05:00:00+00:00 47.60 -122.33                 287.51        286.94
2022-08-10 06:00:00+00:00 2022-08-10 06:00:00+00:00 29.75  -95.36                 300.38        299.93
2022-08-10 06:00:00+00:00 2022-08-10 06:00:00+00:00 40.75  -73.98                 296.98        296.93
response in: 0:00:00.790859
            

Check out the full documentation and code examples on GitHub.

Query the forecast made at 2024-09-10T00:00:00Z for three parameters, ten hours out, for three coordinates:

curl -X POST 'https://gribstream.com/api/v2/gfs/history' \
-H "Content-Type: application/json" \
-H "Accept-Encoding: gzip" \
-H "Authorization: Bearer $(curl https://gribstream.com/auth/demo)" \
-d '{
    "fromTime": "2022-08-10T00:00:00Z",
    "untilTime": "2022-08-13T00:00:00Z",
    "asOf": "2022-08-12T00:00:00Z",
    "minHorizon": 0,
    "maxHorizon": 384,
    "coordinates": [
        { "lat": 40.75, "lon": -73.98 },
        { "lat": 29.75, "lon": -95.36 },
        { "lat": 47.6, "lon": -122.33 }
    ],
    "variables": [
        { "name": "TMP", "level": "2 m above ground", "info": "" },
        { "name": "TMP", "level": "surface", "info": "" }
    ]
}' | gunzip | head -20
            

Output:

forecasted_at,forecasted_time,lat,lon,TMP|2 m above ground|,TMP|surface|
2022-08-10T06:00:00Z,2022-08-10T06:00:00Z,47.60,-122.33,287.28,286.83
2022-08-10T06:00:00Z,2022-08-10T06:00:00Z,40.75,-73.98,296.98,296.93
2022-08-10T06:00:00Z,2022-08-10T06:00:00Z,29.75,-95.36,300.38,299.93
2022-08-10T06:00:00Z,2022-08-10T08:00:00Z,47.60,-122.33,286.82,286.09
2022-08-10T06:00:00Z,2022-08-10T08:00:00Z,40.75,-73.98,295.72,295.79
2022-08-10T06:00:00Z,2022-08-10T08:00:00Z,29.75,-95.36,300.22,299.79
2022-08-11T06:00:00Z,2022-08-11T07:00:00Z,47.60,-122.33,286.26,285.27
2022-08-11T06:00:00Z,2022-08-11T07:00:00Z,40.75,-73.98,296.06,296.17
2022-08-11T06:00:00Z,2022-08-11T07:00:00Z,29.75,-95.36,297.86,298.07
2022-08-10T18:00:00Z,2022-08-10T19:00:00Z,47.60,-122.33,292.47,293.05
2022-08-10T18:00:00Z,2022-08-10T19:00:00Z,40.75,-73.98,303.67,307.85
2022-08-10T18:00:00Z,2022-08-10T19:00:00Z,29.75,-95.36,308.17,310.65
2022-08-11T00:00:00Z,2022-08-11T04:00:00Z,47.60,-122.33,288.15,287.10
2022-08-11T00:00:00Z,2022-08-11T04:00:00Z,40.75,-73.98,297.95,298.00
2022-08-11T00:00:00Z,2022-08-11T04:00:00Z,29.75,-95.36,298.55,299.00
2022-08-10T18:00:00Z,2022-08-10T22:00:00Z,47.60,-122.33,295.04,295.85
2022-08-10T18:00:00Z,2022-08-10T22:00:00Z,40.75,-73.98,304.44,305.75
2022-08-10T18:00:00Z,2022-08-10T22:00:00Z,29.75,-95.36,308.14,309.55
2022-08-10T12:00:00Z,2022-08-10T14:00:00Z,47.60,-122.33,288.04,288.10
            

Available Plans

A Free Plan is available to get you started. Upgrade to one of our Pro plans for higher daily usage limits.

For larger-scale usage, customized plans, heavy backfills, higher performance, or additional features, contact us.

Pro Plan

Daily Limit: 48,000 credits

$9.90 / month

Pro Plan 2x

Daily Limit: 96,000 credits

$18.80 / month

Pro Plan 4x

Daily Limit: 192,000 credits

$35.70 / month

Pro Plan 8x

Daily Limit: 384,000 credits

$67.80 / month

Pro Plan 16x

Daily Limit: 768,000 credits

$128.80 / month

Pro Plan 32x

Daily Limit: 1,536,000 credits

$244.70 / month

Pro Plan 64x

Daily Limit: 3,072,000 credits

$464.90 / month

Pro Plan 128x

Daily Limit: 6,144,000 credits

$883.30 / month

Pro Plan 256x

Daily Limit: 12,288,000 credits

$1678.30 / month

Per request quota calculation

Credits are calculated as:

Credits = hours * parameters * (1 + (coordinates-1) / 500)
Or in words, hours of data, times the number of weather parameters, times bundles of 500 coordinates.

Examples:

For larger-scale usage, customized plans, heavy backfills, higher performance, or additional features, contact us.