This project is the workflow I use to create three-dimensional building and terrain models from LIDAR .las
files. The workflow relies on a number of tools and libraries including libLAS and CGAL.
Please review the licenses of the included libraries.
The three main components of our workflow - libLAS, CGAL, and PCL - together have a large number of dependencies. The following section will provide instructions on how to compile from source those dependencies and link them if necessary.
This guide was tested and developed on Ubuntu 13.04 64-bit. Any feedback on other *nix distributions is gladly welcomed.
The following table lists the current version of all the required and optional components used in the project:
Component | Version |
---|---|
Boost | 1.53.0 |
CGAL | @TODO |
CMake | 2.8.11.1 |
Eigen | @TODO |
FLANN | 1.8.4 |
GMP | 5.1.2 |
MPFR | @TODO |
PCL | @TODO |
QHull | 2012.1 |
QT | 5.0.2 |
VTK | 5.10.1 |
ZLIB | 1.2.8 |
The boost C++ libraries provide optimized and best-practice C++ source libraries that are used by a few of the components. Please download the latest stable release and change the following commands accordingly if necessary.
# Install Boost libraries
sudo tar -xvzf boost_1_53_0.tar.gz -C /opt
cd /opt/boost_1_53_0/
sudo ./bootstrap.sh
sudo ./b2
CMake is a cross-platform, open-source build system utilized by libLAS, CGAL, and PCL. Download the latest release.
sudo tar -xvzf cmake-2.8.11.1.tar.gz -C /opt
cd /opt/cmake-2.8.11.1/
sudo ./bootstrap
sudo make && sudo make install
The libLAS library provides utilities and header files to manipulate .las
files.
sudo mkdir makefiles
cd makefiles/
sudo cmake -G "Unix Makefiles" -DBOOST_ROOT=/opt/boost_1_53_0 ../
sudo make
sudo make install
The Point Cloud Library
unzip flann-1.8.4-src.zip
sudo mv flann-1.8.4-src /opt
cd /opt/flann-1.8.4-src
sudo mkdir build && cd build
sudo cmake ..
sudo make
http://www.cgal.org/Manual/latest/doc_html/installation_manual/Chapter_installation_manual.html
The Computational Geometry Algorithms Library (CGAL) provides a C++ API with optimized and best-practive algorithms. This library will provide the utilities for point set processing and 3D mesh generation.
# TODO: tar.lz
/opt/gmp-5.1.2
http://stackoverflow.com/questions/11662529/building-qt-libraries-on-ubuntu-linux
For various reasons I chose to build and install the CGAL SWIG bindings so that I had the option to program with Python.
Meshing domain is the 3D polyhedron created in the previous section, and it has sharp features and variable sizing field.
http://cgal-discuss.949826.n4.nabble.com/Export-mesh-td950677.html