Feature Representation

In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Type Attributes), this format adds the format-specific attributes described in this topic.

All features read from SDTS transfers are assigned a feature type based on the SDTS module of the file they came from. Typically this module name is also part of the file name, so for instance, a line feature read from HP01LE01.DDF would have a feature type of LE01 indicating it came from the 1st line module.

The types of SDTS modules supported are:

  • Point-Node: A node in a topology, polygon label or freestanding point. Will have an sdts_type of sdts_point, a PNTS attribute, and possibly an ARID attribute. May have zero or more ATID{n] attributes.
  • Line: A line, possibly part of a topology. It will have an sdts_type of sdts_line, and a unique identifier in the LINE attribute. If it is part of a topology, it will have a PIDR, PIDL, SNID and ENID. It may have one or more ATID{n} attributes.
  • Polygon: A polygon. It will have an sdts_type of sdts_polygon, and a unique identifier in the POLY attribute. It may have one or more ATID{n} attributes. The polygon does not have any geometry as it emerges from the reader; however, the standard processing pipeline will assemble this from the related lines.
  • Attribute Primary: A geometries attribute record with an sdts_type of sdts_attr_primary. It will contain additional attributes specific to the module based on the data product it is a part of, for instance the ELEVATION and ENTITY_LABEL specifically mentioned below. It will also have an ATPR attribute containing its unique identifier. Most primary attribute records are consumed by the default SDTS pipeline, sdts_read.fmi, as they are appended to their referencing point, line and polygon features.
  • Attribute Secondary: A geometryless attribute record with an sdts_type of sdts_attr_secondary. It will contain additional attributes specific to the module based on the data product it is a part of, some of which will be keys into attributes on primary attribute records such as COUNTY and STATE. It will also have an ATSC attribute containing its unique identifier.
  • Cell or Raster: Each pixel of data in a raster cell is translated into a point with an sdts_type of sdts_point_dem, but no PNTS attribute. The elevation of the point is in an attribute called ELEVATION.

Attribute Name

Description

Defined On

sdts_type

The type of this geometry. One of sdts_point, sdts_line, sdts_polygon or sdts_attr.

All features

PNTS

A unique identifier for the point in the current transfer.

sdts_point

ARID

A unique identifier for the area that this point labels.

sdts_point (optional)

LINE

A unique identifier for the line in the current transfer.

sdts_line

PIDL

Identifier for the left polygon from the current line. Relates to the POLY attribute.

sdts_line (optional)

PIDR

Identifier for the right polygon from the current line. Relates to the POLY attribute.

sdts_line (optional)

SNID

Identifier for the start node of the current line. Relates to the PNTS attribute.

sdts_line (optional)

ENID

Identifier for the end node of the current line. Relates to the PNTS attribute.

sdts_line (optional)

POLY

A unique identifier for the polygon in the transfer.

sdts_polygon

ATID{n}

Identifier for an attribute record that applies to the current object. Relates to the ATPR attribute of the attribute records.

sdts_point (optional)

sdts_line (optional)

sdts_polygon
(optional)

ATPR

A unique identifier for the primary attribute record within a transfer.

sdts_attr_primary

ATSC

A unique identifier for the secondary attribute record within a transfer. Not normally useful for any purpose.

sdts_attr_secondary

ELEVATION

The elevation of the feature. Will be found on points from DEM raster transfers. It is also found in a primary attribute record related to hypsography features such as contour lines and is attached to the features by the default pipeline.

sdts_point_dem

sdts_attr_primary
(optional)

ENTITY_LEVEL

USGS DLG transfers have this primary attribute for most features. A detailed listing of meaningful values and other DLG-3 specific attributes is contained in the USGS document DLG-3 SDTS Transfer Description.

sdts_attr_primary
(optional)

The following is an example of the attributes on a polygon feature from a vegetation surface cover DLG transfer, after edge geometry has been merged and primary attribute records have been attached by the standard processing pipeline (sdts_read.fmi).

Feature Type: PC01'
ATID' is ASCF_86'
ATPR' is ASCF_86'
BEST_ESTIMATE' is  '
ENTITY_LABEL' is 0700101'
POLY' is PC01_123'
POLY_OBRP' is PC'
fme_geometry' is fme_polygon'
sdts_type' is sdts_polygon'
Geometry Type: Polygon (4)
Number of Coordinates: 38 -- Coordinate Dimension: 2 -- Coordinate System: 0'

Secondary Attributes

Some SDTS transfers include secondary attribute modules. These are essentially tables related to data fields in one or more primary attribute tables. One example of this is DLG-3 1:2000000 boundary datasets which keep the county names in secondary tables along with the state, and county numbers.

The default SDTS pipeline, sdts_read.fmi, does not include factories to append these secondary records to their target features because the names of the key fields vary depending on the data product.

By default, secondary records are passed through and are available as output features to write to an output file. For instance, the following definition is produced for county names.

SDrobert-findlerBFPC \
    sdts_type            sdts_attr_secondary \
    ATSC                 %ATSC \
    COUNTY               %COUNTY \
    STATE                %STATE \
    AREA_NAME            %AREA_NAME 

The ATSC field is a record identifier but isn't generally useful for anything, since it doesn't relate to fields in any other records. The COUNTY and STATE values are numeric identifiers and can be related to the COUNTY and STATE fields that get attached to political polygons from a primary attribute module using a factory like that shown in the following example. It could be placed in a mapping file in order to append county names to polygon features after processing by the default pipeline.

FACTORY_DEF * ReferenceFactory 	\
	FACTORY_NAME CountyNameAppender \
	INPUT REFERENCEE FEATURE_TYPE * \
			sdts_type sdts_attr_secondary \
	INPUT REFERENCER FEATURE_TYPE *	\
			sdts_type sdts_polygon	\
	REFERENCEE_FIELDS STATE COUNTY 	\
	REFERENCER_FIELDS STATE COUNTY 	\
	REFERENCE_INFO ATTRIBUTES \
	OUTPUT COMPLETE FEATURE_TYPE * sdts_type sdts_polygon \
	OUTPUT NO_REFERENCES FEATURE_TYPE * \
	OUTPUT INCOMPLETE FEATURE_TYPE * \
	OUTPUT UNREFERENCED FEATURE_TYPE *