Reference · Last updated 2026-08-07
The tables Stingray decodes against
This page lists the lookup tables behind the app. The tables show which AIS messages and NMEA sentences Stingray reads, and what each code means on screen. For how Stingray calculates the values, and for the guards around them, see the methodology.
AIS message types
| Type | Message | Handling |
|---|---|---|
| 1–3 | Class A position report | Decoded into vessel tracks |
| 4, 11 | Base station report / UTC response | Decoded: base stations shown as fixed shore marks. A vessel's type-11 fix joins its track |
| 5 | Class A static & voyage data | Decoded: name, callsign, IMO, ship type, dimensions, draught, destination |
| 6, 8 | Addressed / broadcast binary message | Container header decoded (DAC/FI). Payload kept as raw bits |
| 7, 13 | Binary / safety acknowledgement | Decoded (acknowledged MMSIs). Station traffic, not plotted |
| 9 | SAR aircraft position report | Decoded into tracks (altitude kept; SOG in whole knots) |
| 10, 15, 16 | UTC inquiry / interrogation / assignment | Decoded. Station traffic, not plotted |
| 12, 14 | Safety-related message (addressed / broadcast) | Decoded: texts listed in the load report (shown at load time, not saved with the project) |
| 17 | DGNSS broadcast | Header decoded (reference position). Corrections kept as raw bits |
| 18 | Class B position report | Decoded into vessel tracks |
| 19 | Class B extended position report | Decoded: track + name, ship type, dimensions |
| 20, 22, 23 | Link management / channel & group assignment | Decoded. Station traffic, not plotted |
| 21 | Aid-to-navigation report | Decoded: AtoN name + position shown as fixed diamond marks |
| 24 | Class B static data (A/B parts) | Decoded: name, callsign, ship type, dimensions |
| 25, 26 | Single / multi-slot binary message | Container header decoded (DAC/FI when structured). Payload kept as raw bits |
| 27 | Long-range broadcast | Counted in the load report, not plotted (0.1′ ≈ 185 m position quantization) |
Ship type codes (ITU-R M.1371 Table 53)
Stingray shows the precise name in the vessel detail panel and in the info dialogs. The category is the coarser group that sets the map colour, the map shape, and the type filter. Codes that this table does not list are reserved or unassigned. Stingray shows those codes as their raw number.
| Code | Meaning | Map category |
|---|---|---|
| 20 | Wing-in-ground | Special |
| 21 | Wing-in-ground (hazmat A) | Special |
| 22 | Wing-in-ground (hazmat B) | Special |
| 23 | Wing-in-ground (hazmat C) | Special |
| 24 | Wing-in-ground (hazmat D) | Special |
| 25 | Wing-in-ground | Special |
| 26 | Wing-in-ground | Special |
| 27 | Wing-in-ground | Special |
| 28 | Wing-in-ground | Special |
| 29 | Wing-in-ground | Special |
| 30 | Fishing | Fishing |
| 31 | Towing | Tug |
| 32 | Towing (large) | Tug |
| 33 | Dredging / underwater ops | Fishing |
| 34 | Diving ops | Fishing |
| 35 | Military ops | Special |
| 36 | Sailing | Fishing |
| 37 | Pleasure craft | Fishing |
| 40 | High-speed craft | High-Speed |
| 41 | High-speed craft (hazmat A) | High-Speed |
| 42 | High-speed craft (hazmat B) | High-Speed |
| 43 | High-speed craft (hazmat C) | High-Speed |
| 44 | High-speed craft (hazmat D) | High-Speed |
| 45 | High-speed craft | High-Speed |
| 46 | High-speed craft | High-Speed |
| 47 | High-speed craft | High-Speed |
| 48 | High-speed craft | High-Speed |
| 49 | High-speed craft | High-Speed |
| 50 | Pilot vessel | Pilot |
| 51 | Search and rescue | Special |
| 52 | Tug | Tug |
| 53 | Port tender | Special |
| 54 | Anti-pollution | Special |
| 55 | Law enforcement | Special |
| 58 | Medical transport | Special |
| 59 | Noncombatant | Special |
| 60 | Passenger | Passenger |
| 61 | Passenger (hazmat A) | Passenger |
| 62 | Passenger (hazmat B) | Passenger |
| 63 | Passenger (hazmat C) | Passenger |
| 64 | Passenger (hazmat D) | Passenger |
| 65 | Passenger | Passenger |
| 66 | Passenger | Passenger |
| 67 | Passenger | Passenger |
| 68 | Passenger | Passenger |
| 69 | Passenger | Passenger |
| 70 | Cargo | Cargo |
| 71 | Cargo (hazmat A) | Cargo |
| 72 | Cargo (hazmat B) | Cargo |
| 73 | Cargo (hazmat C) | Cargo |
| 74 | Cargo (hazmat D) | Cargo |
| 75 | Cargo | Cargo |
| 76 | Cargo | Cargo |
| 77 | Cargo | Cargo |
| 78 | Cargo | Cargo |
| 79 | Cargo | Cargo |
| 80 | Tanker | Tanker |
| 81 | Tanker (hazmat A) | Tanker |
| 82 | Tanker (hazmat B) | Tanker |
| 83 | Tanker (hazmat C) | Tanker |
| 84 | Tanker (hazmat D) | Tanker |
| 85 | Tanker | Tanker |
| 86 | Tanker | Tanker |
| 87 | Tanker | Tanker |
| 88 | Tanker | Tanker |
| 89 | Tanker | Tanker |
| 90 | Other | Unknown |
| 91 | Other (hazmat A) | Unknown |
| 92 | Other (hazmat B) | Unknown |
| 93 | Other (hazmat C) | Unknown |
| 94 | Other (hazmat D) | Unknown |
| 95 | Other | Unknown |
| 96 | Other | Unknown |
| 97 | Other | Unknown |
| 98 | Other | Unknown |
| 99 | Other | Unknown |
Own-ship sentences (decoded tier)
The decoded tier holds standard NMEA 0183 sentences with a published field layout. Stingray extracts these sentences into labelled values:
| Formatter | Carries |
|---|---|
| DBT | Depth below transducer |
| DPT | Water depth (with transducer offset) |
| DTM | Geodetic datum |
| GGA | GNSS fix |
| GLL | Geographic position |
| GNS | GNSS fix (multi-system) |
| HDG | Magnetic heading |
| HDT | True heading |
| MTW | Water temperature |
| MWD | Wind direction and speed |
| MWV | Wind speed and angle |
| OSD | Own-ship data: course/speed |
| RMC | Recommended minimum: position, SOG, COG |
| ROT | Rate of turn |
| RPM | Engine / shaft revolutions |
| RSA | Rudder sensor angle |
| VBW | Ground / water speed |
| VHW | Water speed and heading |
| VTG | Course and speed over ground |
| ZDA | UTC time and date |
Own-ship sentences (coded tier)
The coded tier holds sentences that Stingray recognizes. Their field meanings are installation-specific. Stingray captures the raw fields and shows them. Only analyst-authored decode tables give these fields a meaning (see the methodology, Section 6).
| Formatter | Carries |
|---|---|
| ALA | Detail alarm condition |
| ALC | Cyclic alert list |
| ALR | Alarm state |
| ETL | Engine telegraph status |
| HBT | Heartbeat supervision |
| HTD | Heading/track control data |
| PRC | Propulsion remote control |
| RTE | — |
| TXT | Text transmission |
| WPL | — |
| XDR | Transducer measurements (type codes are installation-specific) |
All other sentences are the opaque tier: proprietary $P…sentences and non-standard tags. Stingray records their presence, their counts and their raw fields. Stingray never interprets the content, because no published field grid exists to interpret it against. If your installation's Record of Configuration documents such a sentence, a decode rule can name its fields. The meaning then comes from that document, and never from an assumption made here.
Recording packaging
| Packaging | Shape |
|---|---|
| Bare NMEA | Plain !AIVDM/!AIVDO lines. No timestamps (synthetic order-preserving times) |
| ETX-wrapped | Timestamped lines with a trailing ~XX source-channel suffix |
| Wärtsilä VDR-4370 | HEXSECONDS:HEXSUBSEC prefix + trailing ~XX channel |
| VDR tab / comma | date, 4-hex channel column, sentence (the vendor replay-export form) |
| Simple tab | timestamp<TAB>sentence |
| NMEA 4.10 tag block | \s:…,c:…*hh\ prefix. A checksummed key:value block. A verified c: field is the per-sentence receive clock |
| CSV | Stingray's own decoded-data CSV (re-importable) |
| Salvage | Any other packaging, text or binary: every checksum-valid sentence is recovered, timestamps ZDA-derived (marked coarse) |
Sources
The tables above come from Stingray's decoder. Stingray builds the decoder and the analysis methods on these references:
- ITU-R M.1371 (Recommendation ITU-R M.1371-6, Technical characteristics for an automatic identification system using time-division multiple access in the VHF maritime mobile band). This is the AIS standard. It gives the message structures, the ship-type and navigation-status code tables, and the “not available” sentinels. itu.int/rec/R-REC-M.1371
- gpsd, AIVDM/AIVDO protocol decoding. This is the field-level community reference. The AIS bit layouts in Stingray come from it, and the tests for those layouts use it. It also covers the rate-of-turn encoding quirk. gpsd.gitlab.io/gpsd/AIVDM.html
- NMEA 0183 / IEC 61162-1. These standards define the sentence formatters of the own-ship tiers. The standards are proprietary. Stingray therefore implements the field layouts from the published community references: the gpsd NMEA reference and the OpenCPN documentation.
- Yan, X., Sang, L., Wall, A., Wang, J., Mao, Z., CPA calculation method based on AIS position prediction. This is the reference for hull-to-hull separation. It shows that a received AIS position is the antenna position. It also shows that the broadcast A/B/C/D offsets locate that antenna within a rectangular hull. It gives the corrected-range expression, which Stingray solves exactly. The projected closest approach uses a different method by design. Stingray minimises over the whole projection. It does not evaluate at the closest instant of the antennas (Section 5 of the methodology).
If a code on this page disagrees with your installation's own documentation, that disagreement is evidence. Stingray shows the transmitted values. Stingray lets the decode tables carry your installation's meaning.