This is a python tool that uses data clustering techniques to identify relevant locations inside Lidar point cloud data. The output is a JSON file containing targets in the shape of coordinates and positions that the camera must go in order to have a clear view over the targets.
It was developed as part of my Bachelor Thesis work for my HES-SO B.S. in Computer Science & Engineering, oriented in Software Development in HEIG-VD, Switzerland.
This tool can be useful in application with this adaptation of the Potree tool that allows the import of such JSON files and the visualization of camera paths.
This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.
This project is a very simple python file that can be executed to generate a JSON with the targets and positions.
To be sure everything is going to work properly, be sure you have Python version >= 3.8
- Get python version
python --version
Then you must install the required libraries to be able to use the script properly.
- Clone the repo
git clone https://github.com/MazieroMarco/bt-pathfinding-tool.git
- Install python packages
pip install -r requirements.txt
- Run the pathfinder script
python pathfinder.py my_file.las -o ./my_output.json
-
Run simple clustering with default params (5 targets, 0.1% data sample size)
python pathfinder.py my_file.las
-
Run simple clustering with custom params (10 targets, 0.4% data sample size, custom epsilon, custom output)
python pathfinder.py my_file.las -o ./output.json -p 10 -q 0.4 -e 0.9
More details are avilable in the comand line tool help menu by using the -h
option.
- Help menu
python pathfinder.py -h usage: pathfinder.py [-h] [--output DIR] [--poi N] [--quantity N] [--epsilon N] INPUT Finds interesting locations and a camera path inside a given LAS point cloud data file. positional arguments: INPUT The path of the input LAS data file optional arguments: -h, --help show this help message and exit --output DIR, -o DIR The output directory for the generated JSON file --poi N, -p N The amount of points of interest to output --quantity N, -q N The proportion of points to keep in the working data sample [0 < q < 1]. Warning, a big number slows down the algorithm. --epsilon N, -e N The epsilon parameter used for the data clustering. This parameter is approximated if no value is given.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Distributed under the MIT License. See LICENSE for more information.
Marco Maziero - maziero.marco@outlook.com