Skip to main content

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

  1. 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
  2. The TileDB is created or re-opened
  3. The Bounding box is split up into cells and chunks.
  4. 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.
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

silvimetric-0.0.1.tar.gz (19.5 kB view details)

Uploaded Source

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

Hashes for silvimetric-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9ab93f39f25d79e857d6741bfcea016a3c223d8517c94c08238beb5df6823c19
MD5 6f8620c59b610772f1c27420bb934e51
BLAKE2b-256 f5b1a4eb89be607ce1baf327d8a4190b7c36b29ac63418da2917e1a06cf7ef82

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page