For example, a potential use case is to colorize a point cloud using orthophotos.
Point cloud features are input through this port.
Raster features are input through this port.
Point cloud features with updated component values are output through this port.
If Group By attributes are selected, features with the same values in the Group By attributes are grouped together, and rasters are only used to set component values of point clouds in the same group.
Process At End (Blocking): This is the default behavior. Processing will only occur in this transformer once all input is present.
Process When Group Changes (Advanced): This transformer will process input groups in order. Changes of the value of the Group By parameter on the input stream will trigger processing on the currently accumulating group. This may improve overall speed (particularly with multiple, equally-sized groups), but could cause undesired behavior if input groups are not truly ordered.
There are two typical reasons for using Process When Group Changes (Advanced) . The first is incoming data that is intended to be processed in groups (and is already so ordered). In this case, the structure dictates Group By usage - not performance considerations.
The second possible reason is potential performance gains.
Performance gains are most likely when the data is already sorted (or read using a SQL ORDER BY statement) since less work is required of FME. If the data needs ordering, it can be sorted in the workspace (though the added processing overhead may negate any gains).
Sorting becomes more difficult according to the number of data streams. Multiple streams of data could be almost impossible to sort into the correct order, since all features matching a Group By value need to arrive before any features (of any feature type or dataset) belonging to the next group. In this case, using Group By with Process At End (Blocking) may be the equivalent and simpler approach.
Note: Multiple feature types and features from multiple datasets will not generally naturally occur in the correct order.
As with many scenarios, testing different approaches in your workspace with your data is the only definitive way to identify performance gains.
Specifies which point cloud components should be set from the corresponding raster(s).
When specifying a custom list, the following values must be specified for each component:
This parameter specifies the behavior when a point lies on a raster nodata value. If set to Yes, the point component value will be set to the nodata value. If set to No, the raster will be skipped, and the next raster checked. If no rasters are found to cover the point, then the Default Values Overwrite Data parameter determines the behavior.
This parameter specifies the behavior when no value can be found for a point from any raster, but the component already existed on the input point cloud. If set to Yes, the component value from the input point cloud will be preserved. If set to No, the component value will be set to the default value, either from the default value list or the FME default.
Cell values are interpolated to arrive at point cloud component values.
The component value for each point is taken from the first raster that can supply one (for example, if a point does not overlap a raster, the next raster will be tried), so the order of input for rasters can impact the result.
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.
FME Professional edition and above
Associated FME function or factory: RasterToPointCloudComponentFactory
Search for samples and information about this transformer on the FME Community.
Keywords: point "point cloud" cloud PointCloud coerce LiDAR sonar expose extract extents orthophotos PointCloudOnRasterValueExtractor