Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corrected README.md grammar #13

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 25 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,24 @@

## The package

R package that provides a set of tools to manipulate, visualize and
compute metrics from quantitative structural model of trees (i.e the
so-called ‘QSM’) . It can be used in various context of forest ecology
(i.e biomass estimation) and tree architecture (i.e architectural
An r package that provides a set of tools to manipulate, visualize and
compute metrics from quantitative structural models of trees (i.e., ‘QSMs’). It can be used in various contexts of forest ecology
(i.e. biomass estimation) and tree architecture (i.e. architectural
metrics). The package is based on a new S4 class called ‘aRchi’.

### The class aRchi

All the function allowing visualization, metrics computation or QSM
modification needs an object of class aRchi as input. A class archi can
be build using the *build_aRchi()* function.
be built using the *build_aRchi()* function.

This Class contains five slots:

1. The QSM of a tree. See next section for more details.
1. The QSM of a tree. See the next section for more details.
2. The point cloud that was used to generate the QSM. It can be
imported as XYZ data.frame/data.table or a LAS.
3. The paths. It can be constructed using the *Make_path()* function
and is needed for several metric computation and QSM modifications.
and is needed for several metric computations and QSM modifications.
4. The nodes. It can be constructed using the *Make_Node()* function
and is required only for some metrics (see function
*WBEparameters()* or *LeonardoRatio()* for example)
Expand All @@ -35,69 +34,64 @@ This Class contains five slots:
The *read_QSM()* function provides methods to import QSMs generated by some of the most commonly used QSM models (treeQSM (last version and even .mat file),
SimpleTree, SimpleForest and pypeTree). The imported QSMs are automatically converted into a common QSM format defined in the aRchi class.

Since the version 2.1.0 of the package, aRchi also provides the
Since version 2.1.0 of the package, aRchi also provides the
possibility to generate QSMs. To do so, three functions are provided :

- *skeletonize_pc()* allow to build a skeleton.
- *skeletonize_pc()* allows to build a skeleton.
- *smooth_skeleton()*.
- *add_radius()* computes the radius of each cylinder based on point
- *add_radius()* computes the radius of each cylinder based on the point
distance to the skeleton.

The aRchi's QSM method was designed to build very detailed QSMs from
high quality TLS scans. However, it also allow to quickly reconstruct
high-quality TLS scans. However, it also allows us to quickly reconstruct
the coarse architecture of large point clouds of lower quality. A basic
explaination of QSMs building in aRchi is shown in the figure bellow.
explanation of QSMs building in aRchi is shown in the figure below.
<img src="figure_QSM.png" width="80%"/>

aRchi also allow to add the non reconstructed axes to a QSM using the
*add_non_reconstructed()* function.
aRchi also allows adding the non-reconstructed axes to a QSM using the *add_non_reconstructed()* function.

### Tree topology in aRchi

aRchi provides the ability to compute many topological informations from
a QSM :
aRchi provides the ability to compute a range of topological information from QSMs:

- *build_aRchi()* and *skeletonize()* include the computation of a
basic tree topology at different levels of the tree architecture
(cylinders, nodes, axes and branching orders).
- *segment_annual_shoots()* segments annual shoots in QSM of trees
that exhibit acrotonic growth pattern.
that exhibit acrotonic growth patterns.
- *add_physiological_ages()* class annual shoots into *N*
physiological ages based on their length.
- *compute_AO()* automatically identify the dominant axis of a tree
based on the informations available in the QSM.
based on the information available in the QSM.
<img src="topology.png" width="80%"/>

### Visualyzation and interaction (some tips)
### Visualization and interaction (some tips)

It is possible to visualize the QSM with or without the point cloud and
showing only the skeleton or the whole QSM (i.e with cylinder volume) in
a 3D interactive window using the function *plot()*. Different level of
show only the skeleton or the whole QSM (i.e. with cylinder volume) in
a 3D interactive window using the function *plot()*. Different levels of
organization such as branch order, segment or cylinder can be colorized.

3d plot with Branch order colorized or the QSM with point cloud:
3d plot with Branch order colourized or the QSM with point cloud:

<img src="141_plot_branch_order_pc.JPG" width="50%"/>

Some function allows modifying the QSM (e.g *cleanQSM()*,
*TruncateQSM()*, *simplify_skeleton()*) and propose a visualization of
the results.

The kept part in red and the removed part in white obtained with
The retained part is in red and the removed part is in white -- obtained with
*TruncateQSM()*:

<img src="141_truncate_QSM.JPG" width="40%"/>

It is also possible to select a part of the QSM in a 3D interactive
window by following the instruction of the function *selectinQSM_3d()*.
It allows selecting different level of organization (cylinder, branch,
segment, node….) and return a table of the selected part of the QSM with
all the informations available. For example, If the biomass and
mechanical constrains have been computed using *Compute_mf()* function,
the returned table will contains the biomass and moment of force of all
the cylinders/segments/node… selected.

Select a part of the QSM by following *selectinQSM_3d()* function
It allows selecting different levels of organization (cylinder, branch,
segment, node….) and returns a table of the selected part of the QSM with all the information available. For example, If the biomass and
mechanical constraints have been computed using the *Compute_mf()* function, the returned table will contain the biomass and moment of force of all the cylinders/segments/nodes… selected.

Select a part of the QSM by following the *selectinQSM_3d()* function
instruction:

<img src="selectin3d.jpg" width="50%"/>
Expand Down