A forestry LiDAR processing package
Project description
SilviMetric
This software is built with the intention of processing pointcloud data and inserting it into a TileDB data structure as a base, so that future processing can look at this TileDB structure and compute stats based on the data present.
Process
- A
pdal info
is performed on the data to determine the bounds, or if a polygon is provided then this part makes sure that there are points in the provided polygon - The TileDB is created or re-opened
- The Bounding box is split up into cells and chunks.
- Using Dask, we then push a chunk to a worker to operate on where we fetch the data with the chunk's bounds, and assign the points in that chunk to the associated cells.
- This data, now split into cell data (similar to a raster) is then written to TileDB.
Usage
silvimetric [-h] [--tdb_dir TDB_DIR] [--threads THREADS] [--workers WORKERS]
[--group_size GROUP_SIZE] [--resolution RESOLUTION] [--polygon POLYGON]
[--debug DEBUG] [--watch WATCH] filename
Options
filename
: The path to the pointcloud (String)--tdb_dir
: The path to the desired TileDB location (String)- Defaults to the filename of the pointcloud, or if the pointcloud is EPT, then the directory name
--threads
: Number of threads given to each worker (int)- default: 4
--workers
: Number of workers (int)- default: 12
--group_size
: Number of cells in a chunk- default: 12
--resolution
: Width of a cell- default: 30
--debug
: Moves to a single-threaded dask config for debugging purposes--watch
: Open web browser page that shows current resource usage and task information.--polygon
: Polygon to filter points by. The cells and chunks will be made using this. This polygon must be in the same SRS as the data.
Example
silvimetric \
https://github.com/PDAL/data/raw/master/autzen/autzen-classified.copc.laz \
--tdb_dir autzen_class --threads 6 --workers 10 --group_size 16 \
--resolution 100 --watch True
This script will open a window in your default browser that monitors dask tasks and resources. It will then create a dask client with 10
workers and 6
threads per worker, and a tiledb sparse array named autzen_class
. The cells produced from this will have a 100
ft resolution (because autzen is measured in feet), and cells will be processed in chunks of 16
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file silvimetric-0.0.1.tar.gz
.
File metadata
- Download URL: silvimetric-0.0.1.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ab93f39f25d79e857d6741bfcea016a3c223d8517c94c08238beb5df6823c19 |
|
MD5 | 6f8620c59b610772f1c27420bb934e51 |
|
BLAKE2b-256 | f5b1a4eb89be607ce1baf327d8a4190b7c36b29ac63418da2917e1a06cf7ef82 |