NMEA Automatic Identification System (AIS) Feature Representation
In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Type Attributes), this format also adds format-specific attributes (Format Attributes).
Each feature created in FME corresponds to one complete AIS message. Usually, one line in an AIS file corresponds to one AIS message, but in some cases, longer AIS messages are split over multiple messages. In this case, the multiple message pieces will be reconstructed into a single AIS message before feature construction.
There are numerous AIS messages types, each one with different data fields. Each message type corresponds to a feature type in FME. The corresponding feature type will store the data of the AIS message as attributes. In some cases, additional location-specific information will be stored as traits of the geometry for the feature type.
The table below lists the FME feature types and the AIS messages that they support.
To see the attributes of a certain FME feature type, generate a workspace with an AIS reader and view that feature type’s attributes. In many cases, the value of an attribute is a constant that corresponds to a certain string or value.
The table below lists sections of the specification. These sections provide tables that describe the values of these enumerations. These links are a good reference if the meaning or interpretation of the value of an attribute is desired.
Note: Not all of the type 6 and 8 subtypes are supported. Currently, the subtypes that are handled are subtypes specified by the International Maritime Organization (IMO). The format can be extended, however, to support additional subtypes upon request. If you would like added support for another binary subtype, please consider creating a post in Safe Software's Forums and Ideas community page, and provide a specification detailing the contents of the subtype.
Feature Type | AIS Message | Notes |
---|---|---|
ais_position_report |
Type 1: Position Report Class A, Type 2: Position Report Class A (Assigned Schedule), Type 3: Position Report Class A (Response to interrogation) |
AIS messages 1 – 3 all correspond to this type of position report. This is the most common type of AIS message seen and makes up the majority of what is found in typical datasets. See Types 1, 2, and 3 Position Reports for information on how to interpret the attribute’s values. |
ais_base_station_report |
Type 4: Base Station Report Type 11: UTC/Date Response |
Type 4 Base Station Report contains information on how to interpret the attribute’s values. This message type is also relatively common. |
ais_ship_static_and_voyage_related_data | Type 5: Static and Voyage Related Data | Type 5 Static and Voyage-Related Data contains information on how to interpret the attribute’s values. |
ais_dangerous_cargo_indication |
Type 6: Binary Addressed Message – Subtype: IMO236 Dangerous Cargo Indication Type 6: Binary Addressed Message – Subtype: IMO289 Dangerous Cargo Indication |
Type 6 Binary Addressed Messages contains information on how to interpret the attribute’s values. See the section corresponding to the specific subtype(s). |
ais_tidal_window |
Type 6: Binary Addressed Message – Subtype: IMO236 Tidal Window Type 6: Binary Addressed Message – Subtype: IMO289 Tidal Window |
|
ais_number_persons_on_board |
Type 6: Binary Addressed Message – Subtype: IMO236 Number of Persons on Board Type 6: Binary Addressed Message – Subtype: IMO289 Number of Persons on Board |
|
ais_text_description | Type 6: Binary Addressed Message – Subtype: IMO289 Text Description (addressed) | |
ais_clearance_time_to_enter_port | Type 6: Binary Addressed Message – Subtype: IMO289 Clearance Time to Enter Port | |
ais_route_information | Type 6: Binary Addressed Message – Subtype: IMO289 Route Information (addressed) | |
ais_berthing_data | Type 6: Binary Addressed Message – Subtype: IMO289 Berthing Data (addressed) | |
ais_area_notice |
Type 6: Binary Addressed Message – Subtype: IMO289 Area Notice (addressed) Type 8: Binary Broadcast message – Subtype: IMO289 Area Notice (broadcast) |
Type 6 Binary Addressed Messages contains information on how to interpret the attribute’s values. See the section corresponding to the specific subtype. The type 8 version has the same structure and interpretation as the type 6, except for the fact the message is broadcast instead of addressed to a certain ship. These messages contain an array of subareas over which the specific area notice applies. These areas are stored as an aggregate on the feature, and the aggregate can contain the following geometries: rectangles, sectors, polylines, and polygons, along with associated text. |
ais_fairway_closed | Type 8: Binary Broadcast message – Subtype: Fairway Closed |
Type 8 Binary Broadcast Message contains information on how to interpret the attribute’s values. See the section corresponding to this specific subtype. |
ais_marine_traffic_signal | Type 8: Binary Broadcast message – Subtype: IMO289 Marine Traffic Signal | |
ais_synthetic_target | Type 8: Binary Broadcast message – Subtype: VTS-Generated/Synthetic Targets |
Type 8 Binary Broadcast Message contains information on how to interpret the attribute’s values. See the section corresponding to this specific subtype. The last portion of this message contains an array of synthetic targets. The contents of which is stored as an aggregate on this feature type, with each geometry within that aggregate containing traits describing the target’s properties. |
ais_weather_observation_from_ship_non_wmo | Type 8: Binary Broadcast message – Subtype: IMO289 Weather Observation Report from Ship: Non-WMO Variant |
Type 8 Binary Broadcast Message contains information on how to interpret the attribute’s values. See the section corresponding to this specific subtype. |
ais_weather_observation_from_ship_wmo | Type 8: Binary Broadcast message – Subtype: IMO289 Weather Observation Report from Ship: Non-WMO Variant | |
ais_extended_ship_static_voyage_imo236 | Type 8: Binary Broadcast message – Subtype: IMO236 Extended Ship Static and Voyage Related Data | |
ais_extended_ship_static_voyage_imo289 | Type 8: Binary Broadcast message – Subtype: IMO289 Extended Ship Static and Voyage Related Data | |
ais_environmental_report | Type 8: Binary Broadcast message – Subtype: IMO289 Environmental |
Type 8 Binary Broadcast Message contains information on how to interpret the attribute’s values. See the section corresponding to this specific subtype. This feature type has an aggregate, which contains between 1 and 5 geometries. These geometries can either correspond to a location or be null. In either case, the traits of these geometries describe different types of environmental reports. The specifications for these reports can be found in the link above. |
ais_meteorological_hydrological_data |
Type 8: Binary Broadcast message – Subtype: IMO236 Meteorological and Hydrological Data Type 8: Binary Broadcast message – Subtype: IMO289 Meteorological and Hydrological Data |
Type 8 Binary Broadcast Message contains information on how to interpret the attribute’s values. See the section corresponding to these specific subtypes. |
ais_binary_message_unknown |
Type 6: Binary Message With Unknown Subtype Type 8: Binary Message With Unknown Subtype |
Not all type 6 and 8 binary messages are currently supported in FME. In the case where the subtype is not supported, this feature type is created, which contains information on which subtype it is along with its raw binary payload. |
ais_binary_acknowledge |
Type 7: Binary Acknowledge Type 13: Safety-Related Acknowledgement |
Type 7 Binary Acknowledge contains information on how to interpret the attribute’s values. |
ais_sar_aircraft_position_report | Type 9: Standard SAR Aircraft Position Report | Standard SAR Aircraft Position Report contains information on how to interpret the attribute’s values. |
ais_utc_date_inquiry | Type 10: UTC/Date Inquiry | UTC/Date Inquiry contains information on how to interpret the attribute’s values. |
ais_addressed_safety_related_message | Type 12: Addressed Safety Related Message | Addressed Safety Related Message contains information on how to interpret the attribute’s values. |
ais_safety_related_broadcast_message | Type 14: Safety-Related Broadcast Message | Safety-Related Broadcast Message contains information on how to interpret the attribute’s values |
ais_interrogation | Type 15: Interrogation | Interrogation contains information on how to interpret the attribute’s values. |
ais_assignment_mode_command | Type 16: Assignment Mode Command | Assignment Mode Command contains information on how to interpret the attribute’s values |
ais_dgnss_broadcast_binary_message | Type 17: DGNSS Broadcast Binary Message | DGNSS Broadcast Binary Message contains information on how to interpret the attribute’s values. |
ais_standard_class_b_cs_position_report | Type 18: Standard Class B CS Position Report | Standard Class B CS Position Report contains information on how to interpret the attribute’s values. |
ais_extended_class_b_cs_position_report | Type 19: Extended Class B CS Position Report | Extended Class B CS Position Report contains information on how to interpret the attribute’s values. |
ais_data_link_management_message | Type 20: Data Link Management Message | Data Link Management Message contains information on how to interpret the attribute’s values. |
ais_aid_to_navigation_report | Type 21: Aid-to-Navigation Report | Aid-to-Navigation Report contains information on how to interpret the attribute’s values. |
ais_channel_management | Type 22: Channel Management | Channel Management contains information on how to interpret the attribute’s values. |
ais_group_channel_command | Type 23: Group Assignment Command | Group Assignment Command contains information on how to interpret the attribute’s values. |
ais_static_data_report | Type 24: Static Data Report | Static Data Report contains information on how to interpret the attribute’s values. |
ais_single_slot_binary_message | Type 25: Single Slot Binary Message | Single Slot Binary Message contains information on how to interpret the attribute’s values. This message type is very rare and unlikely to be seen. |
ais_multiple_slot_binary_message | Type 26: Multiple Slot Binary Message | Multiple Slot Binary Message contains information on how to interpret the attribute’s values. This message type is very rare and unlikely to be seen. |
ais_long_range_Broadcast_message | Type 27: Long Range AIS Broadcast message | Long Range AIS Broadcast message contains information on how to interpret the attribute’s values. This message type is very rare and unlikely to be seen. |
Attributes prefixed by ais_data_
correspond to information determined from the payload of the message, while attributes prefixed with ais_header
correspond to information that was determined from the raw AIS message in the text file. For an example of ais_header
, ais_header_prefix
is any text found before the start of a raw AIS message. For an example of ais_data
, ais_data_rate_of_turn
is an attribute specific to the ais_position_report
feature type and is found by decoding and interpreting the payload portion of the AIS message.
The table below lists the attributes prefixed with ais_header.
Attribute Name | Contents |
---|---|
ais_header_prefix |
Any text found before the start of a raw AIS message. Range: Alphanumeric string Default: No default |
ais_header_message_type |
The NMEA message type. Range: “!AIVDM” or “!AIVDO” Default: No default |
ais_header_msg_id |
Sequential message identifier for multi-sentence messages. Range: Alphanumeric string |
ais_header_comment |
Free form text information. Range: Alphanumeric string Default: No default |
ais_header_counter |
Count for each occurrence of the parameter being attached to a line by a talker. Range: Any positive integer Default: No default |
ais_header_destination_id |
Identification of the intended destination device or process. Range: Alphanumeric string Default: No default |
ais_header_group_code |
String used to link sentences into groups. Range: Alphanumeric string Default: No default |
ais_header_source_id |
Identification of the source device or process. Range: Alphanumeric string Default: No default |
ais_header_time_stamp |
Time in seconds from midnight January 1, 1970. Range: Any positive integer Default: No default |
ais_header_channel |
AIS Channel. Range: “A” or “B” Default: No default |