AttributeExploder
Typical Uses
- Transposing or manipulating tabular data (such as spreadsheets)
- Melting data
- Extracting the attribute schema from features for use in dynamic translation attribute mappings
- Extracting the attribute schema from features to write as metadata/documentation
- Preparing data for charts and reports
How does it work?
The AttributeExploder receives features with attributes, and extracts both the attribute names and their values. It can do one of two things with them (the Exploding Type) - either create multiple new features (one for each attribute), or add the information to the original feature as a list attribute.
The following examples demonstrate both Exploding Types, as they apply to a single feature. Note that in both cases, extra attributes that are normally unexposed are also exploded, including reader and internal fme_ attributes.
You may opt to either keep or discard the original attributes and geometry - in these examples, they are discarded.
Exploding Type: Features
If the attributes are exploded into Features, each input feature will become many - one for every attribute in the original feature. The new features will have both the original attribute names and values added as new attributes. Below, we use the default new attribute names _attr_name and _attr_value.
One (1) feature becomes twelve (12).
In the case of a spreadsheet, where a row is considered a single feature, this is the equivalent of exploding every cell into its own feature.
Exploding Type: List
If the attributes are exploded into a List, a new list attribute is added to the original feature.
The attribute names and values are added as list elements.
One (1) feature in produces one (1) feature out, with a list attribute.
Examples
In this example, we will use an AttributeExploder to write out the attributes of a MrSID raster for documentation. One raster tile is considered a single feature.
In the AttributeExploder parameters dialog, the Exploding Type is set to Features, and the default Output Attribute Names are kept.
As the output will contain extra attribute types that we don’t want (reader and fme_ internal attributes), we configure a Tester to keep only features where _attr_name begins with the string “mrsid”.
With an Excel writer, a spreadsheet is created (one row per feature), containing both the attribute names and values for the original raster.
Usage Notes
- The AttributeExploder is commonly used in manipulating tabular data, from simple transposition to more complex tasks. See articles on the FME Community for detailed examples.
- To unmelt (reverse melt) data, see the AttributeCreator (alias UnMelter).
Configuration
Input Ports
Features with attributes.
Output Ports
Features containing the attribute value pairs. Depending on Exploding Type, this may be multiple features with pairs as attributes, or single features with a list attribute added.
Parameters
Exploding Type |
Features: One feature is output for each original attribute. Each output feature will have two new attributes: one named by Exploded Attribute (whose value will be the initial attribute's name) and one by Exploded Value (whose value will be the initial attribute's value). List: The processed feature will have a new list attribute defined by List Name which will contain one entry (with attribute name and attribute value members, named by Exploded Attribute and Exploded Value) for each attribute of the feature. Note: List attributes are not accessible from the output schema in Workbench unless they are first processed using a transformer that operates on them, such as ListExploder or ListConcatenator. Alternatively, AttributeExposer can be used. |
Keep Geometry | If Yes, each output feature will have the same geometry as the given input feature. Otherwise, output features will have no geometry. |
Keep Attributes | If Yes, the initial attributes on the processed features are preserved. Otherwise, output features will only have the attributes created by this factory. |
Exploded Attribute | Name the attribute to contain the name of the extracted attribute. |
Exploded Value | Name the attribute to contain the value of the extracted attribute. |
List Name |
If Exploding Type is List, enter a name for the list attribute. |
Editing Transformer Parameters
Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.
Defining Values
There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.
Using the Text Editor
The Text Editor provides a convenient way to construct text strings (including regular expressions) from various data sources, such as attributes, parameters, and constants, where the result is used directly inside a parameter.
Using the Arithmetic Editor
The Arithmetic Editor provides a convenient way to construct math expressions from various data sources, such as attributes, parameters, and feature functions, where the result is used directly inside a parameter.
Conditional Values
Set values depending on one or more test conditions that either pass or fail.
Parameter Condition Definition Dialog
Content
Expressions and strings can include a number of functions, characters, parameters, and more.
When setting values - whether entered directly in a parameter or constructed using one of the editors - strings and expressions containing String, Math, Date/Time or FME Feature Functions will have those functions evaluated. Therefore, the names of these functions (in the form @<function_name>) should not be used as literal string values.
These functions manipulate and format strings. | |
Special Characters |
A set of control characters is available in the Text Editor. |
Math functions are available in both editors. | |
Date/Time Functions | Date and time functions are available in the Text Editor. |
These operators are available in the Arithmetic Editor. | |
These return primarily feature-specific values. | |
FME and workspace-specific parameters may be used. | |
Creating and Modifying User Parameters | Create your own editable parameters. |
Dialog Options - Tables
Transformers with table-style parameters have additional tools for populating and manipulating values.
Row Reordering
|
Enabled once you have clicked on a row item. Choices include:
|
Cut, Copy, and Paste
|
Enabled once you have clicked on a row item. Choices include:
Cut, copy, and paste may be used within a transformer, or between transformers. |
Filter
|
Start typing a string, and the matrix will only display rows matching those characters. Searches all columns. This only affects the display of attributes within the transformer - it does not alter which attributes are output. |
Import
|
Import populates the table with a set of new attributes read from a dataset. Specific application varies between transformers. |
Reset/Refresh
|
Generally resets the table to its initial state, and may provide additional options to remove invalid entries. Behavior varies between transformers. |
Note: Not all tools are available in all transformers.
Reference
Processing Behavior |
|
Feature Holding |
No |
Dependencies | None |
Aliases | Melter |
History |
FME Community
The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.
Search for all results about the AttributeExploder on the FME Community.
Examples may contain information licensed under the Open Government Licence – Vancouver and/or the Open Government Licence – Canada.