VA Advisory (ICAO)

Required roles: AIS PIB API — Roles
Base endpoint: https://ais-pib-api.ibosoft.net.tr:2087/opmet-decoder-va-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 volcanic ash advisory into readable fields, following the PANS-MET template. Optionally returns the volcano position and the ash-cloud areas in decimal degrees (parsed), ready for a map.

The format is that of PANS-MET Table A7-2. To get advisories to decode, see VA Advisory. A VONA is a different message: see VONA (ICAO).


Endpoints

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

{ "raw": "<VA 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:, VAAC:, OBS VA CLD: …); the value runs to the next heading.
  • Field names and wording come from PANS-MET Table A7-2: output keys are the template element names; times, coordinates (N5403 E15927 → N54°03' E159°27'), levels and movements 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 (e.g. status TEST/EXER) only when present.
  • Ash clouds: the observed/estimated cloud and the +6, +12 and +18 hour forecasts are separate elements; NO VA EXP reads "No volcanic ash expected".
  • 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-2.

Response

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

VA ADVISORY
DTG: 20240923/0130Z
VAAC: TOKYO
VOLCANO: KARYMSKY 300130
PSN: N5403 E15927
…
FCST VA CLD +18 HR: 23/1900Z NO VA EXP
NXT ADVISORY: 20240923/0730Z
{
  "Identification of the type of message": "Volcanic ash advisory",
  "Time of origin": "2024-09-23 01:30 UTC",
  "Name of VAAC": "TOKYO",
  "Name of volcano": "KARYMSKY 300130",
  "Location of volcano": "N54°03' E159°27'",
  "State or region": "RUSSIAN FEDERATION",
  "Advisory number": "2024/4",
  "Forecast ash cloud +18 HR": "Day 23 19:00 UTC No volcanic ash expected",
  "Next advisory": "2024-09-23 07:30 UTC",
  "…": "…",
  "positions": [{"start": 0, "end": 11}, "…"],
  "corrected_raw": "VA ADVISORY\nDTG: 20240923/0130Z\n…",
  "raw": "…",
  "parsed": {
    "utc_day": 23, "utc_time": "0130",
    "vaac": "TOKYO", "advisory_number": "2024/4",
    "position": {"lat": 54.05, "lon": 159.45},
    "extent": [
      {"phase": "Observed", "points": [{"lat": 54.0, "lon": 159.5}, "…"]},
      {"phase": "Forecast +6h", "points": ["…"]},
      {"phase": "Forecast +12h", "points": ["…"]}
    ]
  }
}
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), vaac, advisory_number, volcano position (lat/lon, signed decimal degrees) and extent — the ash-cloud areas per phase (Observed, Forecast +6h, +12h, +18h) as point lists

Errors

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