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.