https://github.com/carlos-alberto-silva/optqsm

Automatically optimise and parallelise TreeQSM

https://github.com/carlos-alberto-silva/optqsm

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Automatically optimise and parallelise TreeQSM

Basic Info
  • Host: GitHub
  • Owner: carlos-alberto-silva
  • License: mit
  • Default Branch: master
  • Size: 44.9 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Fork of apburt/optqsm
Created almost 4 years ago · Last pushed almost 6 years ago
Metadata Files
Readme License

README.md

optqsm

Automatically optimise and parallelise TreeQSM: a method for constructing structural models of trees from lidar point clouds

Overview

optqsm wraps around TreeQSM to fully automate the construction of quantitative structural models (QSMs) from individual tree point clouds. optqsm can also be used to locally parallelise TreeQSM.

optqsm automatically selects TreeQSM input parameters by analysing the vertically-resolved nearest neighbour distances across the input point cloud. The expectation of the input point cloud is that it provides a reasonably complete sample of the underlying tree surface, with minimal occlusion effects. It is also expected that the point cloud contains only returns from woody surfaces; for segmenting leaf returns consider using TLSeparation (https://github.com/TLSeparation).

Dependencies

MATLAB vR2019b with Statistics and Machine Learning and Parallel Computing toolboxes
TreeQSM v2.3.2 (https://github.com/InverseTampere/TreeQSM)

Installation

TreeQSM v2.3.2 can be installed via:

cd [INSTALLATION_DIR]; git clone https://github.com/InverseTampere/TreeQSM.git; cd TreeQSM; git checkout tags/v.2.3.2;

  • If cubic metre is preferred as the output unit of volume, lines 74--76 of [INSTALLATIONDIR]/TreeQSM/src/mainsteps/tree_data.m require removal of the 1000x entries.

optqsm can then be installed as:

cd [INSTALLATION_DIR]; git clone https://github.com/apburt/optqsm.git;

The paths to both TreeQSM and optqsm require setting in MATLAB, i.e.,:

matlab -nodisplay; addpath(genpath('[INSTALLATION_DIR]/TreeQSM/src/')); addpath('[INSTALLATION_DIR]/optqsm/src/'); savepath();

If the user does not have sufficient privileges to call savepath(...), these addpath(...) calls will be required at the beginning of each MATLAB instance.

Usage

The input to optqsm are the paths (wildcards permitted) to N tree-level point clouds (ASCII, 3-column (x,y,z), no header). The example here uses the following file structure:

[PROCESSING_DIR] ├───clouds │ ├───plot1_1.txt │ ├───plot1_...txt │ ├───plot1_N.txt └───models ├───intermediate

Where the naming of each point cloud strictly follows: [PLOTID][TREE_ID].txt.

The runqsm function can then be called from the command line as:

cd [PROCESSING_DIR]/models/intermediate/; matlab -nodisplay -r "runqsm('../../clouds/*.txt',workers)";

This command will calculate the vertically-resolved nearest neighbour distance for each point cloud, and estimate the optimum values of PatchDiam1, PatchDiam2Min, PatchDiam2Max, BallRad1 and BallRad2. These parameter sets will then be used to construct 10 QSMs for each point cloud.

Workers is an integer specifying the number of workers in the local parallel pool that will be initialised if > 1.

The optqsm function can then be called as:

cd ../; matlab -nodisplay -r "runopt('./intermediate/*/*.mat')";

Which will return plot11.mat ... plot1N.mat, and plot1.dat
The .dat file reports the mean volume and standard deviation across the 10 QSMs generated from each input point cloud. The .mat files are the QSM in each set of 10 whose volume was closest to the mean volume.

The definition of parameters inside the .mat files can be found in [INSTALLATION_DIR]/TreeQSM/src/treeqsm.m. They can be interacted with outside MATLAB, e.g., in Python with scipy.io.loadmat() (although care is required with MATLAB not using zero-based arrays).

Authors

  • Andrew Burt

License

optqsm is licensed under the MIT License - see the LICENSE file for details

Acknowledgements

optqsm uses TreeQSM (https://github.com/InverseTampere/TreeQSM)

Owner

  • Name: Carlos Alberto Silva
  • Login: carlos-alberto-silva
  • Kind: user
  • Company: University of Florida

GitHub Events

Total
Last Year

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 27
  • Total Committers: 1
  • Avg Commits per committer: 27.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
apburt a****t@u****k 27
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 2 years ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels