Feature Representation

Normally, all features read from S-57 are 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 fme/s57 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 Attributes) the following common attributes are also added. 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”.