GribStream

GFS based storm chasing

This dashboard tracks severe storm potential across the continental United States by combining Convective Available Potential Energy (CAPE) and Convective Inhibition (CIN) into a single "storm severity" score.

CAPE is a measure of atmospheric instability. It represents the buoyant energy that allows warm moist air parcels to rise freely. High CAPE values are a classic signal that the environment can support strong updrafts, tall cumulonimbus clouds, and the intense rainfall or hail that often follows.

CIN is the opposite side of the equation. It expresses the amount of energy that must be overcome before an air parcel can begin its ascent. Large CIN values act like a lid, keeping thunderstorms from forming until the cap is broken by surface heating or other forcing.

By adding CAPE and CIN we create a quick net energy check. A storm severity figure of twelve hundred or more shows that instability overwhelmingly exceeds any suppression. The map highlights every grid cell that reaches or surpasses this threshold. Marker size scales with the severity score so the most explosive environments stand out at a glance.

A time slider lets you step through the next forty eight forecast hours. Move the handle to watch clusters of storms ignite, grow, and travel across the landscape. Because the data updates as soon as new model runs publish, this view doubles as a near real time severe weather tracker.

Use the example curl below to pull the same data set directly from the GribStream API and experiment with different thresholds, domains, and resolutions.

Example GribStream request that populates the dashboard below:

curl -X POST 'https://gribstream.com/api/v2/gfs/history' \
    -H "Content-Type: application/json" \
    -H "Authorization: [API_TOKEN]" \
    -d '{
    "fromTime": "2025-05-06T01:15:37.583Z",
    "untilTime": "2025-05-08T01:15:37.583Z",
    "minHorizon": 0,
    "maxHorizon": 500,
    "grid": {
            "minLatitude": 24.52,
            "maxLatitude": 49.38,
            "minLongitude": -124.77,
            "maxLongitude": -66.93,
            "step": 0.5
        },
        "variables": [
            {"name": "CAPE", "level": "180-0 mb above ground", "info": "", "alias": "cape"},
            {"name": "CIN", "level": "180-0 mb above ground", "info": "", "alias": "cin"}
        ],
        "expressions":[
            { "expression": "cape + cin", "alias": "storm_severity"},
            { "expression": "floor((date(forecasted_time) - date('\''2025-05-06T01:15:37.583Z'\'')).Hours())", "alias": "offset_hours"}
        ],
        "filter":{"expression": "storm_severity >= 1200"}
}'

Result:

forecasted_at,forecasted_time,lat,lon,name,cape,cin,offset_hours,storm_severity
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,36.5200,-74.7700,,1224.0000,-19.9896,0.0000,1204.0104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,36.0200,-74.7700,,1623.0000,-1.3896,0.0000,1621.6104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,36.0200,-74.2700,,1444.0000,0.0104,0.0000,1444.0104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,35.5200,-75.7700,,1270.0000,-7.2896,0.0000,1262.7104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,35.5200,-74.7700,,1686.0000,-0.2896,0.0000,1685.7104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,35.5200,-74.2700,,1307.0000,-0.0896,0.0000,1306.9104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,35.0200,-75.7700,,1298.0000,-4.9896,0.0000,1293.0104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,35.0200,-75.2700,,1220.0000,-6.6896,0.0000,1213.3104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,35.0200,-74.7700,,1377.0000,-0.1896,0.0000,1376.8104
2025-05-05T18:00:00Z,2025-05-06T02:00:00Z,35.0200,-74.2700,,1262.0000,-1.0896,0.0000,1260.9104
...