TSTool / Command / ReadTableFromFixedFormatFile
ReadTableFromFixedFormatFile command reads a table from a fixed-format file,
for example input files to scientific models.
Columns are indicated by a column type and width. Files have the following characteristics:
- Comments indicated by lines starting with
#are stripped during the read.
- Extraneous lines in the file can be skipped during the read using the
SkipLinesparameter (not yet implemented).
- Files cannot have header lines (see the
ColumnNamesparameter) – header lines will be handled in the future.
- Data in columns are assumed to be of consistent type (i.e., all numerical data or all text), based on the format specifier (see
- Missing values can be indicated by blanks in the input file.
- Values in adjacent columns that have no intervening space are read properly.
The following dialog is used to edit the command and illustrates the command syntax.
ReadTableFromFixedFormatFile Command Editor (see also the full-size image)
The command syntax is as follows:
|Identifier to assign to the table that is read, which allows the table data to be used with other commands.||None – must be specified.|
|The name of the file to read, as an absolute path or relative to the command file location.||None – must be specified.|
|The data format, using a combination of the following specifiers (N is a number to be inserted and indicates the column width):
||None – must be specified.|
||Indicates the number of lines in the file to skip, which otherwise would interfere with reading row data. Individual row numbers and ranges can be specified, for example:
Not yet implemented.
|No lines are skipped.|
||Indicate the rows that include header information, which should be used for column names. Currently this should only be one row, although a range may be fully supported in the future. Not yet implemented.||If the first non-comment line contains quoted field names, they are assumed to be headers. Otherwise, no headers are read.|
||The names to assign to columns that are read.||
See the automated tests.
The following example illustrates a fixed-format file.
In this case the name includes a string name and a “node type” separated by an underscore.
The following data format can be specified to ignore the underscore and read the parts:
ColumnNames parameter is used to assign column names to the output table.
#> ******************************************************* #> StateMod River Network File #> WARNING - if .net file is available, it should be edited and the .rin #> file should be created from the .net #> #> format: (a12, a24, a12, 1x, a12, 1x, f8.0) #> #> ID cstaid: Station ID #> Name stanam: Station name #> Downstream cstadn: Downstream node ID #> Comment comment: Alternate identifier/comment. #> GWMax gwmaxr: Max recharge limit (cfs) - see iwell in control file. #> #> ID Name DownStream Comment GWMax #>---------eb----------------------eb----------exb----------exb------e #> #>EndHeader #> 514601 GRAND RIVER DITCH _DIV09010500 514601 -999 09010500 COLORADO RIVER BELOW_FLO512068 09010500 -999 512068 MIN FLOW N FK COLORA_ISF510848 512068 -999 510848 REDTOP VALLEY DITCH _DIV512068_Dwn 510848 -999 512068_Dwn _OTH09011000 512068_Dwn -999 09011000 COLORADO RIVER NEAR _FLO513695 09011000 -999 513695 CBT SHADOW MTN GRAND_RES514634 513695 -999 514634 CBT ALVA B ADAMS TUN_DIV953695 514634 -999 953695 SHADOW MTN RES BYPAS_ISF953695_Dwn 953695 -999 953695_Dwn _OTH512069 953695_Dwn -999
The following table in TSTool illustrates the resulting output:
ReadTableFromFixedFormatFile Command Output Table Example (see also the full-size image)