FME Transformers: 2024.2
FME Transformers: 2024.2
AttributeExploder
Creates value pairs (attribute name and attribute value) for every attribute on a feature, and either adds them to a list attribute or creates new features (one for each pair) with new attributes containing both values.
In either case, original attributes and geometry may be kept or discarded.
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.
Excluding Attributes
AttributeExploder processes all attributes on incoming features, including fme_ and format attributes. It is possible to ignore attributes using the Ignore Attributes Containing parameter.
Enter a regular expression, and matching attributes will be ignored.
For example, if the source data is CSV, you could use the regular expression ^fme_|^multi_|^csv_ to ignore any attributes starting with fme_, multi_, or csv_.
Examples
Example: Extracting attribute names and values for a raster
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
Input
Features with attributes.
Output Ports
Output
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
General
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 FME 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. |
Ignore Attributes Containing |
Enter a regular expression. Attributes with matching names will be excluded. |
Ignore Attributes |
Select case sensitivity - Case Sensitive or Case Insensitive -for Ignore Attributes Containing regular expression matching. |
Output Attribute Names
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
Transformer parameters can be set by directly entering values, using expressions, or referencing other elements in the workspace such as attribute values or user parameters. Various editors and context menus are available to assist. To see what is available, click beside the applicable parameter.
How to Set Parameter Values
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.
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.
Content Types
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
Table Tools
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.
For more information, see Transformer Parameter Menu Options.
Reference
Processing Behavior |
|
Feature Holding |
No |
Dependencies | None |
Aliases | Melter |
History |
FME Community
The FME Community has a wealth of FME knowledge with over 20,000 active members worldwide. Get help with FME, share knowledge, and connect with users globally.
Search for all results about the AttributeExploder on the FME Community.
Examples may contain information licensed under the Open Government Licence – Vancouver, Open Government Licence - British Columbia, and/or Open Government Licence – Canada.