5.16 - Production Release (June 2022)
eWater is pleased to announce the latest Production Release of Source version 5.16. Key enhancements in version 5.16 include some really useful new Geographic reporting features, new built-in functions for data source and Probability of Exceedance, the addition of the Backwards Euler Method for Weirs, updates to Ordering with Storages and a new replicate runner within Source.
Geographic Scenario features
Spatial data Exporter
The Spatial Data Exporter from Queensland's Derm Tools plugin has been updated and incorporated into the core application. The Spatial Data Exporter allows you to easily export a number of spatial layers from a Geographic/Catchment scenario in the Source project file. An especially useful feature is the ability to export Links. The exporter is available under the right-click menu when working in the Geographic Scenario view.
Geographic Scenario Reporting Tool
We have introduced the concept of Reporting Regions. Available under Edit \ Reporting Regions
These regions are used in the new Reporting Regions Data Collector. Available under Tools \ Analysis Windows \ Reporting Regions Data Collector….
The results are displayed in Tools \ Analysis Windows \ Map:
Detailed documentation is available here: Catchment Map Reporting Region
Merge Catchment Scenarios and Functional Unit rename
Now available under Tools \ Merge Catchments. You can now merge two catchment Scenarios into a single Scenario.
To help with using this tool, we also implemented the ability to rename Functional Units before or after a merge.
General Improvements
Functions for Data Sources and Probability Of Exceedance
There are four new built-in Functions:
- GetDataPeriod - Gets data from a Data Source between the start and end dates. Data is returned as an array.
- GetDataTimeSteps - Gets data from a Data Source using a start date and the number of time steps. Data is returned as an array.
- ProbabilityOfExceedanceFlow - Gets the percentage value for the given flow from the probability of exceedance curve.
- ProbabilityOfExceedancePercentage - Gets the flow value for the given percentage from the probability of exceedance curve.
Example usage:
//Data Sources functions //Arguements are: Data Source (for files, Name.ColumnName), start year, start month, start day, end year, end month, end day GetDataPeriod("MyDataSource_csv.Column1", 2000, 1, 1, 2020, 12, 31) //Returns an array of values in the units of MyDataSource_csv.Column1. //Arguements are: Data Source (For files, name and column name), start year, start month, start day, number of time steps GetDataTimeSteps("MyDataSource_csv.Column1", 2000, 1, 1, 365) //Returns an array of values in the units of MyDataSource_csv.Column1. //These methods can then be used with other built in functions that take an array such as sum, median, average, min, max etc. e.g: sum(GetDataTimeSteps("MyDataSource_csv.Column1", 2000, 1, 1, 365)) //Probability Of Exceedance //Arguements are: Array of values, flow value (in the units of Flow_res_csv.Runoff) ProbabilityOfExceedanceFlow(GetDataTimeSteps("Flow_res_csv.Runoff", 2000, 1, 1, 365),10) //Returns the percentage value. //Arguements are: Array of values, percentage ProbabilityOfExceedancePercentage(GetDataTimeSteps("Flow_res_csv.Runoff", 2000, 1, 1, 365),20) //Returns the flow value in the units of Flow_res_csv.Runoff. //You can also use a modelled variable to provide the array of values ProbabilityOfExceedanceFlow($Previous30DaysFlow,10)
Backwards Euler Release Method now available For Weirs
Backward Euler Method is now available for Weirs! This is a significant change for Weirs. It's enabled under Edit \ Scenario options \ Storages:
Storages have had the option of using the Backward Euler Method for a while now and it's the default for new models. However, the Piecewise-linear Integral Method is still available, see Storage Node - SRG for details.
Moving the Weir over to the Backward Euler Method enables other features, including:
- Outlet Priorities can now be used,
- Weirs now include the concepts of a Safe Release capacity for Operating Constraints, and
- Ordering Priorities will now work with Weirs.
Improvements to Minimum Constraints downstream of Storages
For Rules-based ordering, we have improved the Constraint calculations downstream of Storages. This is how the Constraint Phase in Storages was previously calculated:
- The Storage Node Model calculates a Predicted Volume for the storage. This is done by taking the Current Storage Volume and adding the Ordering Minimum Constraint from upstream.
- It uses this to determine a Minimum Release and a Maximum Release for each of the Outlet Paths, by comparing the Predicted Volume against the Outlet definitions (e.g. spillways, valves, etc)
- There is a special case if the Predicted Volume exceeds the Full Supply Volume
- In this case, the Minimum Release is the Predicted Volume - Dead Storage Volume - Full Supply Volume (which looks wrong: RM-17722)
- The Minimum Release and a Maximum Release would become the Ordering Minimum Constraint and an Ordering Maximum Constraint for downstream.
We have now added a Volume Above Maximum Operating Constraints
- Volume Above Maximum Operating Constraints = Predicted Volume - Maximum Operating Constraint
- Then it is constrained so New Minimum Release = MIN( Maximum Release, MAX( Minimum Release, Volume Above Maximum Operating Constraints ) )
So that New Minimum Release becomes the Ordering Minimum Constraint.
Environmental Flow Actions are now in the Feature Table
Spell Based Actions and Translucency Actions from the Environmental Flow Node are now available to be edited in the Feature Table.
Supply Point User interface changes for Ordering
We have made some changes in the Supply Point user interface to be clearer about what different options do.
In Rules-Based Ordering:
- Add Orders To Downstream Orders remains unchanged
- Use Unregulated Flow To Satisfy Orders is now Use Min Constraint Flow To Satisfy Orders
In Net LP Ordering
- Add Orders To Downstream Orders is now NetLP 2 phase solution: Add orders in 2nd phase
- Use Unregulated Flow To Satisfy Orders is no longer selectable. It already had no effect on processing.
Background images for the Schematic network
You can now add a background image to the schematic network control.
Internal spilling to be specified by Owner
We have added an additional option when using Internal Spilling for Ownership in Storages.
You can enable a single owner to Share Airspace which allows the selected owner to store additional water in its account, providing there is enough airspace and it does not affect other owners' storage.
Replicate runner
We have implemented a replicate runner within Source for applications such as a risk of spill assessment.
There is a new Run configuration available in Scenario Options called Replicate Analysis Configuration. This can be added to the scenario.
The following example cycles the Data Sources used in the model to create 20 Replicates. Replicates are generated using the same method that's been implemented in the Run Manager: Time Series Cycle Creator.
Results can be used in custom charts and viewed in the Results Manager. .res.csv now includes metadata to identify the SubRunName that will be in the export.
- Data sources can be individually selected, and
- Annual Descriptive Statistics will work across sub-runs.
It currently runs in series and not in parallel. Running in parallel will improve performance and we plan to add this in a future beta release.
Documentation is available here: Replicate analysis simulations in Source and will be incorporated into the documentation after the production release.
Summary of minor changes
- SourcePlugin.Simhyd-Factored has been added to the Community Plugins
- Reset filter button not working in tables
- Run time Performance improvement for some project files
- The environmental flow Node's actions had a parameter that wasn't persisting: Number of season failures before forcing
- SRG and User Guide links were not working for some windows
- TimeSeries validation on the command line was fixed
- Export + import of Irrigator daily patterns now round trips correctly
- A number of issues were resolved in River Operations mode
- Units for Scenario Data Sources have been fixed
Plugin Developers
The API for Custom functions has been extended:
- You can now include strings and arrays as arguments for custom functions.
- You can now return an array from a custom function, rather than just a single double value.
This was implemented to enable the function improvements listed above, however can now be used in any custom function. For details please see: /wiki/spaces/SD516/pages/54987355
Community Plugin Changes
We have moved to Visual Studio 2022. We are planning on moving to .NET 6. The transition to .NET 6.0 won't be a quick process as some components we currently use will no longer be supported, however it does provide a potential pathway to running natively on Linux. Source can currently be run on Linux under Wine, but only natively on Windows.
Results and Configuration Changes
Some results have changed between Source 5.12 and Source 5.16. The eWater development team maintains a detailed system to track when results vary between different versions of Source.
There were two main result changes in the regression test suite.
- A large number of results changes were due to a unit issue with a recorder. Water quality constituent Total Flow Mass calculation was 86400 times too small.
- Changing Weirs to enable the Backward Euler method has changed some results.
To test your project:
- Create a regression test in Source 5.10, see 5.12 Regression testing
- Run it in Source 5.12 to test for any result changes, see 5.16 Regression testing
If you would like help with your projects or would like to have your projects included for testing, please contact support: support.ewater.org.au