The expression definition document defines reporting variables and output types in expression output.
An example of the document contents is given below, for a comprehensive description of all the possible content options see the schema document. Data continuation and abbreviated content expressed as …:
While expression definition is very close to aggregation definition, there are some key differences:
The root level tag contains a reference to the schema document which is used to validate the content of the XML document:
<expression_definition xmlns="http://latitude.mmvar.helsinki.fi/simo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.simo-project.org/simo
../schemas/expression_definition.xsd">
First, you must define the initial date of the simulation (as YYYY-MM-DD) to get meaningful results:
…
<initial_date>2009-01-01</initial_date>
Next, discount rate is defined for outputs that needed discounting, such as net present values of income from harvests etc.:
…
<discount_rate>3.0</discount_rate>
Single expression definition can include multiple expressions. The syntax for defining the reported variables is similar to optimization task subobjective and constraint syntax. Below is an example of a very simple report, where harvest volumes, between first year (1) and last year (-1) are reported:
…
<expressions>
<item>
<expression>sum[1:-1](operation:Volume)</expression>
<label>Harvest volume</label>
</item>
It’s also easy to give constraints to certain values, though in that case, it should in most cases be given to all the values so that the expression doesn’t fail:
…
<item>
<expression>avg[1:-1](comp_unit:Age[MAIN_SP eq 1] * comp_unit:AREA[MAIN_SP eq 1])</expression>
<label>Average age</label>
</item>
The expressions can be more complex as in optimization tasks (note that cash_flow, PV and PV_land are discounted in the below syntax):
…
<item>
<expression>
sum[1:60](operation:cash_flow:discount) +
sum[60:60](comp_unit:PV:discount * comp_unit:AREA) +
sum[60:60](comp_unit:PV_land:discount * comp_unit:AREA)
</expression>
<label>NPV</label>
</item>