Since the user may wish to create SDDS data sets without using the SDDS function library, a more detailed description of the structure of ASCII data pages is provided. Comment lines (beginning with an exclamation point) may be placed anywhere within a data page. Since they essentially do not exist as far as the SDDS routines are concern, I omit mention of them in what follows.
The first SDDS data page begins immediately following the data command and the optional additional header
lines, the number of which is specified by the additional_header_lines
parameter of the data command.
If parameters have been defined, then the next
lines each contains the value of a single parameter, where is the total number of parameters and is the number of parameters for
which the fixed_value
field was specified. These will be assigned to the parameters in the order that the
parameter
commands occur in the header. Multi-token string parameters need not be enclosed in quotation marks.
If arrays have been defined, then the data for these arrays comes next. There must be at least one ASCII line for each array. This line must contain a list of whitespace-separated integer values giving the size of the array in each dimension. The number of values must be that given by the dimensions field of the array definition. If the number of elements in the array (given by the product of these integers) is nonzero, then additional ASCII lines are read until the required number of elements has been scanned. It is an error for a blank line or end-of-file to appear before the required elements have been scanned.
If tabular-data columns have been defined, the data for these elements follows. If the no_row_counts
parameter of the data command is zero, the first line of this section is expected to contain an integer giving
the number of rows in the upcoming data page. If no_row_counts
is non-zero, no such line is expected. The
remainder of the tabular data section has various forms depending on the parameters of the command, as
discussed above. The default format is that each line contains the whitespace-separated values for a single row of
the tabular data.
For column and array data, string data containing whitespace characters must be enclosed in double-quotes. For column, array, and parameter data, nonprintable character data should be ``escaped'' using C-style octal sequences.
More than one data page may appear in the data set. Subsequent data pages have the same structure as just described.
If no_row_counts=1
is given in the data command, then a blank line is taken to end each data set. An invalid
line (e.g., too few rows or invalid data) is treated as an error, and the rest of the file is ignored.