A Group-Based Transformer is one that processes a number of features simultaneously in conjunction with other features in the group.
Some examples of Group-Based transformation are:
For a Group-Based Transformer it is important to define the members of that group. The default behavior is to use the entire set of incoming features as a single group.
However, Group-Based Transformers have a special Group By parameter. This parameter allows you to select an attribute on which groups are to be formed. For example, an Intersector with the Group By parameter set to "road_type" will only intersect features whose value for the attribute "road_type" is a match.
Each feature takes up a certain amount of system resources while it is being processed. When features are processed simultaneously in a large group, then the amount of system resources used increases to match.
For that reason, Group-Based Transformers generally consume larger amounts of resources than Feature-Based Transformers. This effect can be reduced through use of parameters such as “Input is Ordered by Group” (found on most group-based transformers) and “X First” options such as “Candidates First”, “Clippers First”, etc.
Many group-based transformers include options for parallel processing, which can help optimize performance by making use of multiple cores on a computer. See About Parallel Processing for more information.
When features are processed as a group, the output may be the original features, or it may be an amalgamation of the features in the group.
When the output is a combination of several different features, most transformers will remove source attributes, as there is no way of knowing which of the source attribute values should be applied when there are a number of features. The two exceptions are:
By default, FME processes one feature at a time; reading the feature, passing it from transformer to transformer, and then - finally - to a writer.
However, some transformers process features as a group and hold features until they are ready to begin processing. These “Feature Holding” (or “Blocker”) transformers cause the flow of features to be temporarily halted until they have completed their processing. Most group based transformers fall into this category if they must they gather up the data in each group before doing their processing.
This change in the flow of features can be used to control the order in which data is processed and in fact the FeatureHolder transformer was specifically designed to hold features without actually doing any transformation.
Some other examples of Feature Holding transformers include: