The package implements a number of popular equations, as well as two new ones, for canopy light transmission derived from airborne laser scanning data.


Point-density normalized gap fraction:

\[\begin{align*} P_\text{pdn} &= \sum_{i=1}^{n} \sum_{j=1}^{n} \left(\frac{{n_\text{first return}}_{i,j}} {\rho_\text{first return} / {{A_\text{sector}}_{i,j}}} \times \frac{A_{\text{sector}_{i,j}}}{A_\text{hemisphere}}\right) \end{align*}\]

Hemispherical Voronoi gap fraction using an equidistant lens model:

\[\begin{align*} x_\text{equidistant} &= \left( \frac{x}{\sqrt{x^2+y^2}} \right) \times atan2 \left( \sqrt{x^2+y^2},z \right) \\ y_\text{equidistant} &= \left( \frac{y}{\sqrt{x^2+y^2}} \right) \times atan2 \left( \sqrt{x^2+y^2},z \right) \\[4pt] p &= \left( x_\text{equidistant}, y_\text{equidistant} \right) \\[4pt] V_a(A_i) &= p|d_a (p,A_i) \le d_a(p,A_j), j \ne i, j=1, \cdots, n \\ P_\text{hv} &= 1 - \sum_{i=1}^{n} V_a(A_i) \text{ where } h_i \ge h_\text{threshold} \end{align*}\]

Beer-Lambert Law canopy gap fraction:

\[\begin{align*} L_e &= 2\sum_{i=1}^n - \ln\overline{P(\theta_i)}\cos{\theta} \frac{\sin\theta_i}{\sum_{j=1}^n\sin\theta_j} \\ P_o &= \sum_{i=1}^n \exp \left (\frac{-L_eG(\theta_i)}{\cos\theta_i} \right) \end{align*}\]

Canopy-to-total-return ratio:

\[\begin{align*} VCC_r &= \frac {\sum_{i=1}^n n_{\text{all}_i} \gt 1.25 \text{ m}} {\sum_{i=1}^n n_{\text{last}_i} + n_{\text{single}_i}} \end{align*}\]

Canopy-to-total-first-return ratio:

\[\begin{align*} VCC_\text{fr} &= \frac {\sum_{i=1}^n n_{\text{all}_i} \gt 1.25 \text{ m}} {\sum_{i=1}^n n_{\text{first}_i}} \end{align*}\]

Intensity-return ratio:

\[\begin{align*} VCC_\text{ir} &= \frac {\sum_{i=1}^n I_{\text{ground}_i} \gt 1.25 \text{ m}} {\sum_{i=1}^n I_{\text{all}_i}} \end{align*}\]

Beer’s Law modified intensity-return ratio:

\[\begin{align*} VCC_\text{bl} &= \frac {\frac {\sum_{i=1}^n I_{\text{ground single}_i} } {\sum_{i=1}^n I_{\text{all}_i}} + \sqrt \frac {\sum_{i=1}^n I_{\text{ground last}_i}} {\sum_{i=1}^n I_{\text{all}_i}} } {\frac {\sum_{i=1}^n I_{\text{first}_i} + I_{\text{single}_i}} {\sum_{i=1}^n I_{\text{all}_i}} + \sqrt \frac {\sum_{i=1}^n I_{\text{intermediate}_i} + I_{\text{last}_i}} {\sum_{i=1}^n I_{\text{all}_i}} } \end{align*}\]

Above-height cover index:

\[\begin{align*} VCC_\text{aci} &= \frac {\sum_{i=1}^n n_{\text{single}_i} + n_{\text{all}_i \gt 1.25 \text{ m}} + n_{\text{intermediate}_i} + n_{\text{last}_i}} {\sum_{i=1}^n n_{\text{all}_i}} \end{align*}\]

First-echo cover index:

\[\begin{align*} VCC_\text{fci} &= \frac {\sum_{i=1}^n n_{\text{single}_i \gt 1.25 \text{ m}} + n_{\text{first}_i \gt 1.25 \text{ m}}} {\sum_{i=1}^n n_{\text{single}_i} + n_{\text{first}_i}} \end{align*}\]

Solberg’s cover index:

\[\begin{align*} VCC_\text{sci} &= \frac {\sum_{i=1}^n n_{\text{single}_i \gt 1.25 \text{ m}} + \frac{1}{2} (n_{\text{first}_i \gt 1.25 \text{ m}} + n_{\text{last}_i \gt 1.25 \text{ m}})} {\sum_{i=1}^n n_{\text{single}_i} + \frac{1}{2} (n_{\text{first}_i} + n_{\text{last}_i})} \end{align*}\]

Canopy-to-total-pixel ratio:

\[\begin{align*} VCC_p &= \frac {\sum_{i=1}^n n_{\text{CHM}_i \gt 1.25 \text{ m}}} {\sum_{i=1}^n n_{\text{CHM}_i}} \end{align*}\]

Cartesian-Voronoi fractional cover:

\[\begin{align*} V_a(A_i) &= p|d_a (p,A_i) \le d_a(p,A_j), j \ne i, j=1, \cdots, n \\ P_\text{cv} &= 1 - \sum_{i=1}^{n} V_a(A_i) \text{ where } h_i \ge h_\text{threshold} \end{align*}\]


Feel free to submit a pull request to add new equations!