Skip to main content

I have a workspace with a single 3D model (a tree) and a point dataset of several thousand points. Is it possible to replicate the 3D model and geo-reference it for every point?

Hi @proudgis, a possible way I can think of is:

  1. CoordinateExtractor: Extract (x, y, z) for every point feature.
  2. FeatureMerger: Unconditionally merge the tree geometry to every point (i.e. replace all point geometries with an identical tree geometry). To do that, send the point features to the Requestor port, send the tree feature to the Supplier port, set an identical constant value (e.g. 1) to the Join On for both Requestor and Supplier, and set "Geometry" to the Feature Merge Type parameter.
  3. Offsetter: Move each tree to desired location based on coordinates (x, y, z) of the original point.

Hi @proudgis, a possible way I can think of is:

  1. CoordinateExtractor: Extract (x, y, z) for every point feature.
  2. FeatureMerger: Unconditionally merge the tree geometry to every point (i.e. replace all point geometries with an identical tree geometry). To do that, send the point features to the Requestor port, send the tree feature to the Supplier port, set an identical constant value (e.g. 1) to the Join On for both Requestor and Supplier, and set "Geometry" to the Feature Merge Type parameter.
  3. Offsetter: Move each tree to desired location based on coordinates (x, y, z) of the original point.
Yes, this is looking good. I hadn't realised you could use constant values in the feature merger in place of attributes. Now to see if extrusion is possible. Thanks!

 

 


Hi @proudgis, a possible way I can think of is:

  1. CoordinateExtractor: Extract (x, y, z) for every point feature.
  2. FeatureMerger: Unconditionally merge the tree geometry to every point (i.e. replace all point geometries with an identical tree geometry). To do that, send the point features to the Requestor port, send the tree feature to the Supplier port, set an identical constant value (e.g. 1) to the Join On for both Requestor and Supplier, and set "Geometry" to the Feature Merge Type parameter.
  3. Offsetter: Move each tree to desired location based on coordinates (x, y, z) of the original point.
The unconditional merging technique with the FeatureMerger is very useful in some scenarios.

 

Another approach. This workflow would also be possible.
  1. Read the tree feature.
  2. GeometryExtractor (Geometry Encoding: FME Binary): Save the tree geometry as an attribute called e.g. "_geometry".
  3. FeatureReader: Read the point features. Here, set "Merge Initiator and Result" to the Accumulation Mode parameter, in order to merge "_geometry" to every point feature. Leave the Geometry parameter "Use Result" (default).
  4. CoordinateExtractor: Extract coordinates (x, y, z) for each point.
  5. GeometyReplacer (Geometry Encoding: FME Binary): Replace the point geometry with the tree geometry from "_geometry".
  6. Offsetter: Move the geometry to desired location based on the (x, y, z).

 


hi Takashi!

The format of the feature merger seems to have changed a bit since 2017, but for the most part it seems to work (testing it now). Do you know if there is a way to 1) randomly rotate the points and 2) draw the trees at different sizes/scales based on a height attribute in points?

thanks much


Reply