Roofs: Difference between revisions

From Tygron Support wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:
The roof shapes in the Tygron Platform are calculated as follows:
The roof shapes in the Tygron Platform are calculated as follows:


*Based on a BAG building polygon, we look at the DTM (height poinys every 50cm).
*Based on a BAG building polygon, we look at the DTM (height points every 50cm).
*Then we use the "Hough Line" algorithm to recognize lines in that elevation data. These lines are often the division between higher and lower parts in the BAG polygon. Think of a garage next to a house that is lower. The advantage of these lines is that you get a sharp demarcation instead of fuzzy deviations in an inaccurate height model.
*Then we use the "Hough Line" algorithm to recognize lines in that elevation data: (https://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html). These lines are often the division between higher and lower parts in the BAG polygon. Think of a garage next to a house that is lower. The advantage of these lines is that you get a sharp demarcation instead of fuzzy deviations in an inaccurate height model.


The BAG polygon is then divided into sections (garage, house, conservatory, etc.), we calculate the standard deviation per sections. If it is higher than a certain threshold and the model probably has a sloping roof (houses from the 1960s or earlier), we calculate a roof height (attribute)-> difference in height between the gutter and the ridge.
*The BAG polygon is then divided into sections (garage, house, conservatory, etc.), we calculate the standard deviation per section. If it is higher than a certain threshold and the model probably has a sloping roof (houses from the 1960s or earlier), we calculate a roof height (attribute)-> difference in height between the gutter and the ridge.
We then use a "Skeleton" algorithm to determine the ridge of the roof. We include adjacent terraced houses (same construction date and height) so that you get a nice continuous roof ridge.
*We then use a "Skeleton" algorithm to determine the ridge of the roof. We include adjacent terraced houses (same construction date and height) so that you get a nice continuous roof ridge.


Based on the ridge lines and the gutter lines (polygon edges) we can use a triangulation algorithm to build triangles which are needed for a 3D model.
Based on the ridge lines and the gutter lines (polygon edges) we can use a triangulation algorithm to build triangles which are needed for a 3D model.

Revision as of 09:12, 15 July 2020

Roof shapes

The roof shapes in the Tygron Platform are calculated as follows:

  • Based on a BAG building polygon, we look at the DTM (height points every 50cm).
  • Then we use the "Hough Line" algorithm to recognize lines in that elevation data: (https://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html). These lines are often the division between higher and lower parts in the BAG polygon. Think of a garage next to a house that is lower. The advantage of these lines is that you get a sharp demarcation instead of fuzzy deviations in an inaccurate height model.
  • The BAG polygon is then divided into sections (garage, house, conservatory, etc.), we calculate the standard deviation per section. If it is higher than a certain threshold and the model probably has a sloping roof (houses from the 1960s or earlier), we calculate a roof height (attribute)-> difference in height between the gutter and the ridge.
  • We then use a "Skeleton" algorithm to determine the ridge of the roof. We include adjacent terraced houses (same construction date and height) so that you get a nice continuous roof ridge.

Based on the ridge lines and the gutter lines (polygon edges) we can use a triangulation algorithm to build triangles which are needed for a 3D model. We also store the following data:

  • We already calculate the outer walls (for insulation), but you cannot yet query them with TQL.
  • The different sections as separate polygons. Each section has its own building height and an estimated number of floors.
  • The average color of the roof (based on aerial images).

The advantage of this algorithm is that it is completely procedural, you can easily make new buildings with it and give them a visual representation. A disadvantage is that it is an approximation and therefore not 100% accurate.

The location of the ridge is determined as being the center of the building and not directly based on the height data. This is adequate for many common Dutch terraced houses, but there may be a deviation, especially with more complex roof shapes.