Skip to contents

1 - Define the virtual stand from an input tree inventory

The user’s inventory plot is represented by an axis-aligned rectangle with a specified slope and aspect. The constructed virtual stand is then divided into square cells of the same size for use in the ray-tracing model.

The user’s inventoried trees are located within this virtual stand, with each tree’s crown represented by a simple 3D geometric volume whose dimensions and shape are defined by the user (see an example of crown parametrisation in André et al. 2021). The crown can be given a symmetrical shape, such as an ellipsoid (typically used for broadleaves) or a paraboloid (typically used for conifers). Users can increase the complexity of the crown representation by using asymmetric shapes and defining the crown radii at the four cardinal points, as well as the height at which the crown radius is at its maximum. This can be constructed easily and automatically in the model using parts of ellipsoids and paraboloids (i.e. two halves or eight eighths of an ellipsoid, or four quarters of a paraboloid).

2 - Discretize the annual light and cast the light rays

The SamsaraLight ray-tracing model divides annual light into a finite number of direct and diffuse rays based on the user’s definition of monthly radiation (i.e. global energy in a horizontal plane in MJ.m2MJ.m^{-2}) and the ratio of diffuse to global energy for a given month. It then calculates the angles, orientation and energy of these rays depending on whether they are direct or diffuse. The annual direct rays are discretised by following the sun’s trajectory across the year, and the annual diffuse rays are created by generating rays from all directions across the sky. The rays characteristics also depends on the plot’s latitude: there are relatively more diffuse radiations, with more horizontal rays, towards higher latitudes in Scandinavia than towards lower latitudes in Spain.

The model then cast each ray towards the centre of each cell that composed the virtual stand. The energy of each ray, measured in megajoules (MJMJ), depends on the initial energy of the ray (in MJ.m2MJ.m^{-2}) and the area of the cell. This enabled the continuous plane to be considered as a discrete surface, allowing the light reaching the ground to be modeled. Therefore, cell size is a proxy for model accuracy: smaller cells lead to a more precise and continuous estimation of light on the ground, but this comes at the expense of quadratic increases in computation time and memory usage.

3 - Determine interceptions between light rays and tree crowns

For each light ray directed towards a cell centre, the model estimates all the interceptions with the tree crowns. To do this, it estimates the solutions of a solvable system of equations based on the intersection between a simple volume (the crown) and a straight line (the ray). This leads to a polynomial solution with either 0 (no intersection), 1 (the ray is tangent to the crown and is therefore not considered) or 2 solutions (an intersection with entry and exit points). The model then stores all interceptions for each ray towards each cell centre and defines them by the path length in the crown (the distance between the entry and exit points) and the distance from the cell centre (the distance between the middle point of the path into the crown and the cell centre point).

Given that we do not know the environment around the stand, the model uses a torus system to represent plot boundaries (see the graphical representation in Courbaud et al., 2003). Trees around the border of the stand are not described, but they also participate in intercepting incoming rays. Therefore, failing to consider them could result in an underestimation of the number of interceptions, particularly for cells in close proximity to the plot boundaries. Overall, the torus system allows an infinite representation of the virtual stand to be created by joining the left and right rectangular sides together, as well as the top and bottom sides. In practice, this means that the trees outside the left boundary are considered to be the trees on the right side of the stand (and vice versa), and the trees outside the top boundary are considered to be the trees on the bottom side of the stand (and vice versa).

An algorithm has been implemented to reduce computation time by estimating which trees could potentially be intercepted by each ray. Given the height angle of a ray and the maximum height of the trees in the stand, there is a maximum radius around the casting point beyond which it would be impossible to intercept any tree crown. By estimating this radius for each ray, the computation time for determining crown interceptions is drastically reduced, as it is only necessary to iterate over trees that could potentially intercept the ray when casting it towards a given cell center.

4 - Estimate the attenuation of light throughout successive interceptions

The distance from the cell centre allows the interception of a given ray by the crowns to be ordered from the farthest (i.e. the first crown to intercept the ray) to the closest (i.e. the last crown to intercept the ray). Doing so allows us to estimate the attenuation of each ray’s energy following successive interceptions by the tree crowns, starting with the initial energy of the ray coming from above the canopy in MJMJ. The transmitted energy for each intercepted crown is estimated based on the incident energy of the ray (i.e. equal to the initial energy for the first intercepted crown, or equal to the attenuated initial energy for subsequent interceptions).

The user can choose between two transmission models that vary in how the crown is considered: (1) as a porous envelope or (2) as a turbid medium. In the porous envelope model, the transmitted energy is computed based only on a crown parameter: crown openness. This is a parameter between 0 and 1 that indicates the fraction of light energy transmitted. For example, a value of 0.7 indicates that 70% of the energy is transmitted and 30% is absorbed by the tree. Therefore, the first model is independent of the length of the ray path within the crown. The second, more complex model considers the crown to be a turbid medium and assumes that the leaves are arranged homogeneously within the canopy and not aggregated. In this case, Beer–Lambert’s law can be applied to estimate the transmitted energy based on the ray’s path length within the crown and a crown parameter: LAD (the Leaf Area Density) (see Ligot et al., 2014, for more details on the transmission models).

5 - Compute the output light variables

After estimating the transmitted energies for all rays directed towards each cell centre, the model sums up energies to deduce the total amount of energy absorbed by the tree during the year (in MJMJ). The model also estimates the total amount of energy reaching a cell centre after attenuation by the above-mentioned crowns of each ray directed towards this cell. This is standardised by cell area to give the amount of energy reaching the ground per unit area (in MJ.m2MJ.m^{-2}). The SamsaRaLight package also return more detailed output if the user specified it: the direct/diffuse energies, the matrices of interceptions (i.e. the number of intercepted rays and energies for each tree per target cell).

For each cell, the package also derives a common relative indicator to represent light on the ground, PACLPACL (percentage of above canopy light), which is the ratio of the energy reaching the cell to the energy above the canopy before interception. This allows shade to be considered not as an absolute amount of energy, which is highly dependent on site location (i.e. greater global energy in lower latitudes), but as a relative indicator dependent only on light interception by trees. In practice, the indicator ranges from 0 (full shade) to 1 (full light).This indicator is considered a better proxy for modelling the effect of light on tree regeneration (see model calibration in Unkule et al., manuscript in preparation) and for representing the impact of silviculture on ground-level light (see Ligot et al., 2014b).

For each tree, the package also derives a light competition index (LCILCI), representing the level of light competition around a focal tree. This index is based on the ratio between the actual energy intercepted by the tree and the potential energy that would have been intercepted if the tree were alone in the stand (i.e. not considering interception by surrounding competitors). When considering light as a resource, LCILCI can be interpreted as the amount of light absorbed by the tree (the supply) compared to what it would have needed based on its crown characteristics (the demand). In practice, the indicator ranges from 0 (full light) to 1 (full shade). This indicator is considered a reliable proxy for estimating the effect of light competition on the growth and survival of individual trees (see model calibration in Beauchamp et al., 2025).