Skip to content

potree/CPotree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dc13ad1 · Feb 25, 2024

History

57 Commits
Dec 7, 2023
Nov 25, 2022
Dec 17, 2020
Nov 25, 2022
Oct 7, 2020
Dec 7, 2023
Dec 7, 2023
Dec 7, 2023
Oct 16, 2020
Dec 7, 2023
Dec 7, 2023
Dec 7, 2023
Feb 25, 2024
Feb 25, 2024

Repository files navigation

Build

Linux:

mkdir build
cd build
cmake ../
make

Linux (manual build):

Tested on Ubuntu 22.04 LTS

Install required packages

apt install build-essential libbrotli-dev liblaszip-dev

Build binaries

cd src
g++ -std=c++20 -I../include/ -I../modules -idirafter../libs executable_extract_area.cpp ../modules/unsuck/unsuck_platform_specific.cpp -lbrotlidec -llaszip -o extract_area
g++ -std=c++20 -I../include/ -I../modules -idirafter../libs executable_extract_profile.cpp ../modules/unsuck/unsuck_platform_specific.cpp -lbrotlidec -llaszip -o extract_profile

Windows:

mkdir build
cd build
cmake ../
  • Then open the generated sln file in Visual Studio.
  • Make sure "Release" build is selected.
  • Build "extract_profile".

Build options

  • WITH_AWS_SDK: Build with s3 support. Requires AWS SDK.

Usage

Extract points with the elevation profile:

// minimal
./extract_profile <input> -o <output> --coordinates "{x0, y1}, {x1, y}, ..." --width <scalar> 

// Extract points in certain LOD level ranges
./extract_profile <input> -o <output> --coordinates "{x0, y1}, {x1, y}, ..." --width <scalar> --min-level <integer> --max-level <integer>
  • input: A point cloud generated with PotreeConverter 2.
  • output: Can be files ending with *.las, *.laz, *.potree or it can be "stdout". If stdout is specified, a potree format file will be printed directly to the console.
  • min-level, max-level: Level range including the min and max levels. Can be omitted to process all levels.

With --get-candidates, you'll get the number of candidate points, i.e., the number of points inside all nodes intersecting the profile. The actual number of points might be orders of magnitudes lower, especially if --width is small.

./extract_profile <input> --coordinates "{x0, y1}, {x1, y}, ..." --width <scalar> --min-level <integer> --max-level <integer> --get-candidates

A practical example:

./extract_profile ~/dev/tmp/retz -o ~/dev/tmp/retz.laz --coordinates "{-37.601, -100.733, 4.940},{-22.478, 75.982, 8.287},{66.444, 54.042, 5.388},{71.294, -67.140, -2.481},{165.519, -26.288, 0.253}" --width 2 --min-level 0 --max-level 3