3dfier: automatic reconstruction of 3D city models

The software 3dfier addresses this issue by automating the 3D reconstruction process. It takes 2D geographical datasets (e.g., topographic datasets) that consist of polygons and “3dfies” them (as in “making them three-dimensional”). The elevation is obtained from an aerial point cloud dataset, and the semantics of the polygons is used to perform the lifting to the third dimension, so that it is realistic. The resulting 3D dataset is semantically decomposed/labelled based on the input polygons, and together they form one(many) surface(s) that aim(s) to be error-free: no self-intersections, no gaps, etc. Several output formats are supported (including the international standards), and the 3D city models are optimised for use in different software.


Summary
Three-dimensional city models are essential to assess the impact that environmental factors will have on citizens, because they are the input to several simulation and prediction software. Examples of such environmental factors are noise (Stoter et al., 2008), wind (Garcıá-Sánchez et al., 2014), air pollution (Ujang et al., 2013), and temperature (Hsieh et al., 2011;Lee et al., 2013).
However, those 3D models, which typically contain buildings and other man-made objects such as roads, overpasses, bridges, and trees, are in practice complex to obtain, and it is very time-consuming and tedious to reconstruct them manually.
The software 3dfier addresses this issue by automating the 3D reconstruction process. It takes 2D geographical datasets (e.g., topographic datasets) that consist of polygons and "3dfies" them (as in "making them three-dimensional"). The elevation is obtained from an aerial point cloud dataset, and the semantics of the polygons is used to perform the lifting to the third dimension, so that it is realistic. The resulting 3D dataset is semantically decomposed/labelled based on the input polygons, and together they form one(many) surface(s) that aim(s) to be error-free: no self-intersections, no gaps, etc. Several output formats are supported (including the international standards), and the 3D city models are optimised for use in different software.

Statement of need
The 3D city models needed as input in environmental simulations have specific requirements that go beyond the typical 3D models used for visualisation: they require semantic information (i.e., an object, modelled with one or more surfaces, "knows" what it is, for instance a window or a roof surface) and they should be free of geometric errors. It is known that practitioners and researchers wanting to perform some simulations or analysis can spend a significant part of their time constructing and repairing the input 3D models; McKenney (1998) estimates this to as much as 70% of their time. Furthermore, the formats required by the different software and/or the agencies (for instance the international standard CityGML), are complex to generate (Ledoux et al., 2019).
The software 3dfier automates the reconstruction step, it enriches the data with semantics, and it supports several output formats (used in different fields).
It builds upon previous work done for reconstructing the whole country of the Netherlands (with 10M+ buildings) (Oude Elberink et al., 2013), and provides the following improvements: use of recent and maintained libraries (e.g., CGAL, GDAL and Boost), a clear open-source license, recent formats and international standards are supported, no geometric errors in output.
There exist different commercial software that can perform extrusion (e.g., Safe FME or ArcGIS), but these extrude each classes of objects separately (usually only buildings), without ensuring that adjacent objects should be "stitched" together. As a result, the resulting 3D dataset is often unsuitable as input for other spatial analysis software. As shown in Figure 1, as input we use geographical datasets that are readily available for an area (often as open data too):

Overview of the reconstruction steps
1. 2D polygons representing buildings, lakes, roads, parts, etc. (OpenStreetMap is one option); 2. elevation points, usually acquired with a laser-scanner and available in LAS format, or derived from aerial images.
Each of the classes in the input 2D polygons is mapped to a specific class: Terrain, Forest, Water, Road, Building, Bridge/Overpass, and Separation (walls and fences).

Introduction
Bacon ipsum dolour sit amet porchetta beef turkey, bacon turducken boudin hamburger venison ball tip. Brisket pork loin bresaola short loin ground round leberkas pastrami tongue jerky cow turducken beef ribs. Pork ribeye landjaeger prosciutto pig venison tenderloin. Swine beef ribs kielbasa, porchetta tenderloin salami venison pork belly tail. The semantics of every input 2D polygon is used to perform the lifting to the third dimension. For example, water polygons are extruded to horizontal polygons, buildings to prismatic blocks, roads as smooth surfaces, etc. Every polygon is triangulated and in a next step the lifted polygons are "stitched" together so that one surface is reconstructed. In this step, priority is given to "hard" objects such as roads, i.e., vegetation polygons are moved to be aligned with the road polygons. The output of the software is one watertight surface with no intersecting triangles and no holes, and features such as buildings and trees can be added or omitted. Triangles are grouped and labelled with the class and the attributes that were in the input 2D polygons they decompose. This surface can be used directly as input in several urban applications, such as simulations of noise or wind.

Use of the software
The software is a command-line interface (CLI), and uses a configuration file as input (a YAML file). This file allows the user to control the mapping between the input and the 3dfier classes, to specify which LAS classes to use/ignore, to control how the lifting is performed for the different classes, etc.
The software, being modular, is also extensible for other use cases or for use in different countries. As an example, new topographic classes (for instance trees) could be added by simply creating a new C++ class that inherits from the parent class, and the output for the different formats supported must be added.
Great care was taken to keep the software as efficient as possible and make it suitable for reconstructing very large areas. For instance 3dfier is the software that enables the Dutch national mapping agency (Kadaster) to create the 3D base registration for the Netherlands.