Stand-level

Once all trees were detected from the normalized point cloud and the tree list was generated, metrics and variables at stand level can be estimated. These estimations can be based on different plot designs, that are circular fixed area, k-tree and angle-count plots. The sizes of the plots can be regulated by defining the radius, k and the basal area factor (BAF) respectively.

Computing stand-level metrics and variables

In order to calculate metrics and variables at stand level, the function metrics.variables is applied as follows:

metrics <- metrics.variables(tree.tls = tree.list, 
                  tree.ds = tree.ds, tree.field = tree.field,
                  plot.design = c("fixed.area", "k.tree", "angle.count"),
                  plot.parameters = data.frame(radius = 10, k = 10, BAF = 1),
                  scan.approach = "single", var.metr = NULL,
                  dbh.min = 4, h.min = 1.3, max.dist = Inf, 
                  dir.data = dir.data, save.result = FALSE, dir.result = NULL)

The input data frame is introduced in tree.tls and should contain information about the trees detected from TLS based data e.g., the output data frame of the functions tree.detection.single.scan or tree.detection.multi.scan. The path of the directory of the .txt files containing the reduced point cloud data generated by the function normalize can be specified in dir.data otherwise the current working directory will be assigned to this argument. If save.result is set to save.result = TRUE (default setting), the output files will be saved to the directory indicated in dir.result.

The scan approach, either TLS single-scan ("single") or TLS multi-scan and SLAM point clouds approaches ("multi") has to be specified in the argument scan.approach. By default, the argument is set to "multi".

If only a selection of metrics and variables should be calculated, the metrics and variables of interest can be specified as a vector in var.metr. If nothing is specified, the argument is set to NULL and all possible metrics and variables will be calculated.

Distance sampling (distance.sampling function)

The distance sampling method is used for the correction of occlusion effects. When the distance.sampling function was applied, the list with tree detection probabilities (i.e., the output file of the mentioned function) can be introduced in tree.ds. By default, this argument is set to NULL and metrics using distance sampling corrections will not be calculated. The distance.sampling is applied as follows:

tree.ds <- distance.sampling(tree.tls = tree.list,
                             id.plots = NULL,
                             strata.attributes = NULL)

The distance.sampling function computes the probability of detection of trees depending on their distance to the TLS device. Detection functions are fitted to the histogram representing the distribution of the trees relative to their horizontal distances. The computation of the detection functions is based on the data frame of the detected trees, i.e. the output file of the tree.detection.single.scan or tree.detection.multi.scan (here tree.list), which is introduced in the argument tree.tls. The plots to be analysed can be specified in id.plots by inserting a vector containing the plot identification numbers. If not specified, this argument is set to id.plots = NULL and all plots will be considered.

Two detection functions are fitted, that are the half normal and hazard rate functions, with and without dbh as covariate. These functions describe the decreasing detection probability with increasing distance. The probabilities are used for correcting estimation bias of the stand-level variables caused by the lack of detection of trees due to occlusion.

A list with three elements is generated by the distance.sampling function. The data frame tree represents the detection probabilities for each tree of all plots according to the four different detection functions. The columns P.hn and P.hn.cov show the detection probabilities calculated by the half normal function without and with dbh as covariate, while P.hr and P.hr.cov contain the probabilities according to the hazard rate function without and with covariate respectively.

head(tree.ds$tree)
#>   stratum id tree     P.hn  P.hn.cov      P.hr  P.hr.cov
#> 1       1  1    1 0.922808 0.9293580 0.9388107 0.9519734
#> 2       1  1    2 0.922808 0.8922843 0.9388107 0.9199997
#> 3       1  1    3 0.922808 0.9146826 0.9388107 0.9389643
#> 4       1  1    4 0.922808 0.9017652 0.9388107 0.9278849
#> 5       1  1    5 0.922808 0.9277925 0.9388107 0.9505678
#> 6       1  1    6 0.922808 0.9424095 0.9388107 0.9637861

The data frame par shows the parameters of the detection functions and AIC the Akaike information criterion (AIC) for every detection function fit.

head(tree.ds$par)
#>              P.hn.scale P.hn.cov.scale.intercept P.hn.cov.dbh P.hr.scale
#> X.Intercept.   35.84341                 64.17593    -2.231185   21.85271
#>              P.hr.shape P.hr.cov.scale.intercept P.hr.cov.dbh P.hr.cov.shape
#> X.Intercept.   3.544516                 26.38362   -0.7110327       3.832857

head(tree.ds$AIC)
#>       P.hn P.hn.cov     P.hr P.hr.cov
#> 1 3375.162 3376.521 3374.114 3375.123

Additional information about trees through field data

If supplementary field data is available for the sample plots, a data frame containing this information can be included in tree.field. Each row of the data frame must represent a tree and the data frame must contain at least the following columns:

  • id: plot identification number (character string or numeric), which must coincide with those in the id column of the tree.tls argument i.e., the list of trees yielded by the tree detection functions
  • tree: number of the tree
  • h.dist: horizontal distance (in m) of the tree’s center to the plot’s center, which must coincide with the centers of their corresponding TLS plots
  • dbh: tree diameter (in cm) at breast height (1.3 m)
  • h: total tree height (in m)
  • dead: integer value indicating whether the tree is dead (1) or not (NA)

Further optional columns are h.blc (height based live crown, in m), h.bdc (height based dead crown, in m), v.user (tree volume, in m3) and w.user (tree biomass, in Mg).

Selecting trees to be included in the calculations

The arguments dbh.min, h.min and max.dist are used to determine the trees that are included in the calculations. The minimum diameter at breast height (dbh) and the minimum tree height can be specified in dbh.min (in cm) and h.min (in m) and are set to 4 cm and 1.3 m respectively by default. In max.dist, the maximal horizontal distance (in m) of a tree from the plot’s center to be included in the calculations can be defined. If not specified, no trees are discarded because of their distance.

Plot design and parameters

The metrics and variables can be computed for different plot designs which are specified by plot.design and plot.parameters. There are three different plot designs, which are similar to the procedure used in conventional forest inventories. The plot design, which is to be used can be specified in plot.design. By default, all plot designs will be considered.

As the name implies, circular fixed area plots ("fixed.area") are plots with a circular area defined by the plot radius (in m). The size of k-tree plots ("k.tree") is determined by the number of trees (k) that enter the plot. The basal area factor (BAF in m2/ha) defines the size of angle-count plots ("angle.count"). The parameters radius, k and BAF have to be specified as data frame in plot.parameters. If one of these parameters is not specified, the corresponding plot design will not be considered in the calculations. To calculate the dominant height and diameter, the number of dominant trees per ha (trees/ha) can be indicated by the argument num.tree. By default, the number of dominant trees is set to 100 trees/ha.

Output files

The function metrics.variables generates a list in which each element represents one of the considered plot designs (fixed area, k-tree and angle-count plots). These elements are data frames containing the estimated metrics and variables at stand-level as columns (described below). Further columns include information about the plot, such as the identification number (id) and the stratum identification (stratum) both coinciding with the respective columns in the output file of the tree.detection functions. Each row represents a simulated plot i.e., a plot with a certain size (defined by the values for radius, k and BAF shown in the respective columns).

If save.result = TRUE, the data frames will be saved as seperate .csv files (one for each plot design) to the directory indicated in dir.result (or if not specified to the working directory). The .csv files (without row names) will be created using the write.csv function from the utils package.

Stand-level metrics

metrics[1:6, -c(3:36)]
id radius n.pts n.pts.est n.pts.red n.pts.red.est P01 P05 P10 P20 P25 P30 P40 P50 P60 P70 P75 P80 P90 P95 P99 mean.z mean.q.z mean.g.z mean.h.z median.z mode.z max.z min.z var.z sd.z CV.z D.z ID.z kurtosis.z skewness.z p.a.mean.z p.a.mode.z p.a.2m.z p.b.mean.z p.b.mode.z p.b.2m.z CRR.z L2.z L3.z L4.z L3.mu.z L4.mu.z L.CV.z median.a.d.z mode.a.d.z weibull_c.z weibull_b.z mean.rho mean.q.rho mean.g.rho mean.h.rho median.rho mode.rho max.rho min.rho var.rho sd.rho CV.rho D.rho ID.rho kurtosis.rho skewness.rho p.a.mean.rho p.a.mode.rho p.b.mean.rho p.b.mode.rho CRR.rho L2.rho L3.rho L4.rho L3.mu.rho L4.mu.rho L.CV.rho median.a.d.rho mode.a.d.rho weibull_c.rho weibull_b.rho mean.r mean.q.r mean.g.r mean.h.r median.r mode.r max.r min.r var.r sd.r CV.r D.r ID.r kurtosis.r skewness.r p.a.mean.r p.a.mode.r p.b.mean.r p.b.mode.r CRR.r L2.r L3.r L4.r L3.mu.r L4.mu.r L.CV.r median.a.d.r mode.a.d.r weibull_c.r weibull_b.r
1 10 9788.667 1796.620 444.6667 322.3520 1.1763271 4.149327 5.984327 7.555327 7.824327 7.932327 8.176327 8.646327 9.357327 10.00233 10.32033 10.68533 11.39733 12.03533 13.43333 8.686622 8.991724 8.185912 6.949452 8.601327 7.935327 15.11633 0.2503271 5.393706 2.322435 0.2673577 14.866 2.423 4.535413 -0.8176501 48.55133 69.29800 98.07203 51.44867 30.64412 1.927974 0.5746516 112023087 1088745309 10962245432 -1830560027 23849979309 1e-07 1.223295 0.7512949 4.218465 9.554482 4.455202 5.325242 3.203021 1.745464 3.977145 0.1000033 9.999991 0.1000033 8.509383 2.917085 0.6547593 9.899988 5.068693 1.782223 0.2812223 46.60337 99.99993 53.39663 0 0.4455206 39291647 289779246 2301164191 -235377229 1816420654 1e-07 2.562719 4.355199 1.560419 4.957027 10.17625 10.45033 9.878583 9.541126 10.03613 7.939957 18.04629 1.9854031 5.653233 2.377653 0.2336472 16.06089 3.486677 2.864220 0.0953509 48.15005 85.54384 51.84995 14.45609 0.5638970 151314734 1701009907 19924353576 -2918437931 44702069599 1e-07 1.765318 2.2362936 4.892407 11.09717
2 10 11222.000 2815.061 611.1667 506.5021 1.0425898 4.121590 5.898590 7.335590 7.912590 8.448590 9.110590 9.663590 10.223590 10.64959 10.79059 10.87959 11.37959 11.90259 13.43459 9.052322 9.383953 8.475137 7.020125 9.605590 10.788590 16.82859 0.2505898 6.114052 2.472661 0.2731521 16.578 2.933 4.501117 -1.0871433 60.10169 23.93897 97.82422 39.89831 75.97166 2.175783 0.5379133 101884570 1031348422 10753389699 -1735525894 23502278857 1e-07 1.586268 1.7362678 4.119804 9.970272 5.443356 6.210808 4.027388 1.859293 5.913727 0.1000035 9.999995 0.1000035 8.944021 2.990656 0.5494140 9.899991 5.164815 1.754274 -0.2467470 52.36865 99.99991 47.63135 0 0.5443358 44630617 347962930 2851615225 -380857693 3209731874 1e-07 2.607957 5.343352 1.892479 6.133511 11.06990 11.25312 10.857815 10.592588 10.95586 10.778054 18.13256 1.1552180 4.090119 2.022404 0.1826941 16.97734 2.092208 4.720474 -0.3191920 47.73584 57.02047 52.26416 42.97944 0.6104983 146515187 1723625155 20809992902 -3142095776 52214652344 1e-07 1.040121 0.2918422 6.395220 11.89079
3 10 7931.000 3522.606 644.6667 676.3987 0.7535283 3.119528 5.446528 7.362528 7.852528 8.331528 8.914528 9.612528 10.219528 10.81653 11.00853 11.29753 12.37553 13.04753 14.07753 9.177116 9.598251 8.419140 6.533724 9.612528 10.845528 15.92853 0.2505283 7.906972 2.811934 0.3064071 15.678 3.156 3.930470 -0.9284260 56.40392 29.20901 96.89650 43.59608 70.75913 3.103504 0.5761434 92236146 971093853 10589014798 -1568290062 21550099741 1e-07 1.685412 1.6684122 3.627730 10.180048 6.672340 6.885693 6.452606 6.234672 6.568161 1.0608273 9.999985 1.0608273 2.892645 1.700778 0.2548997 8.939158 3.089093 1.845899 0.1775212 48.04518 99.99990 51.95482 0 0.6672350 47469238 356252676 2796808210 -593939497 5968664998 1e-07 1.542566 5.611513 4.446252 7.316667 11.64407 11.81267 11.457447 11.243853 11.75383 1.180774 18.26309 1.1807736 3.954716 1.988647 0.1707862 17.08232 2.547107 3.769785 -0.2945041 52.92946 99.99990 47.07054 0.00000 0.6375741 139705385 1716628700 21577086613 -3163588038 55274110885 1e-07 1.274854 10.4633013 6.878014 12.45916
4 10 14815.833 2391.316 253.5000 228.6277 0.8293213 3.240321 5.588321 7.137321 7.584321 7.896321 8.796321 9.439321 9.999321 10.67532 11.14432 11.66732 13.05332 13.78632 15.08332 9.208836 9.676083 8.445007 6.697945 9.439321 9.490321 35.28932 0.2503213 8.823948 2.970513 0.3225720 35.039 3.560 3.513803 -0.5324590 54.14860 48.89439 97.14021 45.85140 51.07578 2.859793 0.2609525 28567998 308407516 3490877952 -480824942 6666412747 3e-07 1.767485 0.2814852 3.426340 10.246363 4.801007 5.401068 4.067086 3.284440 4.668175 0.6118197 9.999958 0.6118197 6.121887 2.474245 0.5153596 9.388139 3.940113 2.071634 0.2721649 47.95151 99.99967 52.04849 0 0.4801027 8901023 61927806 468289564 -66273596 510018428 5e-07 2.021859 4.189187 2.031767 5.418747 10.78393 11.08143 10.423270 9.950309 10.50525 9.212659 35.48690 2.2008590 6.504908 2.550472 0.2365066 33.28604 3.332113 3.510630 -0.3286589 44.53457 77.13968 55.46543 22.85999 0.3038850 37469021 445207961 5485056120 -766979859 12425003393 3e-07 1.618794 1.5712744 4.827566 11.76894
5 10 13582.333 4682.324 574.6667 445.8058 0.8972930 4.469293 7.796293 8.695293 9.044293 9.561293 10.514293 10.960293 11.478293 12.07729 12.46029 12.85829 13.79829 14.36229 15.39429 10.584187 10.963716 9.863618 7.785157 10.964293 10.945293 16.88629 0.2502930 8.178051 2.859729 0.2701888 16.636 3.426 5.038409 -1.1877711 58.91270 50.64919 97.66575 41.08730 49.31287 2.334252 0.6267916 151746390 1789588757 21722917667 -3028745442 47953862766 1e-07 1.718894 0.3611058 4.169715 11.649419 5.359885 6.080607 4.037565 2.053025 5.693991 0.1000073 9.999996 0.1000073 8.245425 2.871485 0.5357363 9.899989 4.844945 1.909141 -0.2794109 54.17449 99.99992 45.82551 0 0.5359887 46676336 353412044 2820930172 -397127026 3289545553 1e-07 2.451160 5.259878 1.946119 6.044389 12.22845 12.53702 11.850902 11.333547 12.47152 11.346734 18.43135 0.8785378 7.641773 2.764376 0.2260609 17.55282 4.173565 2.992009 -0.5124616 53.34442 63.06284 46.65558 36.93708 0.6634594 198422726 2648674843 36436151565 -4630530899 84906244333 1e-07 2.160321 0.8817201 5.072474 13.30724
6 10 6254.500 1674.809 448.0000 364.1714 0.6060312 3.035031 6.009031 8.205031 8.697031 9.233031 10.052031 10.662031 11.199031 11.60703 11.80803 12.04303 12.86603 13.40603 14.68603 9.948021 10.370678 9.078045 6.626844 10.662031 11.459031 16.45303 0.2500312 8.587836 2.930501 0.2945813 16.203 3.111 4.773276 -1.3195711 61.54501 33.64629 96.60452 38.45499 66.31770 3.395478 0.6046315 85730909 962580012 11098719111 -1595976775 23700818001 1e-07 1.688990 1.5110099 3.789572 11.008726 6.594068 6.949814 6.180656 5.719248 6.507049 0.9677901 9.999993 0.9677901 4.818198 2.195039 0.3328809 9.032203 3.993594 1.867432 -0.0993663 48.84616 99.99987 51.15384 0 0.6594072 38500784 303690374 2521537499 -457939362 4555795906 2e-07 1.978972 5.626277 3.308526 7.350166 12.25927 12.48402 11.988194 11.639040 12.45260 1.071134 18.74465 1.0711337 5.561109 2.358200 0.1923605 17.67352 2.645716 4.167097 -0.6340967 54.22377 99.99987 45.77623 0.00000 0.6540144 124231693 1625048934 21779500092 -2943918051 54116275529 1e-07 1.326611 11.1881392 6.047834 13.20862

The stand-level metrics are statistical descriptive values, such as percentiles, standard deviation or means, as well as the number of points belonging to the normal section of the point cloud.

The values n.pts, n.pts.est, n.pts.red and n.pts.red.est indicate the number of points and the estimated number of points respectively that belong to the tree’s normal section (1.3 m +/- 0.05 m). This is calculated for the original point cloud (n.pts, n.pts.est) and the reduced point cloud (n.pts.red, n.pts.red.est).

Furthermore, the height percentiles (P01, P05, P10, P20, P25, P30, P40, P50, P60, P70, P75, P80, P90, P95, P99, numbers indicating the k-th percentile) are calculated for the z coordinate of the TLS point cloud. Therefore they denominate the height (in m) above ground level.

Statistics of the z, rho and r

To describe the tendencies and distribution of the spherical coordinates z, ρ (horizontal distance, rho) and r (euclidean distance), the following statistics are calculated:

  • arithmetic (mean.arit.z/rho/r), quadratic (mean.qua.z/rho/r), geometric (mean.geom.z/rho/r) and harmonic means (mean.harm.z/rho/r)
  • median (median.z/rho/r)
  • mode (mode.z/rho/r)
  • variance (var.z/rho/r)
  • standard deviation (sd.z/rho/r)
  • coefficient of variation (CV.z/rho/r)
  • range (D.z/rho/r)
  • interquartile range (ID.z/rho/r)
  • maximum (max.z/rho/r)
  • minimum (min.z/rho/r)
  • kurtosis (kurtosis.z/rho/r)
  • skewness (skewness.z/rho/r)
  • percentage of points above the arithmetic mean (p.a.mean.z/rho/r) and the mode (p.a.mode.z/rho/r)
  • percentage of points below the arithmetic mean (p.b.mean.z/rho/r) and the mode (p.b.mode.z/rho/r)
  • percentage of points above a height of 2 m (p.a.2m.z, only for the z coordinate)
  • percentage of points below a height of 2 m (p.b.2m.z, only for the z coordinate)
  • L-moments of order 2, 3 and 4 (L2.z/rho/r, L3.z/rho/r and L4.z/rho/r)
  • third and forth central L-moments (L3.mu.z/rho/r and L4.mu.z/rho/r)
  • ratio of L1 and L2 moments (L.CV.z/rho/r)
  • median of the absolute deviation from the overall median (median.a.d.z/rho/r)
  • mode of the absolute deviation from the overall mode (mode.a.d.z/rho/r)
  • Canopy relief ratio i.e., the ration of mean.z/rho/r to max.z/rho/r (CRR.z/rho/r)
  • scale and shape parameters of the Weibull distribution fitted for the spherical coordinates (weibull_c.z/rho/r, weibull_b.z/rho/r)

Stand-level variables

metrics[1:6, 1:36]
id radius N.tls N.hn N.hr N.hn.cov N.hr.cov N.sh G.tls G.hn G.hr G.hn.cov G.hr.cov G.sh V.tls V.hn V.hr V.hn.cov V.hr.cov V.sh d.tls dg.tls dgeom.tls dharm.tls h.tls hg.tls hgeom.tls hharm.tls d.0.tls dg.0.tls dgeom.0.tls dharm.0.tls h.0.tls hg.0.tls hgeom.0.tls hharm.0.tls
1 10 222.8169 241.4554 237.3396 239.9341 234.2128 230.5601 12.83139 13.90472 13.66770 13.81712 13.48764 13.27729 72.26462 78.30949 76.97464 77.81611 75.96057 74.77589 26.63218 27.07807 26.17896 25.72557 11.98963 12.02086 11.95768 11.92508 31.50910 31.60757 31.40772 31.30362 12.77989 12.78591 12.77382 12.76769
2 10 350.1409 379.4298 372.9622 374.9814 366.2799 364.2843 18.91537 20.49762 20.14823 20.25731 19.78724 19.67943 101.80664 110.32268 108.44214 109.02925 106.49921 105.91896 25.75150 26.22655 25.29375 24.86175 11.59380 11.66199 11.51966 11.43902 32.68378 32.75790 32.60870 32.53280 12.41950 12.44332 12.39576 12.37212
3 10 381.9719 413.9235 406.8678 414.2445 403.9974 392.6248 23.55858 25.52924 25.09407 25.54904 24.91703 24.21562 115.70695 125.38573 123.24843 125.48298 122.37892 118.93393 27.86976 28.02296 27.71227 27.55093 11.38201 11.44246 11.32332 11.26633 31.17303 31.20949 31.13698 31.10141 11.78541 11.93916 11.62884 11.47255
4 10 254.6479 275.9490 271.2452 274.7699 268.1497 265.5833 22.15673 24.01012 23.60084 23.90752 23.33151 23.10820 124.40696 134.81348 132.51548 134.23744 131.00320 129.74938 32.71822 33.28417 32.14873 31.58609 12.69636 12.81602 12.56975 12.43597 38.69937 38.87412 38.53131 38.37101 12.55974 12.57650 12.54186 12.52257
5 10 318.3099 344.9362 339.0565 360.7488 349.0381 334.1288 21.34794 23.13368 22.73934 24.19417 23.40878 22.40886 117.11494 126.91149 124.74819 132.72937 128.42070 122.93514 28.64160 29.22187 27.98239 27.23715 12.77420 12.99329 12.47878 12.08340 34.98638 35.05872 34.91178 34.83518 13.39910 13.40467 13.39359 13.38812
6 10 254.6479 275.9490 271.2452 276.1346 269.3076 260.6298 15.96468 17.30011 17.00522 17.31175 16.88375 16.33971 89.59139 97.08563 95.43073 97.15093 94.74903 91.69596 28.06921 28.25304 27.88269 27.69453 12.82381 12.84689 12.80020 12.77611 31.41186 31.44841 31.37513 31.33830 12.79379 12.81666 12.77130 12.74923

The variables are estimated based on the tree attributes of the detected trees from the point cloud data (output of the functions tree.deteection.single.scan and tree.deteection.multi.scan) similar to the procedure of conventional forest inventories. The values are computed at stand-level and are therefore extended to an area of one ha.

Stand density (N), volume (V) and basal area (G)

The stand density (N.tls, trees/ha) is calculated by the following equations. For the circular fixed area and k-tree plots, N.tls is calculated by

$$ N.tls=\frac{10000}{\pi R^2}\cdot n $$

with R being the radius of the plot (in m) and n the number of detected trees. The density of angle-count plots is calculated by

$$ N.tls=\sum_{i=1}^{n} \frac{BAF}{g_i} $$

with BAF being the basal area factor (in m2/ha) and gi the basal area of the tree i (in m2).

The basal area (G.tls, in m2/ha) is estimated for circular fixed area and k-tree plots by the following equation:

$$ G.tls=\frac{10000}{\pi R^2}\sum_{i=1}^{n} g_i $$

and for angle-count plots, the following equation is applied:

G.tls = BAF ⋅ n

The stem volume (V.tls, in m3/ha) is estimated by modelling the stem profile as a paraboloid. The volume is calculated as the volume of the revolution of the paraboloid function. The total heights of the detected trees are estimated as the 99th percentile of the points of the z coordinate delimited by Voronoi polygons (hP99i, in m). The equation used for the calculation for circular fixed area and k-tree plots is

$$ V.tls=\frac{10000}{\pi R^2}\sum_{i=1}^{n} \pi \cdot \frac{h_{P_{99}i}^2}{2} \cdot \frac{(\frac{1}{2} \cdot dbh_i)^2}{(h_{P_{99}i} - 1.3)^2} $$

and for angle-count plots is

$$ V.tls=\sum_{i=1}^{n} \frac{BAF}{g_i} \cdot \pi \cdot \frac{h_{P_{99}i}^2}{2} \cdot \frac{(\frac{1}{2} \cdot dbh_i)^2}{(h_{P_{99}i} - 1.3)^2} $$

Occlusion correction

The above mentioned calculations of the stand-level variables N, V and G do not consider possible occlusions of trees. Therefore, different occlusion correction approaches are included in the function.

For angle-count plots, the occlusion correction is based on the Poisson attenuation model. This approach calculates geometric gap probabilities which decreases with increasing distance from the TLS device and follow a Poisson distribution. The calculations of stand density, volume and basal area are corrected with a factor accounting for the gap probabilities and the corrected variables are called N.pam, V.pam and G.pam respectively. For further details see Strahler et al. (20081) and Lovell et al. (20112).

For the other two plot designs (circular fixed area and k-tree plots) different occlusion correction approaches are applied. One approach is based on distance sampling data and can therefore only be used when the function distance.sampling was used (i.e., when the tree.ds argument is specified other than NULL). Functions based on point transect sampling that describe how the probability of tree detection decreases with increasing distance from the TLS device are used for the calculation. These functions are applied for the calculation of the variables N.hn/V.hn/G.hn and N.hr/V.hr/G.hr and are Half-Normal and Hazard-Rate respectively. Additionally, N.hn.cov/V.hn.cov/G.hn.cov and N.hr.cov/V.hr.cov/G.hr.cov are calculated with expanding the scale component of the function with dbh as covariate.

The other approach corrects shadowing effects. Tthis method calculates an expansion factor to correct the variables. The expansion factor is based on the percentage of the shaded area i.e., unsample area which is not seen from the TLS device due to masking by trees. The corrected calculated variables are called N.sh/V.sh/G.sh. For more details see Seidel and Ammer (20143).

Mean and dominant heights (h) and diameters (d)

The mean heights (in m) and diameters (in cm) are calculated by the arithmetic (h.tls, d.tls), quadratic (h.g, d.g), geometric (h.geom, d.geom) and harmonic means (h.harm, d.harm). To calculate the dominant heights and diameters, only the n largest trees per hectar are considered. If not otherwise specified in the argument num.tree (see above), the number of dominant trees per hectare is set to 100 trees/ha. Dominant heights and diameters are also calculated as the arithmetic (h.0.tls, d.0.tls), quadratic (h.0.g, d.0.g), geometric (h.0.geom, d.0.geom) and harmonic means (h.0.harm, d.0.harm).


  1. Strahler, A.H., Jupp, D.L.B., Woodcock, C.E., Schaaf, C.B., Yao, T., Zhao, F., Yang, X., Lovell, J., Culvenor, D., Newnham, G., Ni-Miester, W., Boykin-Morris, W., 2008. Retrieval of forest structural parameters using a ground-based lidar instrument (Echidna®). Can. J. Rem. Sens. 34 (Suppl. 2), S426–S440. https://doi.org/10.5589/m08-046.↩︎

  2. Lovell, J.L., Jupp, D.L.B., Newnham, G.J., Culvenor, D.S., 2011. Measuring tree stem diameters using intensity profiles from ground-based scanning lidar from a fixed viewpoint. ISPRS J. Photogrammetry Remote Sens. 66 (1), 46–55. https://doi.org/10.1016/j.isprsjprs.2010.08.006.↩︎

  3. Seidel, D., Ammer, C., 2014. Efficient measurements of basal area in short rotation forests based on terrestrial laser scanning under special consideration of shadowing. iFor. Biogeosci. For. 7 (4), 227–232. https://doi.org/10.3832/ifor1084-007.↩︎