Skip to main content
Question

Using DSM and DTM to model features (buildings/trees etc)

  • August 31, 2017
  • 4 replies
  • 327 views

tomw202
Contributor
Forum|alt.badge.img+4

Hi

I have 2 datasets, a DTM (i.e the underlying ground model) and a DSM (the surface model). These are currently 1m spaced point features (with the same X,Y locations). I am looking to use the difference between the two models (i.e DSM elevation - DTM elevation) to build 3d models of a feature. These features may be buildings, trees, hedges etc.

My current work flow is as following:

  1. Build 3D lines between the DSM and DTM point for a given X,Y, using a neighbor finder and line builder, and assign the line an ID
  2. Filter out lines with a length below 1m (we assume these are not of interest).
  3. In ArcScene, select a group of lines that represent a feature, e.g a house. give these lines a FeatureID.
  4. In FME split the lines back into DSM/DTM using a snipper.
  5. Use the TINGenerator, grouped by FeatureID to create a TIN of the DSM points.

However from here I just cant figure out how to make "Walls" down to the DTM points at the bottom of the feature. I've tried using the hull of the DTM points of each feature as breakline, however this brings the "walls" down a meter prematurely.

Any idea?

Attached is a picture of the DSM surface model, and 3D Lines for some context.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

4 replies

nathanatsafe
Safer
Forum|alt.badge.img+9
  • Safer
  • 284 replies
  • August 31, 2017

Hi @tomw202. I think the Extruder might do the trick as long as you can Extrude by the length of your "walls".

Alternatively this workflow may work or you: Create raster DEMs out of both of your point clouds, subtract them with the RasterCellValueCalculator, use the RasterToPolygonCoercer to transform to vectors, and then Extrude by the elevation value.


takashi
Celebrity
  • 7843 replies
  • September 1, 2017

Hi @tomw202, if you already have a surface geometry that represents the roof of a building, try using the BRepSolidBoundaryCreator.Beta custom transformer from FME Hub. This transformer creates a side-wall surface and a flat bottom surface based on a source roof (top) surface and the elevation of the bottom specified via a parameter.


zzupljanin
Contributor
Forum|alt.badge.img+4
  • Contributor
  • 120 replies
  • September 1, 2017

Explode your roofs to lines then points (ID them with counter)

Use SurfaceDraper to get same points (with IDs) on DEM

Point Connector (Group by ID) will give you wall edges

LineJoiner by Feature Id should give you closed polylines a.k.a. Walls


tomw202
Contributor
Forum|alt.badge.img+4
  • Author
  • Contributor
  • 18 replies
  • September 1, 2017

Hi @tomw202, if you already have a surface geometry that represents the roof of a building, try using the BRepSolidBoundaryCreator.Beta custom transformer from FME Hub. This transformer creates a side-wall surface and a flat bottom surface based on a source roof (top) surface and the elevation of the bottom specified via a parameter.

Hi Takashi,

 

 

Thanks for your answer, I think this solution best fits the problem. Great to learn about that custom transformer!