The patching algorithm has been adjusted to more rapidly seek better solutions to large patch size objectives. Initial tests show that the new algorithm is effective in this regard.
The patch shape metric algorithm has changed. The patch shape target computes a value that is the ratio of the total patch area, to the area of a circle with a diameter that is the same as the length of the patch edge. The ratio is multiplied by 100, and has a range of 0 to 100. To have the patcher attempt to generate compact patches specify a shape target of 100 with a high weight value.
Some reports now show the year of the simulation, rather than the planning period number. The year shown is the final year of the planning period.
The road network model has been adjusted to seek better solutions to multiple-destinations problems. The new algorithm does a better job of finding shared least-cost routes. Convergence times may appear to lengthen due to the greater number of performance improving options that this new algorithm produces.
The Targetable interface has been renamed to the Target interface. Along the same line the methods in the Control class have been rationalized and documented. A few redundant methods have been eliminated (setTargetLinear(), setTargetDiscoutRate()). You must now access these methods from the Target class. For example, the old technique was
control.setTargetLinear("net.value", true); control.setTargetDiscountRate("net.value", 1.03);
and the new technique is
control.getTarget("net.value").setLinear(true); control.getTarget("net.value").setDiscountRate(1.03);
All scripts in the library have been updated, but older custom scripts may require changes.
Minor changes and fixes:
Fixed a bug with the
The column names in the timing constraints table have been changed to conform to proper variable name syntax. Previously the column names were simply the period number of interest, now they are period number prefixed with the word "PERIOD".
The main class for the Patchworks application has changed to ca.spatial.patchworks.Patchworks. This change was made to facilitate better documentation of the classes and methods to control Patchworks. See the API documentation for further information.
The Patchworks console had a bug where a stray interruption request would crash the application. This has been corrected so that stray interruption request are now safely ignored.