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