This month saw a number of changes to the ForestModel language, the MatrixBuilder, and the ForestModel spreadsheet. These changes improve on the generality and expressiveness of the ForestModel language, and make it easier to input values from external sources. As a result it is even easier to build complex models using even fewer keystrokes.
There is a new option on the curvetable element to read curves stored in row format, such as with the TigerMoth model. See the curvetable documentation for more details.
In addition, the replacemissing attribute provides a value that will be used whenever a missing value is encountered in the curve table. This could be used, for example, to change all missing values to zero.
Another ForestModel element has been added to simplify the processing of TigerMoth models. The table element encapulates a lookup table, consisting of comma separated data values. The tablemap function is able to carry out efficient table lookups on the values in the data table without having the literal data encoded in the function.
This overcomes the size limit problem that occurs with the previous implementation of lookup tables in the Excel-based ForestModel spreadsheet. It also simplifies the appearance of the XML code because the lookup functions are not expanded in to the full list of alternatives.
The ForestModel language had always supported the ability to have values
accrued in future periods from actions that occur in earlier periods
(for example, tending costs in future periods are liabilities from
a current action). This capability had been provided by the
future
option on the
attribute element.
The future
option is expressive, but it can be
repetitive to specify in cases where there are multiple future
values for the same attribute (e.g. multiple vegetation management
actions).
In order to provide a simpler mechanism there is a new option named
method
that describes the summation method.
The method
options allows values of blank,
"census" or "series". The default value is "census" which means that
feature values should be calculated from the final year of the period
and product values will be calculated at the year of harvest.
The "series" option indicates that the values from each year in
each planning period should be summed in to the corresponding periods.
For example, consider that an area receiving a high valued treatment
will also receive additional insect damage hazard reduction treatments
for each of the first 5 years after planting. The feature or product
curve would have a value for each of the first five years, and zero
thereafter. The attribute element containing this curve must specify
method="series"
.
When the treatment is applied the values for each of the first five
years will be adding in to the accounts in the appropriate periods.
Census feature values record a single value from the final year of the planning period. The series option provides an ability to total up a series of curve values within the planning period.
Census product attributes record a single product value at the time
of the treatment, or at a single future time based on the
future
attribute.
The series option sums values from every non-zero
point on the corresponding curve over the entire planning horizon,
allowing multiple values from multiple years as an outcome from a
single treatment action.
Minor changes and fixes:
Improve error reporting in the MapLayout report.
Fix record selection in the exportCSV and exportDBF methods of the AttributeStore class. These are documented to export selected records, but in fact they were exporting all records. These methods have been fixed to match the documentation.
A new option is available