Simulation Model

# HeightModel

This sub command object, which resides under SIMULATION.MODEL provides access to the OSM height model interface. Variants have the option of 1) implementing their own OSM Height Model or 2) inheriting a predefined base Height Model base type within the OSM. Due to this flexibility, properties and methods defined in the height model may vary widely from one OSM Variant to another. Some may not be able to locally calibrate heights. Consult Variant documentation on the height model used and whether there are properties in it that can be adjusted through OSM commands.

## Local height calibration

The abstract HeightModel available to developers through the OSM API provides methods to locally calibrate height predictions. If Variant developers choose to inherit methods from this pre-defined abstract height model, the following height calibration interface will be exposed through the HeightModel property Calibration.

The calibration method compares any available height observations imported from tree records against predicted heights by species. Ordinary least squares are used to solve for a modifier that would best align predictions to observations by species.

Any trees with missing heights on import will have heights predicted. If during prediction a species modifier is available, it will be multiplied against the predicted value before assigning the height to the tree. Use of the modifier is constrained by the species DBH range (+/- 5 cm) of height observations used to develop the modifier; e.g., if all white spruce height observations come from DBH between 15 and 20 cm, then OSM will only allow the height modifier to be applied to 10 – 25 cm DBH white spruce trees. This DBH constraint is especially important when all height trees are small, but one or more large trees with missing heights also exist in the plot. We would not want to apply the modifier developed from very small trees to very large trees.

The calibration only remains in effect while estimating tree heights before the simulation begins. Ingrowth will not be affected by this calibration.

### Properties

1) Enabled True | False

By default, local height calibration is on if available. Set to FALSE if you want to turn off automatic local calibration.

2) MaxAbsoluteModifier Double [Default = 0.5]

Maximum absolute multiplier permitted. In other words, modifiers that alter predictions by more than +/-50% should be ignored.

3) MinObservations Int32 [Default = 5; Must be ≥1]

Minimum observations per species required before a species modifier will be calculated. Reducing below 5 is not recommended unless you are averaging results for 10 or more stands. Note that with few observations, individual stand projections may become worse. It is important that heights come from a random tree sub-sample to avoid correction bias.

4) WeightMode Text Code [Default = BA]

Controls tree record weighting approach used when calculating height equation modifier value.

Modes:

· BA Tree record weight = basal area per hectare of tree record.

· Stems Tree record weight = density per hectare of tree record.

### Manually Setting Weights on Individual Tree Height Samples

Height observation sample ‘weights’ can be specified for each tree record manually in the OSM_TreeList table using the optional column ‘Weight’. User-defined w eights can be assigned to individual trees in OSM_TreeList in order to 1) properly calculate stand-level Lorey’s height and 2) properly weight self-calibration of the height model for a range of plot designs (fixed area vs. angle gauge). If any trees in the stand have a weight assigned > 0, then the user specified weights in the TreeList.Weight column will override the OSM generated weights set from WeightMode. When the Weight column is used, any trees with a weight set to null or zero will be ignored when counting height samples and will also be ignored when setting the min-max DBH range over which the height modifier can operate. Setting weight to null or zero is recommended in cases when the tree top is broken or dead, unless the majority of tops are known to be broken or dead.

#### Guidance on setting Weights for different plot designs

When localizing height predictions through OSM’s automatic self-calibration routine, reducing height bias in large trees is usually more important than small trees, given preference toward accurate volume estimates. Therefore, most users weight an individual height observation by the basal-area per hectare that each tree height observation represents (i.e., BAF = basal area factor). In the case of a simple variable-radius plot, weight = 1 for all trees, as trees are already selected with probability proportional to basal area. In the case of fixed-radius plots, weight = 0.00007854*DBH2. If the sample is a tally, then the number of trees tallied per DBH class should be multiplied by the weight.

In the case of complex plot designs, such as the New Brunswick Continuous Forest Inventory (NB-CLI), where tree heights are collected from multiple sampling strategies nested together, calculation of tree weights becomes slightly more involved. For example, the NB-CLI plot design contains the following samples:

1) A fixed-area large tree plot (400 m2) used to record Species and DBH ≥ 7cm.

2) A variable-radius (BAF = 2M) plot used to subsample heights ≥ 7 cm, including heights falling outside the boundary of the fixed 400 m2 large tree plot.

3) A fixed-radius small tree plot (50 m2) used to record Species and DBH between 1 and < 7 cm, with height sampled on every tenth tree.

In the case of NB-CLI plots, weight for individual height observations ≥ 7 cm DBH would always be 2 (2M BAF), while weight (W) for individual height observations < 7 cm DBH would vary by DBH:

, where BAFi is the basal area per hectare expansion factor for height tree i in the small tree fixed-area plot with consideration that only 1 in every 10 trees is measured for height.

For example, weights are calculated for the following DBH values for the NB-CLI plots as follows:

DBH | Weight (BAF)
1.00 | 0.16
3.00 | 1.41
6.00 | 5.65
6.99 | 7.67
7.00 | 2.00
10.00 | 2.00
25.00 | 2.00
100.00 | 2.00

In the OSM Acadian model (version 1.19.6.2) a Lorey’s height (LHT) estimate for the entire plot is calculated in OSM to boost accuracy of the Variant’s height predictions using only the observed height (H) trees as:

If weight is not explicitly assigned in the OSM_TreeList, then OSM will assume the plot is a fixed-radius plot and weight height samples using Stems (tree factor) * DBH2 * 0.00007854. This default weighting will yield incorrect LHT estimates for the CLI plots, and hence incorrect height estimates for the Acadian Variant model. Knowing how your OSM variant predicts tree size, growth, and survival is obviously important here. Consult variant documentation for calibration details and calibration updates.

#### What if I have heights collected outside the plot that could be useful for height calibration?

If you have a few height samples representative of the stand or plot that fall outside the sample frame, they can be included with the plot’s tree records in OSM_TreeList by setting the records ‘Stems’ column to a very small number (e.g., 0.000001; must be > 0) and manually specifying weights for both plot records and external height sample records. In this way, the tree is considered in the plot by OSM, but has such a small tree factor that it will not make a difference in volume summaries or simulation results.

If you have a very large number of height tree samples from a local area that you want to use to calibrate the height model, then a better approach would be to calibrate local species-height modifiers using the OSM.Simulation.Model.Calibrator.

#### A Note about Tree Agitation

OSM takes into consideration the possibility that tree records may have been agitated when calculating number of user height observations in the tree list. If five height observations are required for local calibration, and partitioning increases observed height observations from say 3 to 9, local calibration will still not occur as the actual number of tree height observations is less than five. Also, since tree Weight property values are divided by partitions, weight integrity is preserved across all tree records. Therefore there should be no adverse effects of tree agitation on local height calibration.

## Example

SIMULATION

MODEL

HEIGHTMODEL

CALIBRATION

Enabled TRUE

MaxAbsoluteModifier 0.5

MinObservations 5