CSIJSON
CSIJSON files contain header information and data in a JSON
(p. 519) format.
Example:
"signature": 38611,"environment": {"stationfiname": "11467","tablefiname":
"Test","model": "CR1000","serialfino": "11467",
"osfiversion": "CR1000.Std.21.03","progfiname": "CPU:file format.CR1"},"fields":
[{"name": "battfivoltfiMin","type": "xsd:float",
"process": "Min"},{"name": "PTemp","type": "xsd:float","process": "Smp"}]},
"data": [{"time": "2011-01-06T15:04:15","no": 0,"vals": [13.28,21.29]},
{"time": "2011-01-06T15:04:30","no": 1,"vals": [13.28,21.29]},
{"time": "2011-01-06T15:04:45","no": 2,"vals": [13.28,21.29]},
{"time": "2011-01-06T15:05:00","no": 3,"vals": [13.28,21.29]}]}
Data File-Format Elements
Header
File headers provide metadata that describe the data in the file. A TOA5
header contains the metadata described below. Other data formats contain
similar information unless a non-header format option is selected in the
TableFile() instruction in the CR1000 CRBasic program.
Line 1 – Data Origins
Includes the following metadata series: file type, station name, CR1000
model name, CR1000 serial number, OS version, CRBasic program name,
program signature, data-table name.
Line 2 – Data-Field Names
Lists the name of individual data fields. If the field is an element of an array,
the name will be followed by a comma-separated list of subscripts within
parentheses that identifies the array index. For example, a variable named
“values” that is declared as a two-by-two array, i.e.,
Public Values(2,2)
will be represented by four field names: “values(1,1)”, “values(1,2)”,
“values(2,1)”, and “values(2,2)”. Scalar (non-array) variables will not have
subscripts.
Line 3 – Data Units
Includes the units associated with each field in the record. If no units are
programmed in the CR1000 CRBasic program, an empty string is entered for
that field.
Line 4 – Data-Processing Descriptors
Entries describe what type of processing was performed in the CR1000 to
produce corresponding data, e.g., Smp indicates samples, Min indicates
minima. If there is no recognized processing for a field, it is assigned an
empty string. There will be one descriptor for each field name given on
Header Line 2.
Record Element 1 – Timestamp
Data without timestamps are usually meaningless. Nevertheless, the
380