/geoflow-roofer

Automatic LoD2.2 building reconstruction

Primary LanguageC++GNU General Public License v3.0GPL-3.0

roofer

Automatic 3D building reconstruction

Overview src/ folder (possibly subject to change)

src/common.hpp and src/Raster.hpp contains some basic types to store pointclouds, polygons, rasters etc that are used throughout the library. Only depends on the C++17 standard library.

src/detection and src/partitioning contain everything needed to perform building reconstruction (see apps/reconstruct.cpp for how to use). These files only depend on CGAL, there are not other external dependencies.

src/io contains functions to read and write OGR/GDAL datasources and LAS files. Has a bunch of external dependencies like GDAL, GEOS, PROJ, LASlib

src/misc, src/quality various function used by the crop application.

Roofer apps

crop

Takes a bunch of input las files and footprints and outputs a folder hierarchy with reconstruction inputs for each separate building

reconstruct

Takes a point cloud and footprint for a single building and performs building reconstruction.

Currently it is using rerun.io to visualise the result. You need to install the rerun viewer if you want to see the output.

reconstruct output visualised with Rerun

Compile from source

Building roofer requires vcpkg. Follow the vcpkg instructions to set it up. After vcpkg is set up, set the VCPKG_ROOT environment variable to point to the directory where vcpkg is installed.

On macOS you need to install additional build tools:

brew install autoconf autoconf-archive automake libtool
export PATH="/opt/homebrew/opt/m4/bin:$PATH"

Clone this repository and use one of the CMake presets to build the roofer.

cd geoflow-roofer
mkdir build
cmake --preset vcpkg-minimal -S . -B build
cmake --build build
# Optionally, install roofer
cmake --install build

You can list all available presets:

cd roofer-dev
cmake --list-presets