OpenStreetMap (OSM) XML Reader Parameters
The OpenStreetMap (OSM) is a collaborative mapping project for creating a free and editable map of the whole world. Further information on OSM can be found at http://www.openstreetmap.org.
OpenStreetMap data can be downloaded in a topologically structured XML format. The data primitives in an OSM data file are nodes, ways and relations.
- A node is a lat/lon pair.
- A way is a list of at least two node references describing a linear features. Ways can be closed, in which case the first and the last node are identical. Areas are not explicitly represented in OSM but are identified via community approved tags.
- Relations are a group of zero or more primitives with an associated role.
All data in OSM are in the WGS-84 datum.
OSM has no explicit schema (feature type) definitions. Each node, way, and relation can have an arbitrary number of attributes, called tags in OSM. A tag is composed of a key and a value. The OpenStreetMap wiki does define a set of recommend tags that can be used to classify the nodes and ways into higher level groupings, i.e., feature types. The community-defined feature types can be found at http://wiki.openstreetmap.org/index.php/Map_Feature.
The FME OSM reader settings can help influence the classification of the OSM data being read.
Feature Types
These parameters are used only when generating an initial workspace, so they are not editable within Workbench after the workspace has been generated.
You can choose either OSM Map Features, or Use Basic Element Feature Types Only. This selection determines which of the parameters below are enabled or disabled.
This parameter allows you to add a custom map features configuration file to define features or modify/remove existing features.
Any changes to the map features made here will be reflected in the map features tree view below. Please refer to the OpenStreetMap (OSM) XML User Configuration File Guidelines section for information on how to write your own config file.
Click the browse button to open a tree view that displays all the map features listed in the wiki at http://wiki.openstreetmap.org/wiki/Map_Features. Additionally, any added/removed features specified in the user config file will take effect here.
Expanding the root osm element in the list displays the items defined as broad features (keys) by the wiki. Expanding any broad feature shows its specific features (values). In this example, building, geological, and natural are the broad features. Specific features are prefixed by the broad feature's name:
Note that if a specific feature contains attributes or geometry types that its broad feature does not, the broad feature will include these items even if it is selected and the specific feature is not. For example, if highway_primary includes an attribute width but highway does not include the attribute, highway must represent highway_primary and include width in its schema feature.
The list also includes unfiltered and unknown feature types. When the OSM reader reads the dataset, any elements that have map features defined in the wiki or user configuration file are emitted as unfiltered features if they were not selected in this list. Any elements that do not contain any defined map features will be emitted as unknown. In the list, unknown and unfiltered can also be expanded into respective nodes, ways, and relations. This will further filter unknown and unfiltered elements into their primitive categories.
Some OSM elements can contain multiple map feature tags. If this option is selected, a feature will be constructed for each map feature tag. For example, an OSM element has 1 aerialway tag, 1 barrier tag, and 1 craft tag. Three nearly identical features will be created for this element, the difference being that the feature type names will be aerialway, barrier, and craft, respectively.
If this option is not selected, the first map feature tag will be constructed as a feature while the other map features are set as a list attribute called alternative_map_features.
The reader provides an option to perform a schema scan on top of the selected features in the tree view. In this case, the reader will scan the entire data file and any features found that are also selected in the tree view will be constructed.
A schema scan on a large file can be a slow process: in these cases, it may be more desirable to simply select feature types manually.
Geometry and Attribute Options
Specifies whether the OSM reader should create area geometries for OSM ways, whose first and last point equal, even if their “area” tag is not appropriately set. The default is Yes.
Controls whether way feature types should have the list of nodes added to the features as list attribute.
Controls whether multipolygon relation feature types (that is, type tag has a multipolygon value) should have its geometry built if checked, or kept as a list attribute containing all the members if left unchecked.
Controls whether way feature types should allow consecutive duplicate coordinates to be added to the line.
For example, if two unique nodes referenced by a line have the same location, the usual behavior is to remove duplicate points from the line. Since removing a duplicate point in this case would mean that the number of nodes and vertices would no longer match, checking this parameter allows the duplicate point to remain.
This parameter relies on a text file that lists the way feature types should be converted into area geometries when their first and last coordinates equal.
The format of the text file is simple: each feature type that should be considered a possible area is listed on a separate line. Two example files can be found under <FME InstallDir>\xml\osm\AreaFeatureLists\osm_specific_areas.txt and <FME InstallDir>\xml\osm\AreaFeatureLists\osm_broad_areas.txt.
Note: This parameter is used only when generating an initial workspace, so it is not editable within Workbench after the workspace has been generated.
Schema Attributes
Use this parameter to expose Format Attributes in Workbench when you create a workspace:
- In a dynamic scenario, it means these attributes can be passed to the output dataset at runtime.
- In a non-dynamic scenario where you have multiple feature types, it is convenient to expose additional attributes using this one parameter. For example, if you have ten feature types and want to expose the same attribute in each one, it is easier to define it once than it is to set each feature type individually in the workspace.
Using the minimum and maximum x and y parameters, define a bounding box that will be used to filter the input features. Only features that intersect with the bounding box are returned.
If all four coordinates of the search envelope are specified as 0, the search envelope will be disabled.
When selected, this parameter removes any portions of imported features being read that are outside the Search Envelope.
The example below illustrates the results of the Search Envelope when Clip to Search Envelope is not selected (set to No) and when it is selected (set to Yes).
- No: Any features that cross the search envelope boundary will be read, including the portion that lies outside of the boundary.
- Yes: Any features that cross the search envelope boundary will be clipped at the boundary, and only the portion that lies inside the boundary will be read. The underlying function for the Clip to Search Envelope function is an intersection; however, when Clip to Search Envelope is selected, a clipping operation is also performed in addition to the intersection.