btsfTM is a revolutionary1 advanced data format that utilizes state-of-the-art 0 and 1 technology to communicate time series data in a compact and efficient manner.
All numbers are little-endian.
N: uint32 number of data pointsL: uint32 length of the name in bytesX1: proprietary extension spaceX#:H-8extra bytes padding out to the size of the record header specified in the file header.S:Lbytes of a string representing the name of the record, in UTF-8P:Ndata pointsT: int32 time in unix epochD: float32 data point
Designated extension: .btsf
- A header containing:
Vuint32 version number (currently 2)Fuint32 the number of bytes in the file header (currently4*4)Huint32 the number of bytes in a record header (currently3*4)Ruint32 the number of records in the file
Rconcatenated records
When reading, store an integer corresponding to H and add that to the byte offset of a record to get the index of the name.
Skip over an additional L bytes to get to the data.
Skip over N*8+L+H bytes to get to the next record in the file.
When reading the header, read in the numbers and then start at index F in the file for reading records.
The X1 field of each record is reserved for proprietary extensions. Which extension(s) are being used must be communicated out of band, alongside the file.
| Proposal Number | Title | Description |
|---|---|---|
| BTSF-X0116.RV | btsfTM Extension for the Communication of Statistical Correlations | For users of this extension, the X1 field will contain a float32 value specifying the statistical correlation between the record and a predetermined data set |
The btsfTM standard is governed by the btsfTM steering committee, the membership of which is selected by contributors on a regular2 basis.
Current steering committee members
- Tristan Hume
- Marc Mailhot
1: Revolution not guaranteed 2: For some definion of regular