The clipper takes a number of clip boundaries (clippers) and a number of features to be clipped (clippees). As of FME 2013 the output is split into two groups - prior to FME 2013 the output was split into four groups:
Where a clippee feature crosses the boundaries of a clipper feature it is split up into separate parts.
In normal use, the Clipper takes in Clipper and Clippee features one at a time and holds them in memory until the entire group is complete. At that point processing takes place. It has to hold features in memory because processing can't begin until all Clipper features have been read, and there is no way to know when that occurs.
A) all Clipper features, then
When used this way, the Clipper becomes a successful alternative to the PointOnAreaOverlayer.
Clippers First Example
The attached workspace (ClippersFirst.fmwt) shows an example use of the Clipper transformer.
Log Files - Memory Usage
The log file reports the amount of memory used during translation:
2007-01-31 10:46:49| 55.5| 0.0|INFORM|Translation was SUCCESSFUL with 1 warning(s) (0 feature(s)/0 coordinate(s) output) 2007-01-31 10:46:49| 55.5| 0.0|INFORM|FME Session Duration: 57.3 seconds. (CPU: 53.7s user, 0.8s system) (Peak process memory usage: 109760 kB, current process memory usage: 26888 kB)
2007-01-31 10:49:46| 43.3| 0.0|INFORM|Translation was SUCCESSFUL with 1 warning(s) (0 feature(s)/0 coordinate(s) output) 2007-01-31 10:49:46| 43.3| 0.0|INFORM|FME Session Duration: 43.7 seconds. (CPU: 42.2s user, 0.6s system) (Peak process memory usage: 17772 kB, current process memory usage: 15844 kB)
Be aware that if a single feature is split into individual parts, and more than one of these parts falls inside the clip boundary (e.g. a line feature wandering across the clipper at several locations) you will get an aggregate feature (i.e. group) of all the separate parts inside each clipper.
Unexpected Aggregates Example
The attached workspace (ClipperCreateAggregates.fmwt) shows an example use of the Clipper transformer.
Here Create Aggregates = Yes. An aggregate is created of the OUTSIDE parts. On querying one they are all selected (here coloured green). The INSIDE parts would be similarly grouped.