Skip to main content

I have the task of detecting objects that exceed a certain height above the ground. These objects can be points, lines, polygons and also multipatches. All objects have 3D coordinates. Furthermore, there is of course a DEM which represents the ground = reference surface. Since the number of objects is several million, I am looking for an efficient solution.

My current approach is proving to be too time-consuming and therefore impractical. Currently, I have a (small object-) DEM from each of the multipatches features and subtract this from the large DEM. If the difference is greater than the maximum limit, the object is played into a separate database. This method is still acceptable.

For the point objects I add the height as an attribute and finally take the height from the height model. Finally, I calculate the difference and divide the objects according to the threshold value. I proceed similarly with the line and surface objects, except that I first increase the point density along the lines. Unfortunately, the query for start and end points is not sufficient, since, for example, the height above ground for bridges, cable cars or power lines etc. can be variable along the route. (Time)Critical, apart from the amount of data, are the height queries from the raster height model.

Now I want to ask whether there is a more efficient way in FME? Many thanks for the support.

I can't really find any flaws in your process and it sounds like the volume of data is the main issue. Processing smaller chunks might be an option but will probably introduce more overhead than savings.

One thing to consider is running this on FME Cloud. An Enterprise instance will cost you $10/hour, it has 192 Gb RAM and if you specify a large enough hard drive it'll be blazing fast in reading and writing too.


Reply