The changes in this beta will be available in the Source version 5 production release, due out at the end of June 2020.
Changes in this release include:
Order Crawler Recorder
- Ownership adjustment for Storages and Weirs
- Date Range changes
- Results Streaming format utility
- New version numbering system
Order Crawler Recorder
The order crawler recorder is a new recorder to show all the nodes and links in a network and what their orders and requirements are on a particular date. Available under: Miscellaneous \ Ordering \ Order Crawler. The Order Crawler is a fully interactive zoomable schematic that shows:
- order data for all nodes and links (water users show their requirements)
- the entire network with node locations in the same location as the network
- the minimum order time values (same value as order recorder) e.g. if order travel time is 3 (minimum) to 5 (maximum) days the orders for 3 days out will be shown.
Note: for large networks, it does record a lot of data and is primarily for problem-solving and not intended to always be turned on.
Ownership adjustment for Storages and Weirs
We previously had no way of adjusting the ownership mass balance on storage nodes post timestep. Often there are decisions that move ownership about as a result of management or policy decisions based on what happened that day. We now have an option to adjust the End of day volumes in Storages and Weirs.
Date Range changes
We have improved Date Ranges and fixed up some issues with their implementation. This will change results for a number of users, so we have implemented a Scenario Option to turn on the new Date Ranges algorithm.
Existing projects won't be using the new method and will have to manually swap over. This gives users a chance to test the new implementation before it becomes the only option.
In a later Beta release, we will implement a utility to convert across while keeping results consistent as much as possible along with user interface improvements to help users understand Date Ranges better.
Results Streaming format utility
Results can now be streamed to files on disk rather than stored in memory. This is to prevent memory issues with large runs. Results streaming is off by default, however, it can be turned on in Project Options:
The format used (called Source Time Series Database .sdb) is now also available as a general timeseries format.
Source.DataUtility.exe - eWater Source Time Series Data Utility Usage: -?, --help[optional]... Show usage help -i, --input[optional]... Input file to read timeseries from. All standard TIME timeseries formats are supported. Example: -i "Run1.sdb" or -i "Run1.res.csv" -o, --output[optional]... Output file to save timeseries to. The extension selects the output format based on the standard TIME I/O formats. A directory of the name specified will be created if the format only supports a single timeseries. Example: -o "output.res.csv" for Source Results CSV or -o "output.sdb" for SourceDB etc. -k, --key[optional]... Key of a timeseries to output. This can appear multiple times. If no keys are specified then all timeseries will be exported. Use the '--list' option to list timeseries in the input file. The DisplayName is used as the key. Example: -k "someResult" -k "someOtherResult" -q, --query[optional]... SourceDB filter query. Use the '--list' option to list timeseries in the input file together with possible MetadataKeys to filter on. Example: -q "WaterFeatureType=Storage" -q "ElementName=Storage Volume" --startTime, --st[optional]... Start time for extracting partial results. If not specified the start of the input timeseries is used. Example: --st 1/1/2011 --endTime, --et[optional]... End time for extracting partial results. If not specified the end of the input timeseries is used. Example: --et 31/12/2011 -l, --list[optional]... List the timeseries and metadata contained in the input timeseries file. Standard output may be redirected to a '.json' file. -a, --addOrReplace[optional]... Add input timeseries to an existing output SourceDb (.sdb) file. Existing timeseries with matching metadata will be replaced. Only supported for SourceDb output files. Example: --addOrReplace -f, --force[optional]... Don't prompt for confirmation when overwriting an existing file.
New Version Number system
We have changed the version number system to help users understand when they need a new version number to open projects. The previous database version was a letter that wasn't in the version number.
The previous system was:
Order | Name | |
---|---|---|
1 | Major Version number | |
2 | Prod/Beta identifier | All Prod numbers are even. All Beta identifiers are +1 the most recent Prod identifier |
3 | Regular Functionality Release | Incremented when a new Beta is released every 1 to 2 months. Rarely updated for Prod releases. |
Not included in version number | Database Upgrade letter | Needed when changes are made that require DB upgrades between official releases. This is used to identify what the current database structure of the project will be. Resets to 'a' when the 'Regular Functionality Release' changes. |
4 | Build number | Essentially a unique identifier for Source builds |
New system:
Order | Name | |
---|---|---|
1 | Major Version number | |
2 | Prod/Beta identifier/Regular Functionality Release | Reset when the Major Version number increments. Increments with every official Prod and Beta release. We may increase by more than +1 for production releases. |
3 | Database Upgrade Number | Needed when changes are made that require DB upgrades between official releases. This is used to identify what the current structure of the database's project will be. |
4 | Build number | Essentially a unique identifier for Source builds |
This is why this release is 4.13.0beta rather than 4.12.4beta, as it would have been in the previous system.
Plugin Developers
We have moved to .NET 4.8 and are looking at moving to the new .csproj format on our journey to .net core. Once we complete this, we will require plugin developers to upgrade to Visual Studio 2019.
Regression Testing
We have removed the tolerance in our regression tests to help find issues earlier if we get different results on different machines or versions of operating systems.
Details here: 4.13.0 Regression Test Changes
Insight
To run Insight, you also need to install the 32bit version of Microsoft Visual C++ 2010 Redistributable Package.
This installer is for both 32bit machines and 64bit machines since the library we use is 32bit: Microsoft Visual C++ 2010 Redistributable Package (x86).
Full Release Documentation