TSTool / Commands
This chapter summarizes features in the Commands menu. See also the Command Reference overview.
- Introduction
- Time Series Commands
- Topic Area Commands
- General Commands
- Deprecated Commands
- Table Commands
- Plugin Commands
Introduction
The Commands menu provides choices to insert commands in the Commands list.
Commands Menu
Commands are organized into the following categories:
Command Category | Description |
---|---|
Select/Free Time Series | Select or deselect time series for processing, free time series |
Create Time Series | Create one or more new time series |
Read Time Series | Read time series from a file or database |
Fill Time Series Missing Data | Fill missing data |
Set Time Series Contents | Set time series data or properties |
Manipulate Time Series | Manipulate data (e.g., scale a time series’ data values) |
Analyze Time Series | Perform analysis on time series (e.g., determine wet/dry/average pattern) |
Models – Routing | Lag and attenuate time series |
Output Time Series | Write time series results to a file or produce graphical products |
Check Time Series | Check time series values and statistics against criteria |
Datastore Processing | Commands that are specific to datastore processing |
Ensemble Processing | Commands that are specific to ensemble processing |
Network Processing | Commands that are specific to network processing |
Spatial Processing | Commands that process spatial data |
Spreadsheet Processing | Commands that process spreadsheet files |
Template Processing | Commands that are specific to template processing |
Visualization Processing | Commands that are specific to generating visualizations and output products |
General – Comments | Insert comments |
General – File Handling | Commands to manipulate files and perform FTP and web retrieval |
General – Logging and Messaging | Commands for logging (e.g., open a log file, set message levels) |
General – Running and Properties | Commands to control processing and run external programs |
General – Test Processing | Commands to process tests, to validate software and procedures |
Deprecated Commands | Commands that are planned for removal |
A separate Commands(Table) menu is provided for table-processing commands.
A separate Commands(Plugin) menu is provided for plugin commands, which are third-party commands that are distributed separately from core TSTool and allow custom features. The plugin feature is under development.
The menus for each category are discussed in the following sections. Selecting a command menu item will display a command editor. The editor dialog and command syntax are described in detail in the Command Reference. Menus are enabled/disabled depending on the state of the application (e.g., whether time series are available). When OK is pressed in the command editor, the command will be inserted before the first selected command. If no commands are selected, the command will be added to the end of the command list. If necessary, right click on the command list and use Deselect All Commands – this will ensure that commands are added at the end of the list.
The TSList
command parameter is available for many commands to specify the list of time series to process.
Criteria can be specified to match the alias and TSID strings.
The pattern typically can contain wildcards.
For example, specify TSID=A*
to match aliases starting with A
, or TSID=A*.*.*.Month
to match TSIDs with a location starting with A
.
An identifier string with periods indicates that the string may be a dot-delimited TSID string, and the TSID parts are compared individually.
For example, Command(TSList=AllTS,...)
will process all available time series and
Command(TSList=AllMatchingTSID,TSID=”A*”,...)
will process all time series with an alias that starts with A
.
Refer to the command reference for a description of available parameters for a specific command.
The standard values for the TSList
parameter are as follows:
TSList Parameter Value |
Description |
---|---|
AllMatchingTSID |
Process all time series that match the TSID parameter value. |
AllTS |
Process all time series. |
EnsembleID |
Process all time series for the ensemble identifier specified by the EnsembleID parameter. |
FirstMatchingTSID |
Process the first time series (from the start of commands to the previous command) that matches the TSID parameter. |
LastMatchingTSID |
Process the last (previous to the current command) time series that matches the TSID parameter. |
SelectedTS |
Process all time series that have been selected with SelectTimeSeries and DeselectTimeSeries commands. |
SpecifiedTSID |
Process all time series in the specified list of time series identifiers (for example when used with the Add command theAddTSID parameter is used to provide the specified identifiers). |
Select/Free Time Series
The Commands / Select, Free, Sort Time Series menu inserts commands for selecting, deselecting, freeing, and sorting time series.
Commands / Select, Free, Sort Time Series Menu
Time series can be selected for specific actions and are processed by using the
TSList=SelectedTS
command parameters.
The Free
command frees time series resources,
for example when temporary time series are no longer needed or to free up memory for a large command file.
Create Time Series
The Commands / Create Time Series menu inserts commands for creating new time series.
Commands / Create Time Series Menu
These commands create new time series from user-supplied data
(see NewTimeSeries
) or data from input time series.
A time series created from an existing time series is fundamentally different from the original
and cannot take its place with the same identifier.
For example, the data interval or identifier is different in the new time series.
Consequently, the commands force users to provide new TSID and/or alias information to identify the time series.
Commands may create a single or multiple output time series, although the trend is to continue enhancing commands to allow multiple time series to be processed. TSIDs and/or aliases for new time series are used during the discovery phase of command processing to provide identifiers for later commands. This allows command editors to provide time series choices even when the commands have not been run.
Read Time Series
The Commands / Read Time Series menu inserts commands to read time series from a database, file, or web service (internet).
Commands / Read Time Series Menu
Read commands are alphabetized and are shown for enabled input types. The commands that are shown will depend on the input types and datastores that are enabled. See the Command Reference read time series commands for a full list of read commands. Several commands perform supporting functions, such as setting the input period to read. Some data formats allow only a single time series to be read whereas other formats allow multiple time series to be read. Using read commands rather than TSID commands allows more control over the read, such as assigning an alias and converting data units.
The ReadTimeSeriesList
command uses a delimited input file to provide location information and internally creates a list of TSIDs to read.
Fill Time Series Missing Data
The Commands / Fill Time Series Missing Data menu inserts commands for filling missing data in time series.
Commands / Fill Time Series Missing Data Menu
Fill commands will change only values that are missing, whereas set commands (see next section) will change values regardless of whether they are missing or non-missing. These commands can be executed in sequence to apply multiple fill techniques to time series.
Time series may contain missing data due to the following or other reasons:
- The data collection system is unavailable because of a failure, maintenance cycle, or hardware that is turned off because of seasonal use
- In a real-time system the most current data have not yet been received
- Data collection hardware was not in place during a period (e.g., an early period)
- Measured values are suspected of being in error and are changed to missing
- Values in a computed time series cannot be computed (e.g., input data are missing)
- A data source stores only observed values and non-recorded values are assumed to be missing rather than a specific value (e.g., zero)
Observations that are available typically are either measured values or values
that have been estimated by the organization that collects and/or maintains the data.
Data flags indicating missing data may or may not be available in the
original source data (e.g., an m
or e
character flag often is used to indicate missing and estimated data).
TSTool handles missing data by internally assigning a special numeric value where data are missing.
Different input types may have different missing data values but typically -999
,
a similar extreme value, or NaN
(not a number) is used.
If the output period is specified using SetOutputPeriod
command
or command parameters,
then extensions to the available time series period are filled with the missing data value.
Data flags are supported for some input types.
TSTool displays and output products indicate missing data as blanks,
by showing the missing data value, or a string (e.g., NC
), depending on the constraints of the product.
For example, an HTML time series highlights missing values and shows flags as a superscript.
Filled time series often are required for use in computer models.
TSTool provides a number of features to fill time series data.
The data filling process consists of analyzing available data and using the results to estimate missing data values.
The estimation process can be simple or complex,
resulting in varying degrees of estimation error and statistical characteristics of the final time series.
The data analysis uses data that are available at the time that the fill command is encountered.
Consequently if values have been changed since the initial read (e.g., because of layered fill commands),
the changed values may impact the analysis.
Basic statistical properties of the original data are saved after the initial read to allow use in later fill commands.
For example, for monthly time series, the historical monthly averages are
computed after the initial read to allow use with a FillHistMonthAverage
command.
Fill commands often provide a FillFlag
parameter, which allows filled values to be annotated.
The flags can then be displayed in reports and graphs.
The overall period that is being filled is controlled by the time series period
or analysis period that is specified with fill commands.
TSTool will not automatically extend the period of a filled time series
after the time series is initially read.
Use the SetInputPeriod
and
SetOutputPeriod
commands to control the time series period.
The following table lists the fill techniques that are supported by TSTool.
TSTool Fill Techniques and Associated Commands
Technique | Command | Typical Use |
---|---|---|
Constant | FillConstant |
Use when missing data can be estimated as a constant. For example, if only the early period of a "regulated" (e.g., reservoir) time series is missing, it may be appropriate to set the values to zero. |
Monthly total, daily pattern | FillDayTSFrom2MonthTSAnd1DayTS |
Use to estimate a daily time series by applying the pattern of a related daily time series to monthly totals from the related and current time series. For example, use to estimate daily streamflow from monthly total values. |
Fill from time series | FillFromTS |
Use non-missing values from a time series to fill missing values in another time series. |
Historical Monthly Average | FillHistMonthAverage |
Use with monthly time series to estimate missing monthly values as the average of historic monthly values. For example, if applied to monthly precipitation data, a missing July value would be set to the average of observed July precipitation values (zero is an observation). |
Historical Year Average | FillHistYearAverage |
Use with yearly time series to estimate missing data as the average of annual values. |
HydroBase diversion comments | FillUsingDiversionComments |
This command is only available with the State of Colorado's HydroBase database and uses diversion comments and the “not in use” flag to set additional diversion amounts to zero. |
Interpolation | FillInterpolate |
Use to estimate missing data by interpolating between non-missing values. For example, use to estimate reservoir level changes. |
Mixed Station | FillMixedStation |
This command tries various combinations of FillRegression and FillMOVE2 parameters with time series at different locations, to use the best combination. |
Maintenance of Variance | FillMOVE1 |
Use to estimate missing data using the Maintenance of Variance Extension (MOVE.1). For example, use to estimate unregulated streamflow from a related gage. This command is currently not enabled. |
Maintenance of Variance | FillMOVE2 |
Use to estimate missing data using the Maintenance of Variance Extension (MOVE.2). For example, use to estimate unregulated streamflow from a related gage. This approach has been shown to be slightly better than the MOVE.1 approach. |
Historical Pattern Averages | FillPattern |
Similar to filling with historic averages with additional complexity of classifying historic months into categories. For example, historic averages for wet, dry, and average periods are computed and used as the historic averages. This command requires that the ReadPatternFile control command also be used. |
Prorate | FillProrate |
Fill a time series by prorating known values with another time series. |
Regression | FillRegression |
Use to estimate missing data by using ordinary least squares regression. For example, use to estimate streamflow from a related gage. |
Repeat | FillRepeat |
Use when it can be assumed that the last observed value before a missing period is a good estimate for missing data. For example, use with "forecasted" data where no future value is available for interpolation. |
Fill commands can be used in sequence (e.g., use
FillRegression
,
then FillInterpolate
,
then FillConstant
).
However, the analysis that occurs for each command may be impacted by earlier fill commands.
If necessary, use the SetFromTS
command to
piece together the results of independent fill commands into a final time series.
The Results / Graph – XY-Scatter output provides options for selecting different fill techniques and viewing analysis details.
Set Time Series Data
The Commands / Set Time Series Contents menu inserts commands that set time series data and properties. Unlike fill commands, set commands reset values regardless of whether the values were missing in the time series.
Commands / Set Time Series Contents Menu
Manipulate Time Series
The Commands / Manipulate Time Series menus insert commands for manipulating time series.
Commands / Manipulate Time Series Menu
Because the fundamental nature of the time series (e.g., data type, interval)
is not changed by using these commands,
the commands do not result in the creation of a new time series but change the data values in existing time series.
Manipulation commands typically add comments to the time series history,
which can be viewed with time series properties.
If it is necessary to create a separate time series to contain the result of a manipulation, use a
Copy
, NewTimeSeries
,
or other command to create a “receiving” time series, and then manipulate this new time series.
Analyze Time Series
The Commands / Analyze Time Series menu inserts commands for analyzing time series, which typically produce a report, result time series, or other output product:
Commands / Analyze Time Series Menu
Models - Routing
The Commands / Models – Routing menu inserts commands that perform tasks that are more complex than simple data processes. TSTool does not retrieve or save model states, leaving the handling of states to each model. Currently, the following routing models are available:
Commands / Models - Routing Menu
Minimal model features are currently available. However, it is envisioned that additional capabilities will be added in the future to facilitate calibration and model evaluation.
Output Time Series
The Commands / Output Time Series menu inserts commands for outputting time series.
Commands / Output Time Series Menu
Commands that set global configuration values (e.g., output period) are listed at the start of the menu. The commands that are shown will depend on the input types and datastores that are enabled. See the Command Reference output time series commands for a full list of read commands.
The ProcessTSProduct
and other
commands in the Commands / Visualization Processing menu are used to automate the production of graphs.
Using the output commands allows the results of processing to be saved but does increase processing time. If commands are processed repeatedly during analysis or debugging, the following steps may be taken to increase overall efficiency:
- Output commands that produce output files are not executed if the Commands list is processed with Run / All Commands (ignore output commands) or Run / Selected Commands (ignore output commands). Therefore, use this menu choice to ignore the output commands.
- Only selected commands are processed. Therefore select all but the output commands.
- Use an
Exit
control command before output commands to skip the output commands. This command can then be deleted or commented out when not needed. - Commands can be converted to comments using the Commands menu or the popup menu that is displayed when right-clicking on the Commands list. Therefore, output commands can be temporarily converted to comments until output needs to be created.
Check Time Series
The Commands / Check Time Series menu inserts commands for checking time series.
Commands / Check Time Series Menu
These commands can be used for quality control on raw data and processed time series. A summary of check results can be written to a file to preserve an artifact of data processing.
Datastore Processing
The Commands / Datastore Processing menu provides commands specific to database datastore processing,
Commands / Datastore Processing Menu
Ensemble Processing
The Commands / Ensemble Processing menu provides commands specific to time series ensembles.
These commands can only be used with ensembles.
However, many commands available in menus described above can be used to process ensembles
by processing all of the time series in the ensemble.
See the TSList=EnsembleID
parameter in commands.
Commands / Ensemble Processing Menu
Network Processing
The Commands / Network Processing menu provides commands specific to network processing,
Commands / Network Processing Menu
Spatial Data Processing
The Commands / Spatial Processing menu provides commands specific to spatial data processing.
Commands / Spatial Processing Menu
Spreadsheet Processing
The Commands / Spreadsheet Processing menu provides commands specific to spreadsheet processing.
Commands / Spreadsheet Processing Menu
Template Processing
The Commands / Template Processing menu provides commands specific to template processing.
Commands / Template Processing Menu
Templates are text files that can be expanded to reflect dynamic content.
For example, a template command file can be used to repeat a block of commands for many time series.
The documentation for the ExpandTemplateFile
command provides examples of how templates can be used.
Visualization Processing
The Commands / Visualization Processing menu provides commands specific to view processing.
Commands / Visualization Processing Menu
TSTool lists time series results in the order that time series are created by commands.
However, this can lead to very long lists of time series that are difficult to review.
The NewTreeView
command allows time series
results to be organized in a way that is more appropriate.
Other views may be implemented in the future to facilitate viewing results.
General Commands - Comments
The Commands / General – Comments menu provides choices to insert comments.
Commands / General – Comments Menu
Comments are treated as special commands.
The #
character indicates a single-line comment.
The /*
and
*/
commands indicate multi-line comments
(for example to disable blocks of commands without removing them from the command file).
The #@readOnly
comment is used to protect a command file – TSTool will warn if an attempt is made to save the file.
For example, this special comment is useful to protect old command files that are
archived and should not be changed, even if TSTool command syntax changes.
Inserting # Comments
Comments are inserted by selecting a line in the Commands list and then selecting Commands / General – Comments / # Comment(s).
The comments will be inserted before the selected commands.
Unlike most other command editors, multiple command lines can be selected.
The command editor will automatically insert the #
character.
The following dialog is used to edit comments.
Comment Editor
Start /*
*/
Comments
Multiple commands can be commented using the following notation:
/*
commented commands
commented commands
*/
This syntax is consistent with a number of programming languages, including C, C++, and Java,
and can be used to quickly disable multiple commands.
Use the Commands / General – Comments / /*
End /*
*/
Comments
Use the Commands / General / */
General Commands - File Handling
The Commands / General – File Handling menu provides choices to insert commands that process files.
Commands / General – File Handling Menu
The RemoveFile
command is often used in testing.
The FTPGet
and WebGet
commands are used to retrieve files from the internet.
General Commands - Logging and Messaging
The Commands / General – Logging and Messaging menu provides choices to insert commands used in logging.
It is recommended that each command file use a
StartLog
command as the first command,
to create a log file that can facilitate troubleshooting and reviewing work at a later time.
Setting the debug and warning level with commands can facilitate troubleshooting specific command logic.
Commands / General – Logging and Messaging Menu
General Commands - Running and Properties
The Commands / General - Running and Properties menu provides choices to insert commands related to logic control, running programs, and setting processor properties
Commands / General – Running and Properties Menu
The command processor uses properties to manage controlling information. These properties can be set with commands to facilitate overall workflow logic, for example to allow configuration information to be defined at the start of a command file, and be used by other commands.
The RunCommands
command can be used to create
a “master” command file that runs other command files.
This approach is used to create test suites to validate the TSTool software.
Commands also are available to run external programs, Python scripts,
and the Army Corps of Engineers DSSUTL software, which provides time series processing capabilities.
General Commands - Test Processing
The Commands / General – Test Processing menu provides choices to insert
commands related to software and process testing.
See also the Quality Control chapter.
A test case can be a simple test (e.g., test of a single command with a specific
combination of parameters) or a more complex test (e.g., a test of a command file used to process a data set file).
The CreateRegressionTestCommandFile
can be used to search a folder and sub-folders for command files matching a pattern (e.g., Test_*.TSTool
).
This will create a master command file that includes RunCommands
commands.
These commands are used by software developers to create test suites
to verify TSTool software functionality and can also be used by software users to
verify that a process is certified and gives expected results.
Comparing the results from a specific software version with expected results is useful for diagnosing errors.
Commands / General – Test Processing Menu
The following is an example command file to run the
CreateRegressionTestCommandFile
command:
#
# Create the regression test runner for the
# TSTool/test/test-suites/commands-general files.
#
# Only command files that match Test_*.TSTool are included in the output.
# Don't append the generated commands, in order to force the old file to be
# overwritten.
#
CreateRegressionTestCommandFile(SearchFolder="..\..\..\commands\general",
OutputFile="..\run\RunRegressionTest_commands_general.TSTool",Append=False)
The following command file is generated from the above and can be run to execute the individual tests.
Typically each test uses the
CompareTimeSeries
or
CompareFiles
command to generate a warning if results are not as expected.
StartRegressionTestResultsReport(OutputFile="RunRegressionTest_commands_general.TSTool.out.txt")
RunCommands(InputFile="..\..\..\commands\general\add\Test_Add_1.TSTool")
RunCommands(InputFile="..\..\..\commands\general\add\Test_Add_Ensemble_1.TSTool")
RunCommands(InputFile="..\..\..\commands\general\ChangeInterval\Test_ChangeInterval_IrregINST_To_3HourINST.TSTool")
... etc. ...
Deprecated Commands
The Commands / Deprecated Commands menu provides commands that are slated for removal at some point in the future. These commands should be avoided and newer alternatives should be used. Refer to the command documentation for information in migrating to other commands.
Commands / Deprecated Commands Menu
Table Commands
The Commands(Table) menu provides commands specific to table processing. Tables are defined as row/column data (e.g., from delimited files or databases) where comments can be present in the header and data records, the header defines labels for columns, and columns contain consistent data types (i.e., a column has all dates, all integers, all strings, all floating point numbers). Table rows can be related to a time series by using time series properties such as the location part of the time series identifier.
Commands(Table) Menu
Plugin Commands
The Commands(Plugin) menu provides plugin commands. These commands are distributed separately from the main TSTool software and allow custom commands to be added. These features are under development.
Commands(Plugin) Menu