TC Advisory (ICAO)

Required roles: AIS PIB API — Roles
Base endpoint: https://ais-pib-api.ibosoft.net.tr:2087/opmet-decoder-tc-icao
Reference documents: ICAO Doc 10157 PANS-MET, Ed. 1 (27/11/25) · ICAO Doc 8400 PANS-ABC, Ed. 9, Amend. 33 (8/11/18)
Attribution: show ibonav.aero or "Decoded by Ibosoft" wherever decoded output is displayed
Data sources: none — decodes the message supplied in the request.
Last updated: 17 OCT 2026

About the reference documents: Related Documents and Resources

Decodes a tropical cyclone advisory into readable fields, following the PANS-MET template. Optionally returns the centre position and the CB cloud extent in decimal degrees (parsed), ready for a map.

The format is that of PANS-MET Table A7-3. To get advisories to decode, see TC Advisory.


Endpoints

POST /opmet-decoder-tc-icao/decode?parsed=false
Content-Type: application/json

{ "raw": "<TC advisory text>" }

Parameters

Parameter In Default Description
raw body — Advisory text, at least 10 characters. A WMO bulletin heading is accepted and removed.
parsed query false true: add the parsed object

How the template is processed

  • The advisory is line based: each element starts with its heading and a colon (DTG:, TCAC:, OBS PSN:, CB: …); the value runs to the next heading.
  • Field names and wording come from PANS-MET Table A7-3: output keys are the template element names; positions, movements, intensity changes and winds are written out. Abbreviations are expanded as defined in PANS-MET and PANS-ABC (Doc 8400).
  • M (mandatory) elements are always present (null when missing); C (conditional) elements only when present.
  • Forecast positions and winds (+6, +12, +18, +24 hours) are separate elements.
  • Values that do not follow the template are listed under Undecodable elements (neighbouring groups form one entry).

For the full list of elements, see PANS-MET Table A7-3.

Response

Example — PANS-MET Example A7-3 (shortened):

TC ADVISORY
DTG: 20040925/120000Z
TCAC: YUFO
TC: GLORIA
ADVISORY NR: 2004/13
OBS PSN: 25/1200Z N2706 W07306
CB: WI 250NM OF TC CENTRE TOP FL500
MOV: NW 20KMH
…
{
  "Identification of the type of message": "Tropical cyclone advisory",
  "Name of TCAC": "YUFO",
  "Name of tropical cyclone": "GLORIA",
  "Advisory number": "2004/13",
  "Observed position of the centre": "Day 25 12:00 UTC N27°06' W73°06'",
  "Direction and speed of movement": "North-west 20 km/h",
  "Changes in intensity": "Intensifying",
  "Forecast centre position +6 HR": "Day 25 18:00 UTC N27°48' W73°50'",
  "…": "…",
  "positions": [{"start": 0, "end": 11}, "…"],
  "corrected_raw": "TC ADVISORY\nDTG: …",
  "raw": "…",
  "parsed": {
    "tcac": "YUFO", "advisory_number": "2004/13",
    "position": {"lat": 27.1, "lon": -73.1},
    "extent": {"radius": 250, "radius_unit": "NM", "top_fl": 500, "points": []},
    "utc_day": null, "utc_time": null
  }
}
Key Description
element keys Decoded elements, in template order
Undecodable elements Values that do not follow the template (only when there are any)
corrected_raw The message after normalization; positions refer to this text
positions Character spans {start, end} in corrected_raw, one per decoded value in output order
parsed With parsed=true: time of origin (utc_day, utc_time; null if the time group does not follow the template), tcac, advisory_number, centre position (lat/lon, signed decimal degrees), and extent of the CB cloud — points of its boundary, or radius/radius_unit around the centre, with top_fl

Errors

Code Meaning
400 The message could not be parsed at all; detail explains why
422 raw is missing or shorter than 10 characters