Version 2.23
Version 2.23
2024-11-08
Summary
This release includes the addition of AMPL as a supported modeling language, further improvements to the optimization module in PlanWise, improvements to the data import of large stand registers, and bug fixes - especially to the tactical TPG in PlanWise.
New Features
AMPL
AMPL has been added as a supported modeling language in Planwise. AMPL has been added primarily because of the long building times when using ZIMPL with some large optimization problems. In many user-cases it will be easier to switch modeling language rather than trying to optimize the formulation of the optimization problem itself. AMPL requires a user license. For non-commercial use and prototyping there is a AMPL Community Edition which comes with restrictions when it comes to using the commercial solvers.
Before using the AMPL modeling language in Heureka AMPL must be installed. The path to the executable is the entered into the settings in Heureka (figure 1). After setup a new AMPL model can be created by using the Model Wizard in Heureka (figure 2) or changing an existing model to use AMPL instead of ZIMPL (figure 3). If the modeling language is changed user-supplied definitions need to be changed if they fail validation (figure 4). The validation of the AMPL syntax is done by Heureka and has been tested for models generated in Heureka, but some valid AMPL syntax might fail Heureka's validation . If a valid AMPL model is marked as invalid in Heureka please let us know.
One difference between standard AMPL syntax and Heureka is that parameter and contraint declarations should be skipped since the names of a model's members is derived from the name they are assigned in Heureka. A parameter with the name p1 in Heureka and the definition MidPointUsed[0]; will be translated to param p1 := midpointused[0]; in the resulting AMPL model.
Misc.
- Calculations of sapling growth will now use SIH instead of SIS if available. If SIH is not supplied SIS will be used as before. Since SIH is usually estimated to be higher than SIS this leads to a higher target height in the sapling growth functions. This in turn will lead to increased diameters as the functions assigning diameter to trees uses tree age and height to estimate diameter. As these functions are not updated yet accurate tree heights might lead to overestimation of volumes, even if the height is correct. When the diameters functions are updated in the future an option to estimate SIH from SIS will introduced.
- Management class K has been added as a valid management class.
- Internal optimizations has been done to make it possible to import larger stand registers. Especially the treelist generation is faster when importing large stand registers with thousands of stands.
- We have added "Contains" and "BeginsWith" conditionals in domain builder, making it easier for some to quickly add a subset of their stands to a domain by matching, for example, part of a treatment unit's description.
- A control category's number is now a browsable property, which is viewable in the property display (where control table settings are shown).
Bug Fixes
- If the control table setting "Treat Retention Patches as Parent Gen. 1" is set to true dependent patches will get the same treatments as parent up until final felling.
- Fixed an issue where the tactical TPG failed to generate expected programs even though the strategic TPG could find programs with thinnings during the tactical horizon.
- Fixed an issue where an error would be displayed if project was missing a valid in-database.
- Changed stochastic mortality to be calculated per-stem instead of per type tree (which can represent multiple stems).
- Fixed an issue where stands with historic regeneration were reset when Treatment Proposals were present
- Fixed an issue were height settings for thinning were ignored in the tactical TPG.
- Changed how regeneration proposals are handled. Regeneration proposals no longer overwrite historic treatments. Instead a warning is submitted to the OutputWindow that a treatment proposal was ignored.
- Fixed an issue were the function 'Rerun simulation' failed due loading data from database.
- Fixed an issue were the Tactical TPG generated wrong treatments if several control categories were used
- Fixed an issue were loading and saving older optimization models failed due to a removed ResultProperty.
- Fixed an issue were wrong ThinningIntensity were stored in the datatable which lead to higher thinning intensity in some cases when using 'Rerun simulation'.
- Fixed a SQL Timeout when generating treelists for very large stand registers
- Changed how thinning intensity is handled in treatment proposals. The Thinning guide is now used if a user supplied value is missing in the treatment proposal.
- In some cases the wrong species was selected as regeneration species if the regeneration settings was set to "auto". This had to do with estimating the dominant species - as that could have change between felling and planting. Now it will work as expected and use dominant species before final felling if dominant species used to determine the regeneration species.
Version 2.23.0.2
Unfortunately 2.23 was shipped with an new bug where correction factors were not calculated treatment units in sub-areas levels, but only for the root area in the analysis area.
- Fixes an issue where height correction factors where not calculated. If you have simulated tree lists in 2.23.0.0 or 2.23.0.1 we recommend that you redo the data import.
Details from bugtracker
Id | Category | Severity | Summary | Fixed_in_version | Resolution |
---|---|---|---|---|---|
0000726 | Data import | major | Correction factors are not calculated for all treatment units | 2.23.0.2 | fixed |
0000720 | Data import | major | Correction factors not calculated for all area levels | 2.23.0.1 | fixed |
0000666 | TPG | major | Sometimes the tactical TPG fails to generate expected programs | 2.23.0 | fixed |
0000699 | TPG | major | Dependent retention patches do not have the same treatment as parent areas | 2.23.0 | fixed |
0000704 | TPG | major | Wrong species selected as regeneration species | 2.23.0 | fixed |
0000665 | TPG | minor | Tactial TPG generates treatments even though cc == unmanaged | 2.23.0 | fixed |
0000677 | Optimization | minor | Loading and saving old models with removed ResultProperty fails | 2.23.0 | fixed |
0000693 | TPG | minor | Very small differences in financial values between TPG and Rerun Simulation | 2.23.0 | fixed |
0000680 | TPG | minor | Rerun simulation fails to load alternatives | 2.23.0 | fixed |
0000694 | TPG | minor | Treatment proposals: If Thinning intensity/grade is not set the default value of 0.35 is used | 2.23.0 | fixed |
0000681 | General | minor | SQL Timeout when generating treelists for very large stand registers | 2.23.0 | fixed |
0000667 | TPG | minor | Tactical TPG uses enforced thinnings for second thinnings | 2.23.0 | fixed |
0000682 | General | minor | Import error throws application error | 2.23.0 | fixed |
0000695 | TPG | minor | CAI Net differs from expected value in periods following treatments with harvest | 2.23.0 | fixed |
0000649 | TPG | minor | No unmanaged program in Tactical TPG | 2.23.0 | fixed |
0000668 | TPG | minor | Net Present Value is miscalculated if there is a thinning in the last period | 2.23.0 | fixed |
0000696 | TPG | minor | Management System not set to CheckerBoard in Alternative Summary | 2.23.0 | fixed |
0000652 | General | minor | "Copy table" does not copy the full table | 2.23.0 | fixed |
0000671 | TPG | minor | Spin-up for initial soil carbon use wrong species in some cases | 2.23.0 | fixed |
0000685 | TPG | minor | Very small differences in financial values between TPG and Rerun Simulation | 2.23.0 | fixed |
0000697 | Map plugins | minor | Feature: New map plugin Select Intersecting Polygons | 2.23.0 | fixed |
0000656 | General | minor | Occasionally news items will not load on the start page | 2.23.0 | fixed |
0000686 | TPG | minor | Stands with historic regeneration are regenerated in period 0 | 2.23.0 | fixed |
0000662 | Project handling | minor | Error is thrown when displaying initial state if project has a missing in-database | 2.23.0 | fixed |
0000673 | TPG | minor | Stochastic mortality does not calculate mortality per stem | 2.23.0 | fixed |
0000687 | TPG | minor | Stands with historic regeneration are reset when Treatment Proposals are present | 2.23.0 | fixed |
0000664 | TPG | minor | Height settings in Control table ignored in tactical TPG | 2.23.0 | fixed |
0000688 | TPG | minor | Historic regenerations are ignored by treatmentproposals | 2.23.0 | fixed |
0000655 | General | tweak | Mean "Bonitet" displayed in initial state is incorrectly labeled as m3sk/ha | 2.23.0 | fixed |
0000684 | TPG | trivial | Very small differences in financial values between TPG and Rerun Simulation | 2.23.0 | fixed |
0000672 | Map | trivial | Heureka cannot import point geometries. | 2.23.0 | fixed |
0000698 | Data import | trivial | Add management class K | 2.23.0 | fixed |
0000718 | General | feature | Added filtration by forest domains in TPG result | 2.23.0.1 | fixed |
0000717 | Data import | feature | Improvements/changes to correction factor calculations | 2.23.0 | fixed |
0000678 | Control categories | feature | Add a control category's number as a browsable property | 2.23.0 | fixed |
0000674 | Forest Domain Builder | feature | Add "Contains" and "BeginsWith" conditionals in domain builder | 2.23.0 | fixed |