VONA (ICAO)
Required roles:
AIS PIB API— Roles
Base endpoint:https://ais-pib-api.ibosoft.net.tr:2087/opmet-decoder-vona-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: showibonav.aeroor "Decoded by Ibosoft" wherever decoded output is displayed
Data sources: none — decodes the message supplied in the request.
Last updated: 17 OCT 2026About the reference documents: Related Documents and Resources
Decodes a volcano observatory notice for aviation (VONA) into readable fields, following the PANS-MET template strictly. Optionally returns machine-readable values, including the volcano position and the current colour code (parsed).
The format is that of PANS-MET Table A7-1 (see also Chapter 6, 6.1.4–6.1.8). A VONA is issued by a State volcano observatory; the volcanic ash advisory of a VAAC is a different message (VA Advisory (ICAO)). To get notices to decode, see VONA.
Endpoints
POST /opmet-decoder-vona-icao/decode?parsed=false
Content-Type: application/json
{ "raw": "<VONA text>" }
Parameters
| Parameter | In | Default | Description |
|---|---|---|---|
raw |
body | — | Notice text, at least 10 characters |
parsed |
query | false |
true: add the parsed object |
How the template is processed
- The notice is line based: each element starts with its heading and a colon (
DTG:,VOLCANO:,PSN:…); the value runs to the next heading and is read against that element's template as a whole. - Field names and wording come from PANS-MET Table A7-1 and the related paragraphs: output keys are the template element names; colour codes carry their meaning from 6.1.7 (e.g.
YELLOW→ "Yellow (the volcano is experiencing signs of elevated unrest …)"); times, positions, heights and durations are written out. Abbreviations are expanded as defined in PANS-MET and PANS-ABC (Doc 8400). - M (mandatory) elements are always present (
nullwhen missing or not following the template). C (conditional) elements — status indicator, IAVCEI number — only when present. - Strict template: a value that does not follow the template is not guessed; its heading and value are listed under
Undecodable elementsand the element isnull. Where an example and the template differ, the template wins (e.g.ACT STS: DECREASED ACTin Example A7-1 is not in the template, which hasDECREASED UNREST). Free-text limits apply (e.g. remarks up to 256 characters). - Numbers: a numeric placeholder means "up to that many digits"; date-time groups and coordinates are fixed.
For the full list of elements and their templates, see PANS-MET Table A7-1.
Response
Example — PANS-MET Example A7-1 (shortened):
VONA
DTG: 20240216/0130Z
VOLCANO: KARYMSKY 300130
PSN: N5403 E15927
AREA: RUSSIAN FEDERATION
SOURCE ELEV: 1536M AMSL
NOTICE NR: 2024/4
CURRENT COLOUR CODE: YELLOW
PREVIOUS COLOUR CODE: ORANGE
SVO: KVERT
ACT STS: DECREASED ACT
…
NXT NOTICE: WILL BE ISSUED BY 20240223/0130Z
{
"Identification of the type of message": "Volcano observatory notice for aviation",
"Time of origin": "2024-02-16 01:30 UTC",
"Name of volcano": "KARYMSKY",
"IAVCEI number": "300130",
"Location of volcano": "N54°03' E159°27'",
"Source elevation": "1536 m AMSL",
"Notice number": "Notice 4 of 2024",
"Current colour code": "Yellow (the volcano is experiencing signs of elevated unrest above known background levels; …)",
"Activity status": null,
"Volcanic ash cloud height": "15 km AMSL",
"Movement": "Moving towards South-west",
"Next notice": "Will be issued by 2024-02-23 01:30 UTC",
"Undecodable elements": ["ACT STS: DECREASED ACT"],
"…": "…",
"positions": [{"start": 0, "end": 4}, "…"],
"corrected_raw": "VONA\nDTG: …",
"raw": "…",
"parsed": {
"utc_day": 16, "utc_time": "0130",
"notice_number": "2024/4", "svo": "KVERT", "current_colour_code": "YELLOW",
"position": {"lat": 54.05, "lon": 159.45}, "extent": []
}
}
| Key | Description |
|---|---|
| element keys | Decoded elements, in template order |
Undecodable elements |
Headings with values that do not follow the template (only when there are any) |
corrected_raw |
The message after normalization (single spaces, upper case, no final =); positions refer to this text |
positions |
Character spans {start, end} in corrected_raw, one per decoded value in output order (volcano name and IAVCEI number separately), then one per undecodable entry |
parsed |
With parsed=true: time of origin (utc_day, utc_time), notice_number, svo, current_colour_code (GREEN, YELLOW, ORANGE, RED, UNASSIGNED, NIL, or null if not following the template), position (lat/lon when the position is a single point) and extent ([{"phase": "source", "points": […]}] when the position is a list of coordinates). UNKNOWN position gives null / []. |
Errors
| Code | Meaning |
|---|---|
400 |
The message could not be parsed at all; detail explains why |
422 |
raw is missing or shorter than 10 characters |