S-57 (ENC) Hydrographic Data Feature Representation

Features read from S-57 are usually assigned a feature type based on the name of the object class (OBJL) to which they belong. For instance, with an OBJL value of 2, the feature is an airport/airfield and has a short name of AIRARE which is used as the FME feature type. A typical S-57 transfer may have in excess of 100 feature types.

Each feature type has a predefined set of attributes as defined by the S-57 standard. For instance, the airport (AIRARE) object class can have the AIRARE, CATAIR, CONDTN, CONVIS, NOBJNM, OBJNAM, STATUS, INFORM, NINFOM, NTXTDS, PICREP, SCAMAX, SCAMIN, TXTDSC, RECDAT, RECIND, SORDAT, and SORIND attributes.

These short names can be related to longer, more meaningful names using an S-57 object/attribute catalog, such as the S-57 standard document itself or the files in the s57 subfolder of the FME installation folder. Such a catalog can also be used to establish all available object classes and their attributes.

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).

These attributes include generic attributes that appear on all features, regardless of whether object class is turned on.

Attribute Name

Description

Defined On

s57_type

Geometry type of this feature. One of the S57_point, s57_point3d, s57_line, s57_polygon or s57_no_geom files.

Note that this relates closely to the S-57 PRIM field.

All features

s57_update_file{}

The list of filenames that have been used to update the current feature.

These list entries are paired with the s57_update_type field so that together they specify a list update operations from a list of files.

For example:

s57_update_file{0} = mys57file.001 s57_update_type{0} = INSERT

Updated features

s57_update_type{}

The list of update types that have been performed on the feature.

Possible values are INSERT, MODIFY, or DELETE.

These list entries are paired with the s57_update_type field so that together they specify a list update operations from a list of files.

For example:

s57_update_file{0} = mys57file.001 s57_update_type{0} = MODIFY s57_update_file{1} = mys57file.002 s57_update_type{1} = MODIFY

Updated features

COLOUR

FME will interpret the color value and set the fme_color attribute. COLOUR is a list type attribute (i.e. the value may be “2,6,2”). FME will select the first color value in the list as the default color for the feature.

Some features

GRUP

Group number

All features

OBJL

Object label code

This number indicates the object class of the features.

All features

RVER

Record Version

All features

AGEN

Numeric agency code, such as 50 for the Canadian Hydrographic Service.

A potentially outdated list is available in $FMEHOME/s57/agencode.txt.

All features

FIDN

Feature identification number

All features

FIDS

Feature identification subdivision

All features

LNAM

Long name. An encoding of AGEN, FIDN, and FIDS used to uniquely identify these features within an S-57 file.

All features

LNAM_REFS{}

List of LNAM values of other features related to this feature.

Some features

DSNM

Dataset name. The file name where the feature came from.

Used with LNAM to form a unique dataset wide identifier for a feature.

All features

INFORM

Informational text

Some features

NINFOM

Informational text in national language

Some features

OBJNAM

Object name

Some features

NOBJNM

Object name in national language

Some features

SCAMAX

Maximum scale for display

Some features

SCAMIN

Minimum scale for display

Some features

SORDAT

Source date

Some features

The S-57 reader also depends on CSV text files with definitions of S-57 object classes, and their attributes. These are located in the files s57attributes.csv, s57objectclasses.csv, and s57expectedinput.csv. These CSV files are installed in $FME_HOME/s57. If, for some reason, they aren’t found, the reader will default to reading all objects using the FORCE_GENERIC ON schema.

The S-57 ENC format supports “list” attributes. FME represents list attributes as a comma-separated list for the attribute value. For example, COLOUR is a list type attribute and may have a value “2,6,2”.

Feature Relationships (LNAM)

The S-57 format has a concept of features being related to one another by way of the LNAM subfield of the FFPT (Feature to Feature Object Pointer) field. These relationships are encoded in the LNAM_REFS{} list attribute of FME features when such relationships exist.

Each feature is also tagged with an LNAM value, which is the unique identifier for the feature within a single file.

FME can be used to associate the geometry of individual features (parent/child).

Note: In Workbench, use the FeatureMerger transformer. This transformer takes input into two ports – Requestor and Supplier – and merges information from each Supplier onto the Requestor. For more information, open the FeatureMerger in Workbench and click the Help button.