Point Cloud with building classification
Points created by GeometryCoercer
I'm not clear where to go from here. Buffer by certain amount? Is there a best transformer here?
Thanks
Point Cloud with building classification
Points created by GeometryCoercer
I'm not clear where to go from here. Buffer by certain amount? Is there a best transformer here?
Thanks
I agree that the HullAccumulator is suitable to create roughly outline of points.
But I think you will have to add an attribute which can be used as the "Group By" parameter of the transformer beforehand. Maybe it's the major subject.
One possible way is:
(1) Perform buffering of the points by a certain amount, grouping by an attribute containing an identical value (e.g. fme_basename etc.) so that the overlapped buffered areas will be dissolved.
(2) Add "Group ID" attribute to each dissolved area with the Counter.
(3) Clip the original points by the dissolved areas to transfer the Group ID to the points.
(4) Use the HullAccumulator (Group By: Group ID) to create outline for each group of points.
Takashi
Perhaps there is a way using the NeighbourFinder, which generates a list of candidates for each point. However, the code might be complex. It would be nice if Safe had such a transformer. More organizations are using Lidar and want to work with the classifications that Lidar produces.
I try to explain again with other words.
(1) Buffer the points by a certain amount to create areas which represent roughly buildings.
If you set an attribute containing an identical value to Group By of the Bufferer, overlapped areas will be dissolved, like this.
If the points don't have appropriate attribute to do that, just add an attribute storing an identical constant value with the AttributeCreator before the buffering.
(2) Add group ID to the resulting areas with the Counter.
(3) To transfer the group ID to the original points, clip the points by the buffered areas with the Clipper.
The only remaining problem is that there are 168 LAS files and each is about 700 MB. It seems possible that something will fail doing all of that processing.
I therefore created another script that reads from the LAS directory, and sends parameters to a workspace runner with filename, directory, etc. I used a generic writer with Output Format: Shape. The writer takes its Destination Folder and Base filename from parameters that the workspace runner populates.
The workspace that the workspace runner calls now reads one LAS file, does the process to make the polygons from that LAS file, and then writes an individual shapefile in its own directory for each LAS file. If the process crashes, I will still have the shapefiles already written.
I didn't need the ListCombiner, but it is good to know about it.