Version 2.0.0

From Heureka Wiki
Jump to: navigation, search





  • Version 2 represents a more well-tried program.
  • Several efforts have been made to improve and simplify the user interface.
  • Some changes of the growth and yield functions have been implemented, and you should expect slight changes of results, even if you run an identical analysis and on the same data.
  • There is now a possibility to take into account price- and cost changes over time.

Important note!

For already imported stand registers that have been used as input data (and not only to link with existing data), it is recommended that you re-simulate the forest data via menu Data Management > Stand Register > Simulate Treelist (Datahantering > Beståndsregister > Simulera träddata). As a result, the tree ages and heights for young stands will be more consistent with the input data.

(see section below)


Changes in the user interface

First steps to simplified use: Hiding seldom used parameters

There is indeed an overwhelming number of parameters that confront the user of a Heureka application. Therefore, a simplified view of the so called control tables is now available. By choosing this, you will only see a subset of parameters, those we consider the most important for normal users to have access to. You can also customize what parameters to display in the simplifed view. You can change freely between Advanced and Simplified View, it is only how and what parameters are displayed that is affected. You can access the simplifed view via menu Settings > Advanced/Simplified View. When using Simplified View, only one table is displayed for each control category, instead of one table for each control table in the control category. A table will show all parameters with non-default values, and all parameters that have been added to the simplified view. see help documentation

Modified start page

The start page has been redesigned and displays news from SHa and release notes.

Project page removed

The project page contained information on the name of the project and the database connections. This information has been moved to the start page and the project page has been removed.

Modified page for Initial State Overview

In PlanWise and RegWise, the Intial State Overview page has been redesigned and shows more diagrams than before. You can also copy data from the page to Excel.

Improved display of forest domain contents

In PlanWise and RegWise, the visual structure of the contents of a forest domain has been improved, so that is easier to distinguish between conditions and control category connections.

Possibility to add comment to forest domain

In PlanWise and RegWise, you can add comments to a forest domain. Just right-click on a forest domain and select Edit/Show comment.

More symbols and line colors

In StandWise, PlanWise and RegWise, graph symbols and lines have more variation.

Settings dialog collects application settings in one place

From menu Tools, you can open the Settings-dialog (meny Vertyg > Inställningar). It contains performance settings, log file settings, settings for what control tables should be added to new control categories by default, user interface settings (language, simplified view), and optimization settings (default solver and solver settings).

Growth-and yield model changes

Changed default choice for growth model

The default choice of using a whole stand growth model for calibrating the single-tree calculations is inactivated when creating a new project. This parameter is found in control table Production Model as "Growth Model Whole-Stand", and has been changed to "None", meaning that Björn Elfving's single-tree functions are used alone, without calibrating them with the stand-level growth model. The reason is not more accurate growth predictions per se, the differences between the models are rather small, but the single-tree growth functions used alone gives a smoother transition from the young stand phase to the established phase, at least in numerous cases tried.

The default function choice for calculating tree diameters for sapling trees (parameter "Sapling Diameter Model" in control table Production Model) has also been changed, from "NystromSoderberg" to "Elfving", for the same reason.

For existing projects, it is not critical to change these parameters, but if you do detailed stand-level analysis for example and find it annoying that the annual increment marks a drop or sudden increase when a stand leaves the young stand phase and enters the established phase, consider testing the new default settings.

New mortality model

A new mortality model is available and used as default model in new project. For existing projects (created in previous program version), we recommend that you select this model instead. The model is called "Elfving" and is selected in control table Production Model. With the old model, mortality in non-dense stands have been calculated with a somewhat "primitive" model (Göte Bengtsson 1978), with a fixed mortality precentage for each species. The new model is a single-tree model based on a large set of NFI-data (Rikskogstaxeringens data). The new model also replaces the single-tree mortality model by Fridman & Ståhl which has been used until now to distribute mortality to trees. The latter is in it basic form a stochastic model, while the new one is determinstic, and therefore better suited for Heureka.

Improved handling of mean age in young stands

For already imported stand registers that have been used as input data (and not only to link with existing data), it is recommended that you re-simulate the forest data via menu Data Management > Stand Register > Simulate Treelist (Datahantering > Beståndsregister > Simulera träddata). As a result, the tree ages and heights for young stands will be more consistent with the input data.

For an established stand, Heureka calculates the mean age (variable "ForestData.MeanAge excl overstorey") as the basal area weighted mean age of the trees. For a young stand, the variable is calculated as a weighted arithmetic mean age, where the calculated probabilities for crop trees (beräknade huvudstamssannolkheter) are used as weights. In established stands (mean height ≥ 7 m), tree ages are by default calibrated so that the calculated mean age and the mean age imported (for example from the stand register) are the same. This calibration has not been applied for young stands. The reason for this is that the imported mean age for young stands has not been used if a mean height has been available. In that case, the mean age has been based on the calculated sapling ages, which in turn depend on tree heights and site index. This have resulted in a more model-driven than data-driven approach, which is probably good since data for young stands are often reported as very uncertain. If relying too much on the age/height relation in young stands, there is a risk that the calculated growth for young stands with a large height/age ratio is overestimated. In stands where there have been a few years of large height growth, these few years constitute a large part of the total age of the stand and will affect growth much more in relative terms than is the case for an older stand. As a drawback, the ages for young stands calculated in Heureka have often differed from the mean ages in the stand register. Several measures has been taken to handle this, and some more will be available later this year in version 2.1.

  • One change is that by default, mean heights for young stands are ignored when simulating tree list. When simulating tree lists from stand register data, you will find a new check box "Let system automatically calculate tree heights for young stands". The corresponding function is available when entering data manually, in the sapling simulator dialog you can choose "Calculate from age" (see Figure 2a and 2b). Using this option (which is default) will result in more robust height/age-relations in young stands, and smaller differences between stand register age and age calculated by Heureka.
  • Sapling ages can now be calibrated so that the mean arithmetic age of main saplings should be close to the entered mean age of the stand. The use of this calibration is activated in control table ProductionModel, parameter Calibrate Age Young Stand, which is set to True in new projects. You should change this parameter when you open old projects. Before this calibration, the program projects the growth for the number of years that differs between the mean age calculated by the model (as a function of tree heights), and the entered mean age.
  • Another improvement is that the start up of a young stand has been refined to better match the usage of five-year period lengths. When not using this function (by unchecking the check box), tree heights will be calibrated so that the mean height for each species is as close as possible to the entered mean height.

The variable "ForestData.Stand Age" (see above) could also be useful when the mean ages calculated in Heureka are not consistent with those in the register data. Heureka creates a tree list not until the mean height is 2 m. For smaller stands, a "waiting" period is used, and once the period is reached when the stand is at least 2 m, the stand is "activated".

Figure 2a. You can select whether the mean height of a young should be calculated by the program based on the entered stand age, or retrieved from the entered value.
Figure 2b. You can select whether the mean height of a young should be calculated by the program based on the entered stand age, or retrieved from the entered value.

Sapling type

When entering data manually for a young stand, the sapling type origin and age when planted can be entered for each species. Using this feature does not currently affect results much, but is more a preparation for future refinements for the modelling of young stands and regeneration.

Modified implementation of fertilization effect

Growth response after fertilization is calculated with a model that predicts volume growth increase on a per ha basis on each sample plot. The way this growth increment is distributed to the trees has been modified to a more exact but also a simpler and faster solution. The growth response will be marginally different than in previous versions.

Price and costs changes

Price and cost trends

You can evaluate your own assumptions on future changes in real costs and prices. You can do this by setting a time point and a cost or price adjustment factor that will apply from that time and onwards. You can define different price factors for timber, pulpwood and bio fuel, and different cost factors for different treatment activites. For price lists, an additional bucking (aptering) is applied, to get the correct output for the adjusted prices. Interpolation is applied to time periods between the start period and the time point you enter.

See Help documentation, chapter Kontrolltabell Cost, heading "Pris- och kostnadstrender", and Helpdocumentation, chapter Prislistor, heading "Pristrender"

Price list length corrections as percentage or absolute values

Until now, price list length corrections have been defined as absolute price corrections (in SEK/m3fub). Now you can choose between absolute corrections or relative prices. The pricelist included for Mellanskog has been faulty, absolute corrections were assumed but relative prices had been entered in the table. Read more here: Helpdocumentation, chapter Prislistor, heading "Timmerprislistor och kvalitetsutfall", figure 1

Other changes

TreatmentUnit.MinFinalFellingAge replaced with ForestData.Initial Min Final Felling Age

Minimum final felling (LÅF) is calculated in each time period and management alternative and depends on regeneration species. The minimum final felling at the initial state has been available as result variable TreatmentUnit.MinFinalFellingAge. This has been moved to ForestData.MinFinalFellingAge. The result database is automatically updated, but if you use the old variable in report templates or optimization problem you must change the column mapping to the new variable.

High stump retention

You can now take into account the retention of high stumps. Leaving high stumps will affect both harvest yields (decreased) and occurrence of dead wood (increased). You can set the height of high stumps in the price list. This will keep track of the timber value for a tree if it is left as a high stump. You must also activate the retention of high stumps via control table Nature Conservation. Read more here: Helpdocumentation chapter Naturvårdsåtgärder, heading "Lämnande av högstubbar"

Amount of dead wood affected by final felling

When doing final felling, the harvesting and forwarding operations destroys a considerable part of the existing dead wood. In control table Dead Wood, the advanced user can modify how much of the existing dead wood (percentage) that is removed to the last decay class (4). It is also possible to define assumptions on to what extent dead wood in set-asides within a stand (hänsynsytor) is affected.

New result variable "Stand Age"

Heureka calculates mean age (variable "ForestData.MeanAge excl overstorey") as the basal area weighted mean age of trees in established stands. For a young stand, it is calculated as a weighted arithmetic mean age, where the calculated probabilities for crop trees (beräknade huvudstamssannolkheter) are used as weights. Typically, the calculated mean age does not increase by exactly the same value as the period length, since it is weighted. Also, the initial age may deviate from the input mean age, especially in young stands. Variable StandAge has been added to result category ForestData to represent age since regeneration (plus sapling age when planted which is currently hard-coded to 2 years). In period 0, it is the same as the input data, and then increases by five years per five-year period until final felling.

The variable "ForestData.Stand Age" can be used in reports and in optimization problems. For example, you could replace ForestData.MeanAge with ForestData.Stand Age to keep track of the area of bare land or young forest allowed (in the optimization model).

Column names in tree list template used for variable mapping

The import routine for tree list data has been sensitive to the ordering of columns, but is now using the column names (in the same way as the import routine for a stand register). This makes the import less error-prone, but you must assure that the column names are correct. (see

Help and support

New help section - overview of user interface (Swedish only)

A new help section gives an overview of the user interface, with sub chapters for each application. see (only in Swedish)

New user forum

A new user forum is available at

Bug fixes

Bugfix: Report variable net annual growth after regeneration now consistent with forest-level reports

After regeneration, result variable GrowthData.CAI net has been calculated as annual growth since since plantation, instead of change in standing stock between periods + harvested volume in previous period divided by number of years since last period. This is not a true error, but it has given missleading results when generating forest-level reports on mean annual increment. This has been fixed.

Bugfix: Contorta volume

When importing contorta sample trees from FMPP data (Indelningspaketet), the tree height calibration factors were faulty, because of a mix up in the translation of species codes. This affects calculations of contorta, oak and beech volumes and heights. Contorta tree heights have been calibrated with those for beech, and vice versa. If an area has contained contorta but not beech, the tree heights for contorta has not been calibrated, and vice versa.

Bugfix: Web links in the help menu

Links to web page were faulty both in the help documentation and the in the programs.

Bugfix: No additional thinnings were simulated when applying user-defined thinning proposal

When applying imported thinning proposals, no more thinnings were simulated until final felling. This has been fixed.

Bugfix: Wrong treatment proposal code given in help documentation for final felling with seed trees

This is not really a program bug, but a documentation error. The code for final felling with seed trees was defined as 16383 instead of 16384 on both the wiki and in the help documentation. This has been corrected. But the program has also been modified so that it recodes an imported treatment proposal code 16383 to 16384.