# Cyclone Sample

This page provides a complete sample response for a tropical cyclone hazard from the Active Hazards API endpoint. The API response for tropical cyclones is designed to provide comprehensive and detailed information about ongoing and forecasted cyclonic activity.

Each cyclone object within the response includes several key properties that convey vital data about the storm. These properties cover observed and predicted locations, the cyclone's rate of movement, and its direction. Additionally, the response includes critical information on expected landfall areas, enabling users to assess potential impacts. By offering precise and up-to-date details, this API ensures that users have access to essential information for tracking and responding to tropical cyclones effectively.

Each cyclone object is updated every time the reporting agency publishes a new advisory and the maximum sustained wind speed model has completed its analysis.

## Storm Position Symbols

The following symbols are used in the `features` property to indicate storm positions and forecast classifications:

| Value  | Label                                             | Description                          |
| ------ | ------------------------------------------------- | ------------------------------------ |
| **ST** | Forecast (or current) Hurricane/Typhoon > 150 mph | Super Typhoon / Category 5 Hurricane |
| **TY** | Forecast (or current) Hurricane/Typhoon > 74 mph  | Typhoon / Category 1-4 Hurricane     |
| **TS** | Forecast (or current) Tropical Storm              | Tropical Storm                       |
| **TD** | Forecast (or current) Tropical Depression         | Tropical Depression                  |

## Cyclone-Specific Properties

### Incident Data

The `incident.properties` object of the cyclone provides a detailed and real-time summary of the storm's current status and characteristics. This snapshot includes several crucial properties that describe the physical aspects of the cyclone. Key attributes such as storm direction and speed, as well as wind speeds, are documented to give a clear picture of the storm's behavior and intensity. Additionally, the snapshot contains information about the authoritative agency that reported the storm, such as the Joint Typhoon Warning Center (JTWC) or National Hurricane Center (NHC). This ensures the data's reliability and allows users to trace the source of the information for further validation and context.

**Key incident properties for cyclones include:**

* `maxWindsKph` / `maxWindsMph` - Maximum sustained wind speeds
* `maxGustsKph` / `maxGustsMph` - Maximum wind gust speeds
* `speedKph` / `speedMph` - Forward movement speed of the storm
* `direction` - Direction of storm movement
* `pressure` - Central pressure in millibars
* `saffirSimpson` - Saffir-Simpson category (0-5)
* `symbolCode` - Storm classification code (TD, TS, TY, ST)
* `advisoryNum` - Advisory number from the reporting agency
* `landfallAdmin0` / `landfallAdmin1` - Landfall location information
* `hoursLandfall` - Hours until projected landfall
* `forecastSpeed` - Expected intensity change (strengthen/weaken)

### Features

The `features` property of the cyclone object is a GeoJSON feature collection, offering a structured and geospatial representation of the storm. Each feature within this collection includes a properties block that indicates its type. The primary types of features are:

* **segments** - Lines depicting the storm's observed and projected path
* **positions** - Points showing observed and forecast storm locations with detailed meteorological data
* **cones** - Polygons representing the maximum variation in projected storm movement over specific time intervals (e.g., 72-hour, 120-hour forecast cones), providing a range of potential trajectories
* **wind radii** - Circles or polygons illustrating the wind fields generated by the storm at both current and forecasted locations, highlighting areas affected by varying wind speeds (34kt, 50kt, 64kt thresholds)

This comprehensive feature set enables detailed analysis and visualization of the cyclone's development and potential impact.

### Exposure Areas

The `exposureAreas` property generalizes the maximum sustained wind speed model of the cyclone into three distinct categories. These categories indicate regions where severe, strong, and moderate damage can be expected, similar to exposure areas for other types of hazards. This classification helps users quickly understand the potential impact zones and prepare accordingly.

* **Level 1**: Moderate severity/impact
* **Level 2**: Strong severity/impact
* **Level 3**: Severe severity/impact

## Sample Response

```json
{
  "name": [
    {
      "locale": "en",
      "value": "Tropical Cyclone - Gezani"
    }
  ],
  "description": [
    {
      "locale": "en",
      "value": "A tropical cyclone forecast has been issued by Joint Typhoon Warning Center (JTWC) on February 16, 2026 21:00:00 UTC. Tropical Cyclone - Gezani is located in the S Indian Ocean with maximum sustained winds of 111 km/h (69 mph), and wind gusts up to 139 km/h (86 mph).\n\nAccording to this forecast (#19), the cyclone is headed east-southeast at about 19 km/h (12 mph), and is expected to remain at this strength over the next 24 hours.  It is cautioned, however, that the storm's actual position may shift significantly over the next few days.\n\nBased on the current forecast (the storm's center and path), Tropical Cyclone - Gezani is not expected to cross-over a major land-mass within the next 48-72 hours (although it may impact smaller islands along the way).\n\nFor the extended forecast, an estimated 18,500 people, 4,330 households, and $11.3 Million (USD) of infrastructure* are potentially exposed to moderate to severe damaging winds (with damage expected closer to the shores). All shorelines in the path of the storm are exposed to potential storm surge, and inland areas within the proximity of the storm are exposed to potential flooding.\n\nAdditional updates will be provided as they become available by official sources.\n\n*The cost represents the total replacement value of the infrastructure.\n\n"
    }
  ],
  "severity": "ADVISORY",
  "category": "EVENT",
  "incident": {
    "uuid": "dca1ed18-d585-42fd-ae9b-8d6e3d0e6aeb",
    "type": "CYCLONE",
    "sourceId": 45,
    "sourceRecordId": "SH212026",
    "properties": {
      "sourceId": 45,
      "hazardName": "Tropical Cyclone - Gezani",
      "__kafka_message_key__": "2e1326fe-4bb5-4efb-97af-40a99819921e",
      "year": 2026,
      "atcfId": "SH212026",
      "intersectingPopulation": null,
      "latitude": -25.3,
      "maxGustsKph": 139,
      "source": "cyclone_jtwc",
      "maxGustsMph": 86,
      "issuer": "JTWC",
      "distanceLandfallK": null,
      "maxWindsKph": 111,
      "sourceUpdatedAt": 1771275600000,
      "stormStatus": "TROPICAL CYCLONE",
      "distanceLandfallM": null,
      "landfallAdmin0": null,
      "maxWindsMph": 69,
      "hasPrevLandfall": false,
      "eventTime": 1770508800000,
      "taosArchive": "kinetic_60as_1771272235222_3879790.zip",
      "landfallAdmin1": null,
      "wmoHeader": "WTXS32",
      "earliestPopulationIntersection": 120,
      "advisoryNum": 19,
      "overviews": null,
      "direction": "east-southeast",
      "longitude": 43.6,
      "hoursLandfall": null,
      "speedKph": 19,
      "speedMph": 12,
      "forecastType": "lastest_details",
      "pressure": 984,
      "categoryLandfall": null,
      "saffirSimpson": 0,
      "sourceMessageHash": "a7332756a79f1169409e240983ff61870b09bfb3ac6ccb4c4224a155756d9131",
      "landfallTime": null,
      "rawMessageUri": "S3://messagestorage.pdc.org/PROD/Incidents/CYCLONE_TAOS/raw_source_messages/SH212026_019.txt",
      "symbolCode": "TS",
      "modelRunAt": 1771272139000,
      "forecastSpeed": "remain at this strength",
      "name": "Gezani",
      "speedatLandfallKph": null,
      "pathIntersect": null,
      "region": "S Indian Ocean",
      "masterIncidentId": "45.17712724295472.1",
      "speedatLandfallMph": null
    }
  },
  "uuid": "aaf86be8-b195-4c7d-a8d5-331760bd4f46",
  "comment": null,
  "createdAt": 1771272904,
  "relatedHazards": [],
  "longitude": 43.6,
  "latitude": -25.3,
  "version": 43,
  "alertGeometry": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "geometry": {
          "type": "Polygon",
          "coordinates": [...]
        },
        "properties": {}
      }
    ]
  },
  "features": {
    "features": [
      {
        "id": null,
        "type": "Feature",
        "properties": {
          "type": "segment",
          "maxWindsKph": 139,
          "maxWindsKt": 75,
          "maxWindsMph": 86,
          "saffirSimpson": 1,
          "segmentNumber": -1,
          "symbolCode": "TY"
        },
        "geometry": {
          "type": "LineString",
          "coordinates": [...]
        },
        "incidentType": null,
        "sourceId": null
      },
      {
        "id": null,
        "type": "Feature",
        "properties": {
          "type": "segment",
          "maxWindsKph": 111,
          "maxWindsKt": 60,
          "maxWindsMph": 69,
          "saffirSimpson": 0,
          "segmentNumber": 0,
          "symbolCode": "TS"
        },
        "geometry": {
          "type": "LineString",
          "coordinates": [...]
        },
        "incidentType": null,
        "sourceId": null
      },
      // ... additional segment features (segmentNumber 1-3) omitted for brevity
      {
        "id": null,
        "type": "Feature",
        "properties": {
          "type": "cone",
          "advisory_num": 19,
          "coneSource": "JTWC",
          "forecastPeriodHour": 120,
          "intersectsPopulation": true
        },
        "geometry": {
          "type": "Polygon",
          "coordinates": [...]
        },
        "incidentType": null,
        "sourceId": null
      },
      {
        "id": null,
        "type": "Feature",
        "properties": {
          "type": "position",
          "atcfId": "SH212026",
          "dayHr": "2026 FEB 16, 18:00Z",
          "dirDeg": 115,
          "forecastDate": 1771264800000,
          "forecastDateTime": "2026 FEB 16, 18:00Z",
          "forecastDateUserPref": "2026-02-16 18:00:00",
          "forecastTime": "MON 18Z",
          "gustsKph": 139,
          "gustsKt": 75,
          "gustsMph": 86,
          "latitude": "25.3S",
          "longitude": "43.6E",
          "maxWindsKph": 111,
          "maxWindsKt": 60,
          "maxWindsMph": 69,
          "positionNo": 0,
          "rad1NeNm": 0,
          "rad1NwNm": 0,
          "rad1SeNm": 0,
          "rad1SpdKt": 64,
          "rad1SwNm": 0,
          "rad2NeNm": 30,
          "rad2NwNm": 30,
          "rad2SeNm": 55,
          "rad2SpdKt": 50,
          "rad2SwNm": 55,
          "rad3NeNm": 60,
          "rad3NwNm": 60,
          "rad3SeNm": 120,
          "rad3SpdKt": 34,
          "rad3SwNm": 120,
          "saffirSimpson": 0,
          "speedKph": 19,
          "speedKt": 10,
          "speedMph": 12,
          "symbolCode": "TS"
        },
        "geometry": {
          "type": "Point",
          "coordinates": [...]
        },
        "incidentType": null,
        "sourceId": null
      },
      {
        "id": null,
        "type": "Feature",
        "properties": {
          "type": "position",
          "atcfId": "SH212026",
          "dayHr": "2026 FEB 17, 06:00Z",
          "dirDeg": 200,
          "forecastDate": 1771308000000,
          "forecastDateTime": "2026 FEB 17, 06:00Z",
          "forecastDateUserPref": "2026-02-17 06:00:00",
          "forecastTime": "TUE 06Z",
          "gustsKph": 139,
          "gustsKt": 75,
          "gustsMph": 86,
          "latitude": "28.0S",
          "longitude": "43.7E",
          "maxWindsKph": 111,
          "maxWindsKt": 60,
          "maxWindsMph": 69,
          "positionNo": 1,
          "rad1NeNm": 0,
          "rad1NwNm": 0,
          "rad1SeNm": 0,
          "rad1SpdKt": 64,
          "rad1SwNm": 0,
          "rad2NeNm": 40,
          "rad2NwNm": 20,
          "rad2SeNm": 60,
          "rad2SpdKt": 50,
          "rad2SwNm": 40,
          "rad3NeNm": 110,
          "rad3NwNm": 60,
          "rad3SeNm": 160,
          "rad3SpdKt": 34,
          "rad3SwNm": 120,
          "saffirSimpson": 0,
          "speedKph": 30,
          "speedKt": 16,
          "speedMph": 18,
          "symbolCode": "TS"
        },
        "geometry": {
          "type": "Point",
          "coordinates": [...]
        },
        "incidentType": null,
        "sourceId": null
      },
      // ... additional position features (positionNo 2-4) omitted for brevity
      {
        "id": null,
        "type": "Feature",
        "properties": {
          "type": "wind_radii",
          "radWindKph": 93,
          "radWindKt": 50,
          "radWindMph": 58,
          "wind_radii_position_num": 0
        },
        "geometry": {
          "type": "Polygon",
          "coordinates": [...]
        },
        "incidentType": null,
        "sourceId": null
      },
      {
        "id": null,
        "type": "Feature",
        "properties": {
          "type": "wind_radii",
          "radWindKph": 63,
          "radWindKt": 34,
          "radWindMph": 39,
          "wind_radii_position_num": 0
        },
        "geometry": {
          "type": "Polygon",
          "coordinates": [...]
        },
        "incidentType": null,
        "sourceId": null
      }
      // ... additional wind_radii features for positions 1-4 omitted for brevity
    ],
    "incidentType": "CYCLONE",
    "metadata": {
      "sourceId": 45,
      "hazardName": "Tropical Cyclone - Gezani",
      "__kafka_message_key__": "2e1326fe-4bb5-4efb-97af-40a99819921e",
      "year": 2026,
      "atcfId": "SH212026",
      "intersectingPopulation": null,
      "latitude": -25.3,
      "maxGustsKph": 139,
      "source": "cyclone_jtwc",
      "maxGustsMph": 86,
      "issuer": "JTWC",
      "distanceLandfallK": null,
      "maxWindsKph": 111,
      "sourceUpdatedAt": 1771275600000,
      "stormStatus": "TROPICAL CYCLONE",
      "distanceLandfallM": null,
      "landfallAdmin0": null,
      "maxWindsMph": 69,
      "hasPrevLandfall": false,
      "eventTime": 1771264800000,
      "landfallAdmin1": null,
      "wmoHeader": "WTXS32",
      "earliestPopulationIntersection": 120,
      "advisoryNum": 19,
      "overviews": null,
      "direction": "east-southeast",
      "longitude": 43.6,
      "hoursLandfall": null,
      "speedKph": 19,
      "speedMph": 12,
      "forecastType": "lastest_details",
      "pressure": 984,
      "categoryLandfall": null,
      "saffirSimpson": 0,
      "sourceMessageHash": "a7332756a79f1169409e240983ff61870b09bfb3ac6ccb4c4224a155756d9131",
      "landfallTime": null,
      "rawMessageUri": "S3://messagestorage.pdc.org/PROD/Incidents/CYCLONE_TAOS/raw_source_messages/SH212026_019.txt",
      "symbolCode": "TS",
      "forecastSpeed": "remain at this strength",
      "name": "Gezani",
      "speedatLandfallKph": null,
      "pathIntersect": null,
      "region": "S Indian Ocean",
      "masterIncidentId": "45.17712724295472.1",
      "speedatLandfallMph": null
    },
    "type": "FeatureCollection",
    "sourceId": 45
  },
  "exposureAreas": {
    "type": "FeatureCollection",
    "name": "GeoJSON",
    "features": [
      {
        "type": "Feature",
        "geometry": {
          "type": "MultiPolygon",
          "coordinates": [...]
        },
        "properties": {
          "exposureLevel": 1
        }
      }
    ]
  },
  "exposureAssessment": {
    "population": 18500.0,
    "capital": 11313500.0,
    "exposureLevels": [
      {
        "level": "1",
        "data": {
          "population": 18500.0,
          "capital": 11313500.0,
          "foodNeedsUnit": "CAL",
          "foodNeeds": 27300000.0,
          "waterNeedsUnit": "liter",
          "waterNeeds": 39000.0,
          "wasteNeedsUnit": "100 liter",
          "wasteNeeds": 1300.0,
          "shelterNeedsUnit": "sq meters",
          "shelterNeeds": 44850.0
        },
        "exposureDescription": "Minor Damage; power out"
      }
    ],
    "hazardUuid": "",
    "hazardType": "",
    "version": "",
    "timestamp": "1771272874429",
    "exposureDescription": "",
    "foodNeedsUnit": "CAL",
    "foodNeeds": 27300000.0,
    "waterNeedsUnit": "liter",
    "waterNeeds": 39000.0,
    "wasteNeedsUnit": "100 liter",
    "wasteNeeds": 1300.0,
    "shelterNeedsUnit": "sq meters",
    "shelterNeeds": 44850.0
  },
  "type": "CYCLONE",
  "creator": "RICHTER",
  "source": null,
  "startedAt": 1770508800,
  "updatedAt": 1771272874,
  "endedAt": 1771362000
}
```

{% hint style="info" %}
Note: In this sample, coordinate arrays in `alertGeometry`, `features` geometries, and `exposureAreas` geometries have been replaced with `[...]` for brevity. In actual API responses, these properties contain complete GeoJSON coordinate arrays. Additionally, the `features` array has been truncated to show only representative examples of segment, cone, position, and wind\_radii feature types.
{% endhint %}
