Giter Site home page Giter Site logo

whigg / pointcloudtools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gislab-elte/pointcloudtools

0.0 2.0 0.0 822 KB

Massive airborne laser altimetry (ALS) point cloud and digital elevation model (DEM) processing library.

Home Page: http://gis.inf.elte.hu/ahn/

License: BSD 3-Clause "New" or "Revised" License

CMake 1.61% C++ 98.11% C 0.03% Batchfile 0.24%

pointcloudtools's Introduction

PointCloudTools

Massive airborne laser altimetry (ALS) point cloud and digital elevation model (DEM) processing library.
Contains the AHN Change Detector, a toolset for change detection of the built-up area and vegetation based on the study dataset: AHN - Actueel Hoogtebestand Nederland.

Dependencies

For Windows operating systems binary releases are available to simply install the above defined libraries.
For Linux operating systems installing from the standard (or other) package repository is a convenient solution if the available versions meet the requirements.

1 GDAL must be compiled with GEOS support enabled.
2 MPI dependency is required only for the AHN.Buildings.MPI project to evaluate in a HPC environment.

Structure

The repository in consisted of 9 projects altogether.

  • CloudTools.DEM: Algorithms on DEM transformation and calculation.
  • CloudTools.DEM.Difference: Compares multi-temporal DEMs of same area to retrieve differences.
  • CloudTools.DEM.Mask: Transforms a vector filter mask into a raster filter mask and/or applies the latter on a DEM.
  • CloudTools.Common: Reporting and I/O management.
  • AHN.Buildings: Compares an AHN-2 and AHN-3 tile pair and filters out changes in buildings.
  • AHN.Buildings.Parallel: Compares pairs of AHN-2 and AHN-3 tiles parallely and filters out changes in buildings.
  • AHN.Buildings.MPI: Compares pairs of AHN-2 and AHN-3 tiles parallely (through MPI) and filters out changes in buildings.
  • AHN.Buildings.Aggregate: Computes aggregative change of volume for administrative units.
  • AHN.Buildings.Verify: Verifies detected building changes against reference files.
  • AHN.Vegetation: Compares an AHN-2 and AHN-3 tile pair and filters out changes in the vegetation (trees).
  • AHN.Vegetation.Verify: Verifies detected trees changes against reference files.

How to build

The project is continuously built and tested on the following operating systems:

  • Windows 10
  • Ubuntu Linux 18.04 LTS and 20.04 LTS

It was furthermore tested to work on Windows 7 and Ubuntu Linux 16.04 LTS, but these distributions are not officially supported anymore. Please note that on Ubuntu 16.04, the building of the GDAL dependency from source is needed to meet the version requirement.

The repository utilizes the CMake cross-platform build system. To generate the build environment, run CMake:

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install_path>

The following table contains a few CMake variables which might be relevant during compilation.

Variable Meaning
CMAKE_INSTALL_PREFIX Install directory. For more information see: https://cmake.org/cmake/help/v3.5/variable/CMAKE_INSTALL_PREFIX.html
CMAKE_BUILD_TYPE Specifies the build type on single-configuration generators (e.g. Unix Makefiles). Possible values are empty, Debug, Release, RelWithDebInfo and MinSizeRel. For more information see: https://cmake.org/cmake/help/v3.5/variable/CMAKE_BUILD_TYPE.html

On Windows

Using CMake with the MSVC generator it will construct a Visual Studio solution which can be used to build the projects. Open a Developer Command Prompt for Visual Studio to build the solution and optionally install the binaries to the specified destination:

msbuild CloudTools.sln
msbuild INSTALL.vcxproj

You may specify the /property:Configuration=<value> flag to set the project configuration. Supported values are Debug and Release.

The project supports Visual Studio's CMake integration, you may create a CMakeSettings.json file based on the given sample (CMakeSettings.json.sample) and use the multi-configuration Ninja generator to compile against x86 or x64 architectures.

On Linux

Using CMake with the Unix Makefiles generator it will construct GNU Makefiles as a build system. Then a simple make command is sufficient for compilation.
Specify one of the above mentioned project names in section Structure as the build target to only build a subset of the projects, e.g.:

make
make AHN.Buildings.Parallel

Note: you may add the -j<N> flag to compile on multiple threads (where <N> is the number of threads).

How to use

On build of repository, the following executables will be available:

dem_diff
dem_mask
ahn_buildings_sim
ahn_buildings_par
ahn_buildings_agg
ahn_buildings_ver
ahn_buildings_mpi
ahn_vegetation
ahn_vegetation_ver

Get usage information and available arguments with the -h flag.

Note: since the GDAL library is linked dynamically, some environment variables (GDAL_BIN, GDAL_DATA and GDAL_DRIVER_PATH) must be configured to execute the above binaries. Set them correctly in your OS account or in the active shell.
On Windows you may create a Shell.config.cmd file based on the given sample (Shell.config.cmd.sample) and run the Shell.bat preconfigured environment at the installation location.

Contributing

Please read CONTRIBUTING.md for details on coding conventions.

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

pointcloudtools's People

Contributors

intjftw avatar mcserep avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.