Skip to content

TSTool / Release Notes / Version 14


Known Limitations

  • limitation [14.0.0+] Features that were previously available for reading and writing HEC-DSS files are disabled. Additional resources are needed to update the software to use 64-bit libraries for HEC-DSS.

Changes in Version 14.3.0

Feature release to improve automated testing, cloud integration, and reenable Microsoft Access support.

  • new [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.
  • bug [14.3.0] Fix the ColoradoHydroBaseRest datastore:
    • Null date/time objects, for example in the porStart and porEnd for data types were causing the HydroBaseWeb 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.
  • bug [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 the ConnectionProperties command parameter to allow additional connection priperties.
    • Add the NewAccessDatabase command.
  • bug [14.3.0] Fix the ProcessTSProduct command to parse time series product file colors that use format #ffffff.
  • bug [14.3.0] Fix the ReadTableFromDelimitedFile command to determine floating point number column precision even if the values are quoted. The DoubleColumns command parameter allow such values to be read as numbers, and precision is used for displays after reading.
  • bug [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.
  • bug [14.3.0] Fix the WriteTableToGeoJSON command editor so that the Append parameter field does not overwrite other fields.
  • change [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.
  • change [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.
  • change [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.
  • change [14.3.0] Update the ReadNrcsAwdb command:
    • Allow ${Property} in state.
    • Increase speed at startup when using properties.
  • change [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 and FailureCountProperty parameters to allow handling errors in the command file that is run.
  • change [14.3.0] Update the TableMath command:
    • Add Max and Min operators.
    • Change so that the precision of floating point output columns is the maximum of the input columns.
  • change [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 and HeaderComments parameters have been added to control how output file header comments are written.
  • change [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 and HeaderComments parameters have been added to control how output file header comments are written.

Changes in Version 14.2.2

Maintenance release to address issues found in the HydroBase REST web services datastore.

  • bug [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.
  • bug [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.

  • remove [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 and Month remain)
    • Hardware - Battery (real-time only)
    • Climate - Precip (Day and Month 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)
  • bug [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.
  • bug [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.
  • bug [14.2.1] Fix the Cumulate command so an error is not shown for the Reset parameter if not specified (the parameter is optional).
  • change [14.2.1] Update the WebGet command to have HttpHeaders 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.

  • new [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.
  • bug [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.
  • remove [14.2.0] Code for DIADvisor input type has been removed. The software features had not been used for many years and were unsupported.
  • change [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.
  • change [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.
  • change [14.2.0] Update the CreateTimeSeriesEventTable command to support analysis of time series data to determine events.
  • change [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.
  • change [14.2.0] Update the TableToTimeSeries command to support sub-second precision for irregular interval time series. The IrregularIntervalPrecision now accepts HSecond, Millisecond, Microsecond, and Nanosecond.

Changes in Version 14.1.1

Maintenance release to fix features used in automated testing.

  • bug [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.

  • new [14.1.0] Add the SetTableColumnProperties command to set table column properties, used when formatting output.
  • new [14.1.0] Add the WriteTableToMarkdown command to write a table to a Markdown format file.
  • change [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.
  • change [14.1.0] Update the StartRegressionTestResultsReport command to output a report with nonum 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.
  • change [14.1.0] Update the Cumulate command Reset parameter to allow ${Property} notation.
  • change [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.

  • change [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.

Changes in Version 14.0.5

Maintenance release for testing and to update the log4j library.

  • bug [14.0.5] Update the Log4J library to version 2.17.1 for security patches.
  • change [14.0.5] Updated the FormatStringProperty command:
    • Add the IntegerFormat, Endianness, Delimiter, and NumBytes parameters to format integer properties as hex code string, which is useful for automated testing.

Changes in Version 14.0.4

Maintenance release to update training materials and respond to "Log4Shell" vulnerability.

  • bug [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.
  • bug [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.
  • change [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.
  • change [14.0.4] Updated the WebGet command to handle redirects.

Changes in Version 14.0.3

Maintenance release for Reclamation Linux version.

  • change [14.0.3] Updated the CompareTimeSeries command to have AllowedDiff parameter
  • change [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.

  • bug [14.0.2] Fix bug related to substitute datastore features:
  • bug [14.0.2] Fix the TableToTimeSeries command so that irregular interval data outside the requested period are not set in the time series.
  • change [14.0.2] Change the ReadTableFromDelimitedFile command IncludeText and ExcludeText parameters to automatically convert * wildcard to Java .* to simplify wildcard use and be consistent with other commands.
  • change [14.0.2] Update the ReadTableFromDelimitedFile command:
    • allow * in the filename
    • fix the HeaderLines parameter to work
  • change [14.0.2] Update commands to improve handling database functions and procedures:
  • new [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.

  • bug [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.
  • bug [14.0.1] Fix problem with command documentation not finding latest documentation if versioned documentation does not exist and update documentation URLs to https.
  • bug [14.0.1] Fix the CompareTimeSeries command to properly handle comparing two files or ensembles.
  • bug [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.
  • change [14.0.1] Add a Cancel button to the Tools / Diagnostics dialog and clarify the tooltips on buttons related to setting diagnostics properties.
  • change [14.0.1] Add TSTool.cfg configuration properties DiffProgram.Windows and DiffProgram.Linux to allow configuring visual difference program for each environment without having to change the single DiffProgram configuration property, and default to KDiff3 as an example of typical use.
  • change [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):
  • change [14.0.1] Message dialogs now show text that can be highlighted and copied.
  • change [14.0.1] Update the CreateRegressionTestCommandFile command:
    • Improve how test suites are handled with IncludeTestSuite and ExcludeTestSuite. 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
  • change [14.0.1] Update the FormatTableDateTime command to support seconds for IncrementBaseUnit parameter.
  • change [14.0.1] Update the Message command to have PromptActions 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.
  • change [14.0.1] Update the ReadStateModB command to have OutputVersion parameter, which allows converting old data files to current format.
  • change [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
  • change [14.0.1] Update the ReadTableFromDelimitedFile command to accept space for Delimiter parameter, using \s notation.
  • change [14.0.1] Update the RunCommands command to have StdoutProperty parameter.
  • change [14.0.1] Fix the Wait command to properly handle small wait time specified as decimal fraction of second.
  • change [14.0.1] Update the WriteTableToDelimitedFile command to have IncludeColumns and ExcludeColumns parameters.
  • new [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.

  • change [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.
  • change [14.0.0] Enhance the raster graph:
    • The ProcessRasterGraph command TSProductFile and OutputFile parameters can now be specified using ${Property} syntax.
    • Time series product file now accepts a Data property SymbolTablePath, 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 property RasterGraphLegendPosition has been added, and currently always defaults to Right. 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.
  • change [14.0.0] Update the CompareTimeSeries command:
    • The WarnIfDifferent and WarnIfSame parameters have been changed to IfDifferent and IfSame to provide more flexibility, similar to other commands.
    • The CreateDiffTS parameter has been updated to provide IfDifferent 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.
  • change [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.
  • change [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.
  • change [14.0.0] Add the --java-xmx parameter to the Linux tstool shell script to set the maximum computer memory to use for TSTool Java Runtime Environment.
  • new [14.0.0] Added the --space-replacement TSTool command line parameter to help with commands lines that include spaces in parameters.