Calculate one or more forecast hours and return areas that meet a fixed-value or percentile threshold as GeoJSON. Omit forecast_hours to calculate every available hour. See About Custom Calculations for calculation syntax and examples.
| Name | Type | Description |
|---|---|---|
| model Required | string | Weather model to use. Supported values are wm-6 and wm-6-3km . |
| initialization_time Required | string | Forecast initialization time in ISO 8601 format. |
| forecast_hours Optional | integer or integer[] | One nonnegative forecast hour or a nonempty list of nonnegative forecast hours. Omit to evaluate every available forecast hour. |
| calculation Required | string | Custom calculation expression whose result will be thresholded. See About Custom Calculations for syntax and examples. |
| bounds Required | object | Bounding box used to calculate the threshold and clip the returned polygons. |
| min_lat , max_lat | number | Southern and northern bounds from −90 to 90. min_lat must be less than max_lat . |
| min_lon , max_lon | number | Western and eastern bounds from −180 to 180. min_lon must be less than max_lon . The bounding box cannot cross the dateline. |
| threshold Required | object | An absolute or percentile threshold. |
| kind | string | absolute or percentile . |
| value | number | Cutoff value. Required when kind is absolute . |
| comparison | string | at_or_above or at_or_below . Required when kind is absolute . |
| percentile | number | Percentage greater than 0 and at most 100. Required when kind is percentile . |
| direction | string | lowest or highest . Required when kind is percentile . |
| Selection | Example | Behavior |
|---|---|---|
| One hour | "forecast_hours": 6 | Evaluate the calculation at forecast hour 6. |
| Specific hours | "forecast_hours": [0, 6, 12] | Evaluate the calculation at the listed forecast hours. |
| All hours | Omit forecast_hours | Evaluate the calculation at every available forecast hour. |
Each selected forecast hour is calculated separately. Hours that do not have all required input data are skipped, and results for the remaining hours are returned. If no selected hour can be calculated, the request returns HTTP 400.
| Kind | Example | Behavior |
|---|---|---|
| absolute | {"kind": "absolute", "value": 0, "comparison": "at_or_below"} | Select finite values at or below 0. Use at_or_above to select values at or above the cutoff. |
| percentile | {"kind": "percentile", "percentile": 10, "direction": "lowest"} | Calculate the 10th percentile from finite values inside bounds , then select values at or below that cutoff.
To select the highest 10% of values, use direction: "highest" and percentile: 10 . This selects values at or above the 90th percentile. Percentile cutoffs use linear interpolation. Tied values can make the selected area larger than the requested percentage. |
Both absolute and percentile thresholds include values equal to the cutoff.
A successful request returns a GeoJSON FeatureCollection . Each calculated layer with matching cells produces one MultiPolygon feature. Layers without matching cells are omitted.
forecast_hour identifies the forecast hour requested for the Custom Calculation. time and level describe the resulting data after any offsets or aggregations are applied.
| Field | Type | Description |
|---|---|---|
| type | string | Always FeatureCollection . |
| features | Feature[] | One GeoJSON feature for each calculated layer that contains matching cells. |
| type | string | Always Feature . |
| geometry | object | A WGS84 GeoJSON MultiPolygon using [longitude, latitude] coordinates. |
| properties | object | Calculation and threshold metadata for the feature. |
| forecast_hour | integer | Forecast hour requested for the calculation. |
| time | object | The time represented by the result. {"kind":"valid_at","valid_at":"..."} represents one time. reduced includes valid_at , start , and end . mixed contains only kind . |
| level | object | The atmospheric level represented by the result. pressure includes hpa . surface , reduced , mixed , and unspecified contain only kind . |
| member | object | The ensemble members represented by the result. exact includes the selected member number. multiple , reduced , and mixed contain only kind . Omitted when the calculation does not use ensemble members. |
| threshold | object | Threshold supplied in the request. |
| resolved_threshold | number | Numeric cutoff used for this layer. |
| comparison | string | >= or <= . |
| finite_cell_count | integer | Number of finite cells considered inside bounds . |
| selected_cell_count | integer | Number of cells that met the threshold. |
| anchor_errors | object[] | A list of skipped forecast hours. Each entry contains forecast_hour , code , and message . |