Light behaviors
In this document:
Snags in light calculations
Light parameters
Quadrat-based GLI light behavior
GLI light behavior
Sail light behavior
Constant full GLI behavior
Beer's law light filter behavior
GLI Map Creator behavior
GLI Points File Creator behavior
Gap Light behavior
Storm Light behavior
Basal Area Light behavior
Light is the key resource for trees in the SORTIE model. A tree's growth, and therefore its probability of mortality and reproductive ability, is a function of the amount of light it receives. Consequently, great care is taken in SORTIE to calculate the amount of light that each tree gets - in fact, these calculations take up more processing time than any other during model runs.
There are two basic light index types used by SORTIE to describe the amount of light a tree receives. The first is the Global Light Index, or GLI. GLI is the percentage of full sun received at a point. The second index is the Sail Light index, which is the proportion of shade seen at a point, from none to total. (The name Sail Light comes from the fact that the shape of shading neighbor tree crowns is approximated by a 2D rectangle, like a sail).
How light calculations work
In order to calculate the amount of light a tree gets, SORTIE simulates taking a fisheye photograph over each tree to determine which parts of the sky are blocked by taller trees nearby. SORTIE determines how much light comes from different parts of the sky and takes this into account, so shading neighbors in different
directions will have different impacts on the total amount of light a tree gets.
The fisheye photo can be taken at one of two positions - either at the top of the crown or at mid-crown. The major difference between the two is that when the photograph is taken at mid-crown, trees near the same height as the target tree will be included in the shading effects. This can make a big difference in even-age stands.
Sky Simulation
At the beginning of a run, if light behaviors are being used, the amount of light coming from each part of the sky for the plot's location is calculated. The sun's position in the sky is tracked throughout the growing season. Diffuse radiation, assumed to be isotropic (coming equally from all directions), is then added to
the direct beam radiation. Below the minimum solar angle, it is assumed that no light comes from those portions of the sky because of the density of the surrounding forest. (It is wise not to set this angle too low - otherwise SORTIE must look very far away for shading neighbors.)
To determine the amount of sun coming from each portion of the sky, the sky is first divided into a hemispheric grid. For GLI calculations, the grid cells are equal-area segments of a user-settable resolution. For Sail Light calculations, the sky is divided into one-degree-sized grid cells. For each day in the growing season, the times of sunrise and sunset are calculated, and then the sun's position in the sky grid is tracked at 5-minute intervals throughout the day. (The equations are below.) At each solar position, the amount of direct beam radiation received from the sun at that position is calculated, taking into account atmospheric effects. Each sky segment keeps track of the total amount of direct beam radiation coming from it for the duration of the growing season.
The total amount of light in the sky is the amount of direct beam radiation plus the amount of diffuse radiation. Once the total amount of direct beam radiation is known, the amount of diffuse radiation is calculated accordingly and added equally to all portions of the sky. Each sky segment is then relativized to hold the percentage of total light coming from that segment.
Determining a tree's light index
For each timestep, SORTIE calculates the amount of light each tree receives by simulating a fisheye photograph. To "take" the photo, the model looks at the hemisphere of sky around and above a tree and determines which portions of it are blocked by neighboring trees. It then totals up how much light is left to
reach the tree.
Only tree crowns block light in the model. Trunks do not shade. Because seedlings are modeled as sticks with no crowns, they don't shade either.
The first step in creating the simulated fisheye photo is to determine how far from the tree to search for shading neighbors. For GLI, this is done by comparing the height of the fisheye photo to the maximum possible tree height and determining how far away a tree of this height could be and still have its crown appear in the sky above the minimum solar angle. All trees within this search radius that are taller than the height of the fisheye photo (and thus can be "seen" by it) are added into the "photo." For Sail Light, the search distance is specified by the user.
To add a shading neighbor to the photo, the light behavior determines the amount and location of sky covered by its crown. In a GLI calculation, neighbor crowns are approximated as cylinders. In a Sail Light calculation, neighbor crowns are approximated as 2-D rectangles with a width equal to their crown diameter and a height equal to their crown height (or, as an added simplification, the behavior can assume the crowns of shading neighbors extend all the way to the ground).
The amount of radiation received from the portion of the sky blocked by the shading neighbor is multiplied by the light transmission coefficient for the neighbor's species. The effects of multiple neighbors blocking the same patch of sky are multiplicative.
Once all shading neighbors have been added to the fisheye photo, the amount of light that can still be seen from each region of the sky is totaled up into the appropriate index.
Sky Simulation Equations
All equations are from Iqbal, 1983.
At a given (solar) time, the sun's zenith angle is calculated by:
cos θ = sin δ sinφ + cos δ cos φ cos ω
and its azimuth angle is calculated by:
cos ψ = (sin α sin φ - sin δ)/cos α cos φ
where:
- θ = angle from zenith, in degrees
- δ = solar declination, in degrees
- φ = Plot Latitude, in decimal degrees parameter (from Plot)
- α = the solar altitude (angle from horizon), in degrees
- ω = the hour angle (solar time).
Azimuth here is south zero, east positive.
Solar declination is calculated by
δ = 0.006918 - 0.399912 cos Γ + 0.070257 sin Γ - 0.006758 cos 2Γ + 0.000907 sin 2Γ - 0.002697 cos 3Γ + 0.00148 sin 3Γ
where δ = solar declination in radians and Γ is the day
angle, in radians.
The day angle is calculated by Γ = 2π(d - 1)/365 where
Γ is the day angle in radians and d is the Julian day number
(day of the year between 1 and 365).
So, once we finally have the azimuth and altitude angles for
the sun's position in the sky, we can calculate the amount of
direct beam radiation coming from it and add it to the
appropriate grid cell. The direct beam radiation equation is
I = E0*τm*cos(θ)
where
- I is the beam radiation
- E0 is the earth's eccentricity
- τ is the Clear Sky Transmission Coefficient parameter
- m is the optical mass of the atmosphere
- θ is the zenith angle of the sun.
Eccentricity is calculated by
E0 = 1.000110 + 0.034221 cos Γ + 0.001280
sin Γ + 0.000719 cos 2Γ + 0.000077 sin 2Γ
where Γ is the day angle (equation above).
Optical mass of the atmosphere is calculated by
m = sec(θ)
where θ is the zenith angle of the sun. SORTIE uses a
numerical approximation method instead of the sec to correct at
low altitudes.
This process is repeated for each day in the growing season. The growing season starts with the First Day of Growing Season parameter and ends with the Last Day of Growing Season parameter.
Snags are standing dead trees (more in the trees topic). They can block light like live trees do. For SORTIE purposes, snag crowns are frozen in the shape they had when the tree died, but they transmit more and more light as they lose branches. SORTIE tracks a snag's age in order to replicate this decay. You define three snag age classes and a light transmission coefficient for each. For as long as a snag stands, it will block the light of neighboring trees, but to a lesser degree through time.
You don't have to include snags in light calculations. If you do not have any behaviors in your run that either create snags or directly work with them, then your run is classified as "snag-unaware" and snags will not be created. In this case, the snag parameters are not required. However, if your run is "snag-aware" and snags may be created, you must supply the snag light transmission parameters.
- Beam Fraction of Global Radiation The fraction of total solar radiation that is direct beam radiation (as opposed to diffuse). Expressed as a value between 0 and 1. Used by all behaviors making GLI or Sail Light calculations. See equations above for more on how this is used.
- Calculated Crown Depth When the shape of a tree's shading neighbors is assessed to see how much light each blocks, their crowns can either conform to each neighbor's true crown height or they can be approximated at the full height of the tree. Used only by the Sail light behavior.
- Clear Sky Transmission Coefficient Used to determine the amount of solar radiation seen at the plot location. Applies to all behaviors making GLI or Sail Light calculations. See equations above for more on how this is used.
- Basal Area Light - Angiosperm "b" Parameter The "b" value used to calculate mean GLI from angiosperm basal area. Used by the Basal Area Light behavior.
- Basal Area Light - Angiosperm "c" Parameter The "c" value used to calculate mean GLI from angiosperm basal area. Used by the Basal Area Light behavior.
- Basal Area Light - Conifer "b" Parameter The "b" value used to calculate mean GLI from conifer basal area. Used by the Basal Area Light behavior.
- Basal Area Light - Conifer "c" Parameter The "c" value used to calculate mean GLI from conifer basal area. Used by the Basal Area Light behavior.
- Basal Area Light - Lognormal PDF Sigma Sigma value for the lognormal probability distribution. Used by the Basal Area Light behavior.
- Basal Area Light - Mean GLI "a" Parameter The "a" value used to calculate mean GLI from basal area. Used by the Basal Area Light behavior.
- Basal Area Light - Minimum BA Change for New GLI (m2) The amount by which total basal area (angiosperm plus conifer), in square meters, must change in order to trigger a new GLI calculation in a grid cell. Used by the Basal Area Light behavior.
- Basal Area Light - Minimum DBH for Trees The minimum DBH, in cm, of trees that count towards basal area. Used by the Basal Area Light behavior.
- Basal Area Light - Species Type Whether each species is a conifer or an angiosperm, for the purposes of light calculations. Used by the Basal Area Light behavior.
- First Day of Growing Season The first day of the growing season, as a Julian day (number between 1 and 365). Trees only get light during the growing season. Used by all behaviors making GLI or Sail light calculations.
- GLI Points Input File The file containing the points for which to calculate GLI. This file will overwrite any existing points. For best results, enter a fully-qualified pathname (i.e. "c:\sortie\my_file.txt"). File format is below. Used by the GLI Points File Creator behavior.
- GLI Points Output File The file to which the GLI Points File Creator behavior will write its results each timestep. Any existing data in this file will be overwritten at the start of the run.
- Height at Which GLI is Calculated for GLI Map, in meters Height at which the GLI Map Creator behavior calculates GLI.
- Height at Which GLI is Calculated for Quadrats, in meters Height at which the Quadrat-based GLI light behavior calculates GLI.
- Height of Fisheye Photo When a fish-eye photo is simulated for a tree, this positions the photo at either the top of the crown or at mid-crown. Applies to all behaviors making GLI or Sail light calculations. Seedlings always get fisheye photos at top-of-crown no matter what this value is.
- Height of Light Filter, in m Height, in meters, at which the Beer's law light filter hangs. Only applies to the Beer's law light filter behavior.
- Last Day of Growing Season The last day of the growing season, as a Julian day (number between 1 and 365). Trees only get light during the growing season. Used by all behaviors making GLI or Sail light calculations.
- Light Transmission Coefficient (0-1) Fraction of light transmitted through the tree crown for each species. Expressed as a fraction between 0 and 1. A value must be provided for all species, even if they don't all use light.
- Light Filter Light Transmission Coefficient Amount of light that is blocked by the light filter. Only applies to the Beer's law light filter behavior.
- Minimum Solar Angle for GLI Light, in rad This is the minimum angle at which sunlight is seen, in radians. Below this value the sky is assumed to be dark due to shading neighbors. This value applies to the GLI light behavior.
- Minimum Solar Angle for GLI Map Creator, in rad This is the minimum angle at which sunlight is seen, in radians. Below this value the sky is assumed to be dark due to shading neighbors. This value applies to the GLI Map Creator behavior.
- Minimum Solar Angle for GLI Points Creator, in rad This is the minimum angle at which sunlight is seen, in radians. Below this value the sky is assumed to be dark due to shading neighbors. This value applies to the GLI Points File Creator behavior.
- Minimum Solar Angle for Quadrat Light, in rad This is the minimum angle at which sunlight is seen, in radians. Below this value the sky is assumed to be dark due to shading neighbors. This value applies to the Quadrat-based GLI light behavior, if the value should be different from the value being used by the GLI light behavior.
- Number of Altitude Sky Divisions for GLI Light Calculations Number of grid cells into which the sky is divided from horizon to zenith, for the purpose of calculating light direction. Used by the GLI light behavior, as well as the Quadrat-based light behavior if a different value is not specified for it.
- Number of Altitude Sky Divisions for GLI Map Creator Calculations Number of grid cells into which the sky is divided from horizon to zenith, for the purpose of calculating light direction. Used by the GLI Map Creator behavior. If the GLI light behavior is also used, this value is not required.
- Number of Altitude Sky Divisions for GLI Points Creator Number of grid cells into which the sky is divided from horizon to zenith, for the purpose of calculating light direction. Used by the GLI Points File Creator behavior. If the GLI light behavior is also used, this value is not required.
- Number of Altitude Sky Divisions for Quadrat Light Calculations Number of grid cells into which the sky is divided from horizon to zenith, for the purpose of calculating light direction. Used by the Quadrat-based light behavior. If the GLI light behavior is also used, this value is not required.
- Number of Azimuth Sky Divisions for GLI Light Calculations Number of grid cells into which the sky is divided around the horizon, for the purpose of calculating light direction. Used by the GLI light behavior, as well as the Quadrat-based light and GLI Map Creator behaviors if different values are not specified for them.
- Number of Azimuth Sky Divisions for GLI Map Creator Calculations Number of grid cells into which the sky is divided around the horizon, for the purpose of calculating light direction. Used by the GLI Map Creator behavior. If the GLI light behavior is also used, this value is not required.
- Number of Azimuth Sky Divisions for GLI Points Creator Number of grid cells into which the sky is divided around the horizon, for the purpose of calculating light direction. Used by the GLI Points File Creator behavior. If the GLI light behavior is also used, this value is not required.
- Number of Azimuth Sky Divisions for Quadrat Light Calculations Number of grid cells into which the sky is divided around the horizon, for the purpose of calculating light direction. Used by the Quadrat-based light behavior. If the GLI light behavior is also used, this value is not required.
- Sail Light Maximum Shading Neighbor Distance, in meters The radius, in meters, from a tree for which neighbors will be searched who can shade that tree. Used only in the Sail Light behavior.
- Sail Light Minimum Solar Angle, in degrees The azimuth angle, in degrees, below which it is assumed trees will see no light. Used only by the Sail Light behavior.
- Snag Age Class 1 Light Transmission Coefficient (0-1) Fraction of light transmitted through the snag tree crown for each species. Applies to those snags whose age is less than or equal to "Upper Age (Yrs) of Snag Light Transmission Class 1". Expressed as a fraction between 0 and 1. If your run does not work with snags, you can ignore this. Otherwise, a value must be provided for all species. Used by all behaviors making GLI or Sail Light calculations.
- Snag Age Class 2 Light Transmission Coefficient (0-1) Fraction of light transmitted through the snag tree crown for each species. Applies to those snags whose age is greater than "Upper Age (Yrs) of Snag Light Transmission Class 1", but is less than or equal to "Upper Age (Yrs) of Snag Light Transmission Class 2". Expressed as a fraction between 0 and 1. If your run does not work with snags, you can ignore this. Otherwise, a value must be provided for all species. Used by all behaviors making GLI or Sail Light calculations.
- Snag Age Class 3 Light Transmission Coefficient (0-1) Fraction of light transmitted through the snag tree crown for each species. Applies to those snags whose age is greater than "Upper Age (Yrs) of Snag Light Transmission Class 2". Expressed as a fraction between 0 and 1. If your run does not work with snags, you can ignore this. Otherwise, a value must be provided for all species. Used by all behaviors making GLI or Sail Light calculations.
- Storm Light - Intercept of Light Function Intercept of the function to determine light level. Used by the Storm Light behavior.
- Storm Light - Max Radius (m) for Damaged Neighbors The maximum distance, in meters, within which the Storm Light behavior searches for damaged trees. Used by the Storm Light behavior.
- Storm Light - Max Years Damaged Trees Affect Light The maximum amount of time, in years, after storm damage that a tree will still be counted in the number of damaged trees. Used by the Storm Light behavior.
- Storm Light - Minimum Trees For Full Canopy The minimum number of adult trees and snags within the value in Storm Light - Max Radius (m) for Damaged Neighbors for the point to be considered under full canopy. Used by the Storm Light behavior.
- Storm Light - Slope of Light Function Slope of the function to determine light level. Used by the Storm Light behavior.
- Storm Light - Std. Dev. or Clump Parameter If the value in the Storm Light - Stochasticity parameter is "Normal" or "Lognormal", the standard deviation of the probability distribution function; if the value is "Negative Binomial", the clumping parameter for the PDF; if "Deterministic", this value is ignored. Used by the Storm Light behavior.
- Storm Light - Stochasticity What method to use for randomizing light values, if desired. Used by the Storm Light behavior.
- Upper Age (Yrs) of Snag Light Transmission Class 1 The upper age limit, in years, defining the first age class of snag light transmission. Snags with an age less than or equal to this age have a light transmission coefficient matching "Snag Age Class 1 Light Transmission Coefficient". If your run does not work with snags, you can ignore this. Used by all behaviors making GLI or Sail Light calculations.
- Upper Age (Yrs) of Snag Light Transmission Class 2 The upper age limit, in years, defining the second age class of snag light transmission. Snags with an age greater than the upper limit for size class 1, but less than or equal to this age, have a light transmission coefficient matching "Snag Age Class 2 Light Transmission Coefficient". Snags with an age greater than this value are in age class three. If your run does not work with snags, you can ignore this. Used by all behaviors making GLI or Sail Light calculations.
For more on what GLI is and how it is calculated, see above.
How it works
This behavior uses a grid object, called
Quadrat GLI, to help it
assign GLI values to the trees to which it is assigned. The grid
cells are the quadrats, in this case; this is a throwback to old
SORTIE terminology. Each grid cell in which there is a tree to
which this behavior applies has a GLI value calculated at its
center, at a height that the user specifies. All other trees to
which this behavior applies that are in that same grid cell get
that same GLI value. This behavior saves having to calculate a
different GLI value for each tree. GLI values range from 0 (no sun) to 100 (full sun).
How to apply it
This behavior may be applied to seedlings, saplings, and adults
of any species.
GLI light
For more on what GLI is and how it is calculated, see above.
How it works
This behavior calculates a Global Light Index (GLI) value for
each individual of each tree type to which it is assigned. GLI values range from 0 (no sun) to 100 (full sun).
How to apply it
This behavior may be applied to seedlings, saplings, and adults
of any species.
Sail light
For more on what the Sail Light index is and how it is
calculated, see above.
How it works
This behavior calculates a Sail Light index value for each
individual of each tree type to which it is assigned. Sail Light values go from 0 (full sun) to 1 (full shade).
How to apply it
This behavior may be applied to seedlings, saplings, and adults
of any species.
Constant full GLI
How it works
This assigns a GLI value of full sun (100%) to all trees to which
it is assigned.
How to apply it
This behavior may be applied to seedlings, saplings, and adults
of any species.
Beer's law light filter
How it works
This behavior simulates a filter that reduces light according
to Beer's Law.
Imagine a fog that hangs out on the forest floor and ends
abruptly at a certain height. All trees shorter than the top of
the fog layer will have their light attenuated but not blocked
completely. The closer they get to the top of the fog the more
light is let in. The amount of light which actually gets through
is calculated according to Beer's Law, where transmission =
e-az, where a is the Light Filter Light Transmission Coefficient parameter and z = thickness of the filter, in meters (which is the
distance from the light point to the top of the filter - the Height of Light Filter, in m parameter). This
filter behavior can be used to, for instance, replicate the
effects of an herbaceous layer in reducing light to young
seedlings. The height of the filter is randomized slightly each
time the thickness of the filter over the light point is
calculated to introduce a stochastic element.
Trees can be given a respite from the effects of the filter.
This behavior does not set the respite counter but it will
respect any values which another behavior has put in.
Trees can be given a rooting height in addition to their
normal height. This value is added to their existing height to
get their effective height, which is what will be applied when
determining the thickness of the filter overhead. Again, this
behavior does not set this height but will use it if another
behavior sets it.
This behavior DOES NOT ACTUALLY CALCULATE LIGHT LEVELS. Any
tree species and types to which this filter is applied must also
have one of the other light behaviors assigned to it. This
behavior assumes the value is a GLI value; using Sail Light will
probably not produce good results.
This behavior only affects tree types and species to which it
is applied in the behavior list of the parameter file. It will
ignore all other trees, even if they are short enough to be
beneath the filter level.
How to apply it
This behavior may be applied to seedlings, saplings, and adults
of any species.
For more on what GLI is and how it is calculated, see above.
How it works
This behavior calculates a GLI value for each cell in a grid object called GLI Map. The height at which this GLI value is calculated is set by the Height at Which GLI is Calculated for GLI Map, in meters parameter. These values are not used by any other behavior. You can save the values in the GLI Map grid into a detailed output file and view the map data later.
How to apply it
This behavior may be applied to seedlings, saplings, and adults
of any species.
This behavior shortcuts the light calculation process by considering GLI to be binary: either full light (100%) or no light (0%). This simulates a simplified version of gap light dynamics.
How it works
This behavior uses a grid object called Gap Light to determine the basic position of plot gaps. If a grid cell contains no adult trees, it is considered a gap. If there are any adults of any species, then it is non-gap.
The trees to which this behavior has been applied get their GLI values based on the gap status of the grid cell in which they are located. If the gap status is TRUE, then they receive a GLI value of 100%. If it is FALSE, they receive a value of 0%.
How to apply it
This behavior may be applied to seedlings, saplings, and adults of any species.
This behavior calculates light levels as a function of number of trees damaged in storms. Light levels are stored in a grid for later retrieval by other behaviors; this behavior does not directly assign light to trees.
How it works
This behavior uses a grid called Storm Light to manage light levels. Each timestep, it calculates the light level at the center of each grid cell and places it in the grid.
The light level is calculated as follows:
GLA = ((1 - T/M) * 100) + (a + b * N)
where:
- GLA is the light level, as a value between 0 and 100
- T is the number of adult trees and snags within the search radius
- M is the Storm Light - Minimum Trees For Full Canopy parameter
- a is the Storm Light - Intercept of Light Function parameter
- b is the Storm Light - Slope of Light Function parameter
- N is the number of trees heavily damaged in recent storms
This behavior calculates the light levels at the center of each grid cell by examining the trees within the distance given in the Storm Light - Max Radius (m) for Damaged Neighbors parameter.
The first term in the equation, ((1 - T/M) * 100), corrects the light level if the point is not under full canopy. All adults and snags, no matter what storm damage, are counted up and assigned to T. If T >= M, then the first term is set to 0 and only the second part, (a + b * N), is evaluated. If T < M, then the first term adds to the linear portion the proportion of full sun equal to the proportion of trees missing from the full canopy.
For the second, linear term, the number of heavily damaged trees, N, is counted. Trees count as heavily damaged if they are either snags that were created as a result of a storm killing an adult tree, or live adults with heavy storm damage. All storm damaged trees have a time-since-damage counter; only those eligible trees with a counter value less than or equal to the value in the Storm Light - Max Years Damaged Trees Affect Light parameter are counted. Saplings and seedlings never count. Snags that were created because a tree was killed by a process other than a storm are not counted.
How to apply it
You do not need to apply this behavior to individual trees. While it is recommended that you also include the Storm damage applier behavior in your run, this is not required.
This behavior calculates light levels as a function of the basal area of trees in a neighborhood. The light levels are randomized using a lognormal probability distribution. Because of this random element, to ensure some continuity through time, light levels only change when the local neighborhood tree basal area has changed by a certain amount.
How it works
This behavior uses a grid called Basal Area Light to manage light levels. Light levels are calculated for each cell in the grid; trees to which this behavior are assigned receive the light level of the cell in which they are located. NOTE: The parameters for this behavior are dependent on the size of the cells in the Basal Area Light grid. Changing the size of the cells without changing the parameters may give different results.
The behavior begins by calculating the total basal area and angiosperm basal area in each of the Basal Area Light grid cells. Whether a species counts as angiosperm or conifer is set in the Basal Area Light - Species Type parameter. Seedlings and snags are never included in these basal area totals. Other trees are only included if their DBH is equal to or greater than the value set in the Basal Area Light - Minimum DBH for Trees parameter. Once the basal areas are calculated, the behavior adds them together to create a total basal area, and compares this value to the previous timestep's total basal area. If the value has not changed by more than the amount set in the Basal Area Light - Minimum BA Change for New GLI (m2) parameter, no further action is taken. The previous timestep's GLI and basal area values are kept.
For each grid cell in which a new GLI is to be calculated, a mean GLI value is calculated as follows:
where:
- GLIm is the mean GLI value, as a value between 0 and 100
- a is the Basal Area Light - Mean GLI "a" Parameter
- ba is the Basal Area Light - Angiosperm "b" Parameter
- ca is the Basal Area Light - Angiosperm "c" Parameter
- BAa is the angiosperm basal area for that grid cell, in square meters
- bc is the Basal Area Light - Conifer "b" Parameter
- cc is the Basal Area Light - Conifer "c" Parameter
- BAc is the conifer basal area for that grid cell, in square meters
This mean GLI is translated into a ζ value for the lognormal random draw as follows:
ζ = ln(GLIm) - (σ 2/2)
where GLIm is the mean GLI value calculated above, and σ is the Basal Area Light - Lognormal PDF Sigma parameter.
This value is then used to produce a random lognormally distributed number, from the following distribution:
where ζ is the value calculated above, and σ is the Basal Area Light - Lognormal PDF Sigma parameter. This number is the GLI value, between 0 and 100.
Once each Basal Area Light grid cell has gotten a GLI value, trees to which this behavior applies get the value of GLI from the grid cell in which they are located.
How to apply it
This behavior may be applied to seedlings, saplings, and adults of any species.
This behavior calculates GLI values for individual points in the plot.
How it works
You provide, as input, a file that contains the list of points for which you would like GLI values. The file is tab-delimited text, and has the following format:
X | Y | Height (m) |
12.4 | 36.5 | 1.2 |
128.7 | 19.5 | 0.68 |
The first row is assumed to be a header row and is ignored. Each subsequent row is a single point for which to calculate GLI. You can include as many as you wish. The first column is the point's X coordinate; the second is the Y coordinate; and the third column is the height above the ground, in meters. Name the file whatever you wish. Put the file name for the points file in the GLI Points Input File parameter. It is best to use a fully-qualified path name (i.e. "c:\sortie\my_points.txt"). SORTIE-ND will load the points into the parameter file. If you are working with a parameter file that already contains GLI points because they were saved into it previously, you do not need to enter another file and can leave the GLI Points Input File parameter blank.
Each timestep, this behavior calculates GLI at each of the points specified. It then writes the results to another tab-delimited text file. You enter the filename of this file in the GLI Points Output File parameter. It should be fully-qualified (i.e. "c:\sortie\points_output.txt") and should have a ".txt" extension. If the file already exists when the SORTIE-ND run begins, the contents will be overwritten. This means that this behavior cannot successfully be used in batch runs where a parameter file will be run multiple times.
How to apply it
This behavior does not need to be applied to trees. It can stand alone as the only light behavior if you wish.
Last Updated: 09-Dec-2005 09:18 AM