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.
In the S-57 format, these relationships are marked as being master, slave, or peer-to-peer. In practice, though, the only values that exist are master-to-slave pointers, so the explicit relationship is not preserved.
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 slave features with their master, as shown in this example mapping file fragment.
#================================================================== # Collect geometries for C_AGGR objects. FACTORY_DEF * TeeFactory \ FACTORY_NAME AggrGeomDuplicate \ INPUT FEATURE_TYPE * s57_type s57_point \ INPUT FEATURE_TYPE * s57_type s57_line \ INPUT FEATURE_TYPE * s57_type s57_polygon \ OUTPUT FEATURE_TYPE * \ OUTPUT FEATURE_TYPE GeomSource \ @KeepAttributes(LNAM,DSNM) FACTORY_DEF * ReferenceFactory \ FACTORY_NAME AggrCollector \ INPUT REFERENCEE FEATURE_TYPE GeomSource \ INPUT REFERENCER FEATURE_TYPE C_AGGR \ REFERENCEE_FIELDS LNAM \ REFERENCER_FIELDS LNAM_REFS{} \ REFERENCE_INFO GEOMETRY \ GROUP_BY DSNM \ AGGREGATE_ONLY \ OUTPUT COMPLETE FEATURE_TYPE * \ OUTPUT INCOMPLETE FEATURE_TYPE *
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.