Skip to main content

I have 80km of embankments which have been laserscanned. I have a polyline running approximately along the top of the embankment. At regular intervals (20m) along this polyline I have a point feature from which I have created perpendicular lines 10 meters each side of the point. Each perpendicular line has been assigned an ID corresponding to it's distance from the start .ie 0, 20,40,60 etc

From my DEM I need to extract the values along the perpendicular line. I then need to sort the z-values descending and keep the highest z-value. I then need to group the values according to the ID of the perpendicular line thus keeping the highest z-values along the perpendicular line. The resulting value must then be kept as an attribute of the center point (green) of the perpendicular line for a label on a map showing the ridge of the embankment and the highest point.

I have managed to create perpendicular lines each side of the embankment but cannot find a transformer that will extract the values from the DEM and let me order descending and group by the Line's ID.

Could anyone point me in the right direction?

Getting the Z values from the DEM on the lines can be done using the SurfaceDraper transformer.

Then I would use the Chopper to break the lines into vertices.

The CoordinateExtractor can extract the Z values from the point objects.

Then use the Sorter to sort on Z values descending numeric (if needed per line).

That would give you the highest point (per line) as the first point per line.

The Sampler (if needed Group by line ID) (Sample First 1) will get the highest point (per line).


Off the top of my head (no FME with me at the moment):

SurfaceDraper to drape the perpendicilar lines over the DEM and get the z-values. CoordinateExtractor to grab the z-values in a list and then ListRangeExtractor to get the max.


Hi @robertdbuckley,

I think another tool you could try here is the PointOnRasterValueEtractor - you will need to turn those lines into points, in the example below a Densifier is used followed by a chopper. Here's something to get started (assuming your DEM is a raster).

 

The PointOnRasterValueEtractor will then add the values of the raster cells to the points. It could be a little slow and some playing around with lists may be needed afterwards. You will need to come up with a way to isolate each point with the highest z value and map it to the line. Let us know if you get stuck with that step.


Reply