Question

Dissolve multiple 3D surfaces to get lowest elevation


Hi!

I have a task for an aviation project where there are multiple 3D surfaces of runway approaches (from DWG). I need to take the multiple surfaces and create a single composite "blanket" object taking all of the lowest elevation information. This is because the client would like to know how high an obstruction can be before it intersects with any of the approach boundaries.

 

I've seen SurfaceDissolver & SurfaceFootprintReplacer, but I'm not the best at FME so I'm unsure of a good workflow.

Any help would be appreciated! Thank you.


6 replies

Badge +22

One way would be to rasterize each 3D surface and then use a RasterMosaicker with overlapping values set to Minimum.

 

 

Keeping it in 3d surfaces, I would look at things like the SurfaceOnSurfaceOverlayer, CSGBuilder.

 

 

Unfortunately transformers like the TINGenerator drop duplicate x/y points without allowing you to keep the lowest/highest Z.

Thank you for your response @jdh! I tried both the Rasterizing method and the SurfaceOnSurfaceOverlayer methods. The SurfaceOnSurfaceOverlayer helped brainstorm a few more ideas, which went with using the following workflow. However, I'm having trouble turning the HullAccumulator output inside a solid, and there's a bunch of jagged lines. I'm not sure how to fix that. I also tried SolidBuilder to no avail.

Userlevel 4
Badge +26

I really like the raster approach - If you group by surface this should give you a nice set of rasters which you can combine with the RasterMosaicker with overlapping values set to Minimum, Then you can use the RasterDEMGenerator to create a surface. You may lose some information but a visual comparison should let you know how good the process was.

 

 

 

But if you have a process which already gives you the lowest points you want (looks like maybe you do?) then I would suggest just using the TINGenerator to generate a surface from the points.

I really like the raster approach - If you group by surface this should give you a nice set of rasters which you can combine with the RasterMosaicker with overlapping values set to Minimum, Then you can use the RasterDEMGenerator to create a surface. You may lose some information but a visual comparison should let you know how good the process was.

 

 

 

But if you have a process which already gives you the lowest points you want (looks like maybe you do?) then I would suggest just using the TINGenerator to generate a surface from the points.

Thanks for the input @virtualcitymatt! I think the caution with rasterizing it would be potentially losing some accuracy for the data, but I'm against the ropes right now so let me try that process again and see if it yields better results!

Thanks for the input @virtualcitymatt! I think the caution with rasterizing it would be potentially losing some accuracy for the data, but I'm against the ropes right now so let me try that process again and see if it yields better results!

Question for you and @jdh...If I rasterize the surfaces with ImageRasterizer, doesn't that make the data 2D, which fails in RasterDEMGenerator?

Badge +22

Question for you and @jdh...If I rasterize the surfaces with ImageRasterizer, doesn't that make the data 2D, which fails in RasterDEMGenerator?

Any of the surface modeller transformers consider rasters as a point dataset where the Z is the pixel value.

 

 

Though I think you want the NumericRasterizer not the ImageRasterizer.

Reply