TSTool / Release Notes / Version 14
- Changes in Version 14.5.0
- Changes in Version 14.4.0
- Changes in Version 14.3.0
- Changes in Version 14.2.2
- Changes in Version 14.2.1
- Changes in Version 14.2.0
- Changes in Version 14.1.1
- Changes in Version 14.1.0
- Changes in Version 14.0.6
- Changes in Version 14.0.5
- Changes in Version 14.0.4
- Changes in Version 14.0.3
- Changes in Version 14.0.2
- Changes in Version 14.0.1
- Changes in Version 14.0.0
- Release notes for all versions
Changes in Version 14.5.0
Feature release to improve cloud and JSON object integration and various fixes.
- [14.5.0] The Results / Objects output has been fixed to only show the object JSON. Previously the internal TSTool object was shown, which wraps the original object and adds The JSON object identifier used by TSTool.
- [14.5.0] The TSTool main user interface code has been made more modular to split out code for different data sources to improve maintainability. The class names shown in the log file may have changed.
- [14.5.0] The syntax for specifying a date/time, for example in
the
SetInputPeriod
command now supports rounding to week using the following syntax, which is useful to automate weekly scheduled workflows:CurrentToDay.RoundToDayOfWeek(Wednesday).RoundDirection(>)
- [14.5.0] The
ManipulateTableString
command has been updated:- The substring operator now supports negative positions to extract substrings at the end of a string.
- The substring operator will now extract partial strings if the starting position is within the string but the ending position is past the end of the string.
- [14.5.0] The
WriteTableToMarkdown
command has been updated:- Columns values that start with
http
are automatically formatted as links. - The
LinkColumns
command parameter has been added to specify the link text (default is to show the link URL).
- Columns values that start with
- [14.5.0] Update the documentation organization:
- Add a "Processing" chapter with pages for each group of commands that process various data. This provides background and help with training. Examples will be added over time. Previous content for spatial data and spreadsheet processing have been moved to sections of this chapter and the documentation may be further reorganized once initial documentation content is added.
- Add the Reference - Plugins documentation to list known TSTool plugins.
- [14.5.0] Add features to track command file versions and improve attribution and documentation,
which helps with command file maintenance and collaboration:
- The
# comment
annotations now include@author
,@version
,@versionDate
,@sourceUrl
, and@docUrl
. - The Tools / Commands menu has been added with tools to check for updates to the command file and allow comparison of the current commands to the original source.
- The
- [14.5.0] The
SetObjectProperty
command has been added to set object property values.
Changes in Version 14.4.0
Feature release to improve cloud integration, fix HEC-DSS, add support for object data type, and various fixes.
- [14.4.0] The primary TSTool development environment is now Windows 11 using 64-bit Java 8.
- [14.4.0] Verify integration of the TSTool AWS Plugin from the Open Water Foundation in production workflows to publish datasets to the cloud.
- [14.4.0] Add general objects as a top-level data construct:
- Add a new Commands / Object Processing menu.
- Add a new Results / Objects tab for results.
- [14.4.0] Add new commands to process objects:
NewObject
- create a new object from JSON text or fileFreeObject
- free an objectSetObjectPropertiesFromTable
- set object properties from a tableWriteObjectToJSON
- write an object to a JSON file
- [14.4.0] Fix so that the
TSTool.cfg
DiffProgram
property handles a comma-separated list to allow for multiple candidate difference programs to be specified, and handle in the main program and theCompareFiles
command. The default configuration file has been updated to handle multiple KDiff3 installation folders. - [14.4.0] Fix the HEC-DSS features:
ReadHecDss
and theWriteHecDss
commands and interactive browsing had been broken since TSTool was updated to 64-bit architecture.- Update the
ReadHecDss
command to haveCloseAfterRead
parameter to help with file locking.
- [14.4.0] Fix the
CompareTables
command to detect tables of different lengh (previously the number of rows in the first table controlled the comparison) - [14.4.0] Update configuration and documentation to use
https
where possible. - [14.4.0] The time series table view header now shows units in parentheses and minor formatting cleanup avoids headers ending in a comma.
- [14.4.0] Commands that provide a choice on time series interval now include
precision on irregular time series (e.g.,
IrregSecond
). This allows for better handling of date/time precision in workflows. - [14.4.0] The
Cumulate
command has been updated:- The default value for the
ResetValue
parameter (used withReset
parameter) has been changed toDataValue
. The previous value of0
causes the first value in the new year to always be zero, even if a non-zero data value is present at that date/time, which causes a value to be ignored and the cumulative value to be shorted by the ignored value. This is more of an issue for monthly time series where 1 out of 12 values is ignored.
- The default value for the
- [14.4.0] The
If
command has been updated:- Added the
FileExists
andFileDoesNotExist
parameters to test whether a file exists. - Added the
ObjectExists
andObjectDoesNotExist
parameters to test whether an object exists. - Added the
TableExists
andTableDoesNotExist
parameters to test whether a table exists. - Added the
TSDoesNotExist
parameter to test whether a table does not exist.
- Added the
- [14.4.0] The
ReadDelimitedFile
command has been updated to list additional data interval for irregular time series. The intervals include the precision that should be used for date/times, for exampleIrregSecond
. - [14.4.0] The
ReadPropertiesFromFile
command has been updated:- Added the
Value
file type, to allow reading a file's contents into a property, which is useful when manipulating text files, such as with theTextEdit
command.
- Added the
- [14.4.0] Update the
WriteDelimitedFile
command to have theDataFlagColumns
parameter to optionally output data flag column(s)
Changes in Version 14.3.0
Feature release to improve automated testing, cloud integration, and reenable Microsoft Access support.
- [14.3.0] The
Comment command has been updated:
- Added
@enabledif
annotation similar to@require
that disables a command file test for automated testing when a requirement is not met. - Fixed bug where
@require
was not being properly handled when checking the HydroBase version, when run in a test suite.
- Added
- [14.3.0] Fix the
ColoradoHydroBaseRest
datastore:- Null date/time objects, for example in the
porStart
andporEnd
for data types were causing theHydroBaseWeb
datastore to not initialize when TSTool starts. This may be due to changes in how the State publishes data. - Null date/times are now passed through as nulls, which may cause problems later in processing.
- Null date/time objects, for example in the
- [14.3.0] Fix to support Microsoft Access databases again for
GenericDatabaseDatastore
:- Direct use of ODBC data source names was dropped in Java 8 (TSTool 12).
- Implement the UcanAccess software with pure Java JDBC connection to Access instead.
- Add Access support in the
OpenDataStore
command and add theConnectionProperties
command parameter to allow additional connection priperties. - Add the
NewAccessDatabase
command.
- [14.3.0] Fix the
ProcessTSProduct
command to parse time series product file colors that use format#ffffff
. - [14.3.0] Fix the
ReadTableFromDelimitedFile
command to determine floating point number column precision even if the values are quoted. TheDoubleColumns
command parameter allow such values to be read as numbers, and precision is used for displays after reading. - [14.3.0] Fix the
WebGet
command:- Handle URL with query values that have equal sign in the parameter value.
- Improve handling of supported HTTP methods.
- [14.3.0] Fix the
WriteTableToGeoJSON
command editor so that theAppend
parameter field does not overwrite other fields. - [14.3.0] Add built-in processor properties:
RunTimeMs
- number of milliseconds for commands to run. This is useful for performance evaluation.WarningCount
- number of warning messages from commands in the last run. This is useful for workflow success checks.FailureCount
- number of failure messages from commands in the last run. This is useful for workflow success checks.
- [14.3.0] Update the
CompareFiles
command:- Allow the input file(s) to be specified with a URL, to compare web-hosted file(s).
- Add the
WaitUntil
and related parameters to allow repeated comparison of files until the condition of same or different files is met.
- [14.3.0] Update the
ReadDateValue
command:- Add the
IfNotFound
parameter to ignore reading if the file does not exist, which is useful for reading files during troubleshooting.
- Add the
- [14.3.0] Update the
ReadNrcsAwdb
command:- Allow
${Property}
in state. - Increase speed at startup when using properties.
- Allow
- [14.3.0] Update the
RunCommands
command:- Handle
@enabledif
annotations. - Add the
AppendOutputFiles
parameter to append the command's output files to the main output file list. - Add the
WarningCountProperty
andFailureCountProperty
parameters to allow handling errors in the command file that is run.
- Handle
- [14.3.0] Update the
TableMath
command:- Add
Max
andMin
operators. - Change so that the precision of floating point output columns is the maximum of the input columns.
- Add
- [14.3.0] Update the
WriteDateValue
command:- The
WriteDataFlags
parameter has been added to control whether data flags are written. - The
WriteSeparateFiles
parameter has been added to control whether one or separate output files for each time series are written. - The
WriteHeaderComments
andHeaderComments
parameters have been added to control how output file header comments are written.
- The
- [14.3.0] Update the
WriteDelimitedFile
command:- The
WriteSeparateFiles
parameter has been added to control whether one or separate output files for each time series are written. - The
WriteHeaderComments
andHeaderComments
parameters have been added to control how output file header comments are written.
- The
Changes in Version 14.2.2
Maintenance release to address issues found in the HydroBase REST web services datastore.
- [14.2.2] Fix issues identified while implementing the
ColoradoHydroBaseRest datastore:
- Tested with HydroBase 20200330 version.
- Fixed issue where HydroBase database
SnowDepth
data type was returning-2147483648
for missing values because the database changed from integer to floating number type.
- [14.2.2] Fix bug where View / Data Units resulted in an error.
Changes in Version 14.2.1
Maintenance release to disable real-time data in HydroBase database datastore, other cleanup for recent releases.
- [14.2.1] Remove real-time data in HydroBase datastore and input type since
no longer supported in the current HydroBase approach and data are available in the
ColoradoHydroBaseRest datastore.
The
Irregular
interval (timestep) has been removed from the following data types, and the data type has also been removed if real-time interval was the only choice:AdminFlow - AdminFlow
(Day
andMonth
remain)Hardware - Battery
(real-time only)Climate - Precip
(Day
andMonth
remain)Climate - Temp
(has real-time only)Reservoir - PoolElev
(has real-time only)Reservoir - Release
(has real-time only)Reservoir - Stage
(has real-time only)Reservoir - Storage
(has real-time only)Stream - WatTemp
(has real-time only)Well - WellLevel
(has multiple intervals but have been phasing out for years so remove)Well - WellLevelElev
(has real-time only)
- [14.2.1] Fix the graphing tool to show mouse tracker when irregular time series do not have fully-overlapping periods. Also add the tracker option NearestWithId to show the time series identifier on the tracker, which is useful when many time series are shown.
- [14.2.1] Fix bug where sub-second precision dates were truncating when read if the fractional digits did not match a handled interval. For example, 4 digits would truncate to milliseconds. The software will now use the next highest precision if the number of digits being parsed is not an exact match for hundredths, milli, micro, or nanoseconds, and additional zeros will be added at the end.
- [14.2.1] Fix the
Cumulate
command so an error is not shown for theReset
parameter if not specified (the parameter is optional). - [14.2.1] Update the
WebGet
command to haveHttpHeaders
parameter to pass HTTP header properties with the request.
Changes in Version 14.2.0
Feature release to add HydroBase REST web services for historical climate and surface water stations, and add support for sub-second time.
- [14.2.0] The ColoradoHydroBaseRest
web service has new functionality:
- Historical climate station time series can now be read.
- Historical surface water station time series (streamflow) can now be read.
- The
ReadColoradoHydroBaseRest
command has been updated to read the above historical time series. - Time series identifier commands for the datastore read the above historical time series.
- The datastore documentation has been significantly updated.
- [14.2.0] The Agriculture/NASS
CropArea
data type was listed for HydroBase; however, time series that were listed could not be transferred to the command list. This has been fixed. - [14.2.0] Code for DIADvisor input type has been removed. The software features had not been used for many years and were unsupported.
- [14.2.0] Internal date/time objects have been updated to support sub-second precision, as follows:
- Nanonsecond, microsecond, millisend, and hundredths of second fractional seconds are supported and are handled automatically during date/time parsing and formatting. Previously only hundredths of seconds was supported.
- Begin phasing in precision for irregular time series time interval.
For example
IrregSecond
is used for irregular time series with date/times that use precision to second. High precision time is handled, for example to track exact measurement times for real-time data values. - Several commands listed below have been updated to utilize the new functionality and additional features will be updated over time.
- [14.2.0] Time series now have a built-in data precision property that is used for output if specified, which will override the precision determined from data units. Use the Results / Time Series Properties menu to view a time series' precision.
- [14.2.0] Update the
CreateTimeSeriesEventTable
command to support analysis of time series data to determine events. - [14.2.0] Update the
FormatTableDateTime
command to allow incremental time offset to use floating-point number with fractional intervals. For example, fractional minutes can be processed. - [14.2.0] Update the
TableToTimeSeries
command to support sub-second precision for irregular interval time series. TheIrregularIntervalPrecision
now acceptsHSecond
,Millisecond
,Microsecond
, andNanosecond
.
Changes in Version 14.1.1
Maintenance release to fix features used in automated testing.
- [14.1.1] Handling of the
--datastore-substitute
behavior was not consistent across multiple testing environments. Fixes were implemented and documentation was updated. Fix the View / Datastores table to more clearly indicate when a datastore is involved in a substitute.
Changes in Version 14.1.0
Feature release to format table as Markdown and improve file handling.
- [14.1.0] Add the
SetTableColumnProperties
command to set table column properties, used when formatting output. - [14.1.0] Add the
WriteTableToMarkdown
command to write a table to a Markdown format file. - [14.1.0] Update the
AppendFile
command:- The output file can be the same as an input file (input file will be overwritten).
- Input files can now be specified as a comma-separated-value list of filenames or patterns.
- Filename pattern handling has been enhanced.
- The
AppendText
parameter has been added to append text to a file. - Increase flexibility of wildcard (glob) pattern matching.
- [14.1.0] Update the
StartRegressionTestResultsReport
command to output a report withnonum
in the name. The file is the same as the normal output but with test numbers removed, which is useful for comparing one test suite output to another. - [14.1.0] Update the
Cumulate
commandReset
parameter to allow${Property}
notation. - [14.1.0] Update the
FormatFile
command to allow overwriting the input file.
Changes in Version 14.0.6
Maintenance release for to improve @require
functionality.
- [14.0.6] Updated the
@require
Comment command:- Improve the
@require
software design to allow datastores more flexibility in implementing requirements. - Add the datastore type to
@require
command status messages to improve troubleshooting.
- Improve the
Changes in Version 14.0.5
Maintenance release for testing and to update the log4j
library.
- [14.0.5] Update the
Log4J
library to version 2.17.1 for security patches. - [14.0.5] Updated the
FormatStringProperty
command:- Add the
IntegerFormat
,Endianness
,Delimiter
, andNumBytes
parameters to format integer properties as hex code string, which is useful for automated testing.
- Add the
Changes in Version 14.0.4
Maintenance release to update training materials and respond to "Log4Shell" vulnerability.
- [14.0.4] Update the
log4j
library to version 2.17.0 in response to the "Log4Shell" security vulnerability. See the Apache Log4J Vulnerability Guidance documentation. - [14.0.4] Fix a bug introduced in the previous release that broke transfer of time series
identifiers from the time series list to TSID commands.
This bug was due to new features that handle datastore aliases used in software testing.
The bug mainly impacts the case where the HydroBase input type is used with TSID commands.
If version 14.0.3 is used, the work-around is to configure a HydroBase datastore named
HydroBase
. - [14.0.4] Training materials that are distributed in the
doc/training
folder have been updated to be compatible with the latest software features. Additional training presentations will be added in the future as training materials are updated. The Training documentation now links to online training materials. - [14.0.4] Updated the
WebGet
command to handle redirects.
Changes in Version 14.0.3
Maintenance release for Reclamation Linux version.
- [14.0.3] Updated the
CompareTimeSeries
command to haveAllowedDiff
parameter - [14.0.3] Minor changes to ReclamationHDB commands based on testing.
Changes in Version 14.0.2
Maintenance release with changes to address issues and features needed for automated testing.
- [14.0.2] Fix bug related to substitute datastore features:
- was causing an exception editing commands that operate on datastores, fixed in the following commands:
- substitute datastore name was not being used to form time series identifiers in the man user interface - the selected datastore (which may be a substitute) is now used to create TSID commands
- [14.0.2] Fix the
TableToTimeSeries
command so that irregular interval data outside the requested period are not set in the time series. - [14.0.2] Change the
ReadTableFromDelimitedFile
commandIncludeText
andExcludeText
parameters to automatically convert*
wildcard to Java.*
to simplify wildcard use and be consistent with other commands. - [14.0.2] Update the
ReadTableFromDelimitedFile
command:- allow
*
in the filename - fix the
HeaderLines
parameter to work
- allow
- [14.0.2] Update commands to improve handling database functions and procedures:
- [14.0.2] Add
--ui-titlemod=TitleMod
TSTool program parameter to specify a string to use in the TSTool main UI title bar, to specifically identify the TSTool session .
Changes in Version 14.0.1
Maintenance release with minor changes to address issues and features needed for automated testing.
- [14.0.1] Fix command processing so that if a command has an error, the command's output files will be listed in the Results / Output Files. Previously, a command with an error would not list its output files.
- [14.0.1] Fix problem with command documentation not finding latest documentation
if versioned documentation does not exist and update documentation URLs to
https
. - [14.0.1] Fix the
CompareTimeSeries
command to properly handle comparing two files or ensembles. - [14.0.1] Fix bug where command with
#@expectedStatus
comment that, when run returned a different status, was not resulting in a failure indication in the user interface. - [14.0.1] Add a Cancel button to the Tools / Diagnostics dialog and clarify the tooltips on buttons related to setting diagnostics properties.
- [14.0.1] Add
TSTool.cfg
configuration propertiesDiffProgram.Windows
andDiffProgram.Linux
to allow configuring visual difference program for each environment without having to change the singleDiffProgram
configuration property, and default to KDiff3 as an example of typical use. - [14.0.1] Update the following commands to list datastores opened with
OpenDataStore
command, used in automated testing (previously only listed datastores that are opened at startup, which limited the ability to edit command parameters): - [14.0.1] Message dialogs now show text that can be highlighted and copied.
- [14.0.1] Update the
CreateRegressionTestCommandFile
command:- Improve how test suites are handled with
IncludeTestSuite
andExcludeTestSuite
. The behavior is now intuitive. - Add support for
@os linux
, which is equivalent to@os UNIX
. - Allow the
SearchFolder
parameter to list more than one folder
- Improve how test suites are handled with
- [14.0.1] Update the
FormatTableDateTime
command to support seconds forIncrementBaseUnit
parameter. - [14.0.1] Update the
Message
command to havePromptActions
parameter, which enables interactive prompts to confirm message in command workflows, for example to prompt for confirmation for destructive actions such as removing files and folders. - [14.0.1] Update the
ReadStateModB
command to haveOutputVersion
parameter, which allows converting old data files to current format. - [14.0.1] Update the
ReadTableFromDataStore
command:- allow newline character in
Sql
parameter to format multi-line SQL - default floating point column precision to 6 digits for SQLite databases
- add
OutputProperties
parameter to set output properties when a single row is returned
- allow newline character in
- [14.0.1] Update the
ReadTableFromDelimitedFile
command to accept space forDelimiter
parameter, using\s
notation. - [14.0.1] Update the
RunCommands
command to haveStdoutProperty
parameter. - [14.0.1] Fix the
Wait
command to properly handle small wait time specified as decimal fraction of second. - [14.0.1] Update the
WriteTableToDelimitedFile
command to haveIncludeColumns
andExcludeColumns
parameters. - [14.0.1] Add
--datastore-substitute=datastore,substitute
TSTool program parameter to specify substitute datastore name, useful for automated testing.
Changes in Version 14.0.0
This is the first 64-bit Java release. See also many new features that were added in the last 13.x releases.
- [14.0.0] This is the first 64-bit release with new major version number 14:
- Installing version 14 will automatically copy a user's
.tstool
configuration files for previous version to this version. - The HEC-DSS features are disabled. Additional resources are needed to update the software to use 64-bit libraries for HEC-DSS.
- This 64-bit version is constrained only by available memory on the computer and can be configured to use more memory for large datasets, if necessary. This is an improvement over the 32-bit version, which was constrained to approximately 1.2 GB of memory use.
- Installing version 14 will automatically copy a user's
- [14.0.0] Enhance the raster graph:
- The
ProcessRasterGraph
commandTSProductFile
andOutputFile
parameters can now be specified using${Property}
syntax. - Time series product file now accepts a
Data
propertySymbolTablePath
, which specifies the path to a symbol table, which describes the colors for the raster graph. If not specified, the raster graph uses deciles, after rounding the minimum and maximum values. - The
Data
propertyRasterGraphLegendPosition
has been added, and currently always defaults toRight
. A color legend is always shown. - An optional mouse tracker can be enabled in the graph window.
- Improved the mouse position information to include the symbol table range, consistent with the symbol table for colors.
- Improve the handling of colors.
- Attempting to zoom cased errors. Zoom is now disabled.
- The
- [14.0.0] Update the
CompareTimeSeries
command:- The
WarnIfDifferent
andWarnIfSame
parameters have been changed toIfDifferent
andIfSame
to provide more flexibility, similar to other commands. - The
CreateDiffTS
parameter has been updated to provideIfDifferent
option, which will only create the difference time series for cases where a difference is detected. This significantly reduces the number of output time series and increases processing speed. - Add
DifferenceFile
parameter to indicate a file listing the difference counts for all time series. The output was previously always saved in the log file, which led to large log files. - Add
SummaryFile
parameter to indicate a file listing the summary of time series with differences. Time series without differences are not included in the summary. The output was previously always saved in the log file. - Add
MatchAlias
parameter to match time series alias. - Improve error checks and warnings when a time series cannot be matched.
- Improve performance.
- The
- [14.0.0] Update the
ReadStateCUB
command:- Added the
OutputVersion
parameter to allow old binary files to be translated to latest format, necessary to minimize differences when testing.
- Added the
- [14.0.0] Update the
ReadStateModB
command:- Ignores parameter with name
NA
, which are placeholders that don't have data. - Handle the case where
b44
(reservoir) file contains no reservoir stations. - Add
IfFileNotFound
parameter to provide more control over error handling.
- Ignores parameter with name
- [14.0.0] Add the
--java-xmx
parameter to the Linuxtstool
shell script to set the maximum computer memory to use for TSTool Java Runtime Environment. - [14.0.0] Added the
--space-replacement
TSTool command line parameter to help with commands lines that include spaces in parameters.