https://github.com/carlos-alberto-silva/optqsm
Automatically optimise and parallelise TreeQSM
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
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
Metadata Files
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
- Website: https://carlos-alberto-silva.github.io/silvalab/home.html
- Twitter: Web_LiDAR
- Repositories: 100
- Profile: https://github.com/carlos-alberto-silva
GitHub Events
Total
Last Year
Committers
Last synced: over 2 years ago
Top Committers
| Name | 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