Hail History Within a Polygon (Event Timeline + Per-Cell Map)

Query hail history for all radar grid cells inside a GeoJSON Polygon.

Query hail history for all radar grid cells inside a GeoJSON Polygon.

Returns three complementary views of the same underlying data:

Event Timeline (events)

One entry per distinct storm event that affected the polygon. Each event includes start_time, max_hail_size_in, max_hail_index, cells_hit, and coverage_fraction (fraction of polygon cells impacted).

Cells are grouped into storms using a 2-hour timestamp proximity window, cells whose peak events fall within 2 hours of each other are treated as the same storm event.

Per-Cell Map (features)

GeoJSON FeatureCollection with one Point per grid cell inside the polygon that recorded hail in the time range. Each feature includes:

  • max_hail_size_in: FLASH AI calibrated estimate for this cell
  • raw_mrms_size_in: uncalibrated radar estimate
  • coverage: spatial density fraction within the cell area
  • duration_min: duration of the peak hail event
  • hail_index: 0.0–5.0 impact index
  • event_count: total hail events in the cell during the query window
  • peak_start_time: timestamp of the peak (largest) event

Hail Zones (zones)

GeoJSON FeatureCollection with one Feature per 0.25" hail size band (e.g. 0.75–1.00 in, 1.00–1.25 in, … 2.00+ in). Each zone is a merged MultiPolygon covering all cells in that band, suitable for direct point-in-polygon building lookup without iterating individual cells. Bands are exclusive (no overlap): each cell appears in exactly one zone. Cells with calibrated hail below 0.25 in appear in features but are excluded from zones (below the minimum reportable hail size).

Each zone feature includes aggregated properties across all cells in the band:

  • max_hail_size_in / avg_hail_size_in, calibrated size statistics
  • max_hail_index / avg_hail_index, impact index statistics
  • max_coverage / avg_coverage, spatial density statistics
  • max_duration_min: longest event in the zone
  • total_event_count / cell_count, event and cell tallies
  • peak_start_time: timestamp of the highest-impact cell

Input

POST a JSON body with a GeoJSON Polygon geometry (or a GeoJSON Feature wrapping one) plus query parameters:

{
  "type": "Polygon",
  "coordinates": [[
    [-97.52, 35.48], [-97.52, 35.42], [-97.49, 35.42],
    [-97.49, 35.48], [-97.52, 35.48]
  ]],
  "start": "2021-05-01T00:00:00",
  "end": "2026-06-01T00:00:00"
}

Limits

  • Max polygon size: 300,000 grid cells (~1,200,000 km²; covers all US states)
  • Min date: 2021-05-01
  • Coverage: CONUS (20°–55° N, 130°–60° W)

Performance

Single-pass batch query + vectorized calibration. Typical response time:

  • County polygon (~500 cells): < 50 ms
  • State polygon, 1-hour window (~50K–300K cells): 200–600 ms
  • State polygon, multi-year window: add 50–200 ms for zone merging
POST
/lookback/hail/polygon/

Authorization

Authorization<token>

Token-based authentication with required prefix "Token"

In: header

Request Body

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/lookback/hail/polygon/" \  -H "Content-Type: application/json" \  -d '{    "type": "Polygon",    "start": "string",    "end": "string"  }'
{  "type": "FeatureCollection",  "metadata": {    "query_start": "2021-05-01T00:00:00+00:00",    "query_end": "2026-06-01T00:00:00+00:00",    "polygon_cells": 142,    "cells_with_hail": 89,    "event_count": 12,    "max_hail_size_in": 2.75,    "largest_event_time": "2023-04-28T21:00:00+00:00",    "hail_days": 8,    "features_returned": 89,    "features_truncated": false  },  "events": [    {      "start_time": "2023-04-28T21:00:00+00:00",      "max_hail_size_in": 2.75,      "max_hail_index": 3.8,      "cells_hit": 38,      "coverage_fraction": 0.268    }  ],  "features": [    {      "type": "Feature",      "geometry": {        "type": "Point",        "coordinates": [          -97.12,          35.44        ]      },      "properties": {        "max_hail_size_in": 2.75,        "raw_mrms_size_in": 2.5,        "coverage": 0.412,        "duration_min": 22,        "hail_index": 3.8,        "event_count": 3,        "peak_start_time": "2023-04-28T21:14:00+00:00"      }    }  ],  "zones": [    {      "type": "Feature",      "geometry": {        "type": "MultiPolygon",        "coordinates": [          [            [              [                -99.85,                37.74              ],              [                -99.83,                37.74              ],              [                -99.83,                37.76              ],              [                -99.85,                37.76              ],              [                -99.85,                37.74              ]            ]          ]        ]      },      "properties": {        "hail_size_min_in": 2.5,        "hail_size_max_in": null,        "label_in": "2.50+ in",        "max_hail_size_in": 2.75,        "avg_hail_size_in": 2.61,        "max_raw_mrms_size_in": 2.5,        "max_hail_index": 3.8,        "avg_hail_index": 3.4,        "max_coverage": 0.82,        "avg_coverage": 0.61,        "max_duration_min": 28,        "total_event_count": 9,        "cell_count": 3,        "peak_start_time": "2023-04-28T21:14:00+00:00"      }    }  ]}

On this page