libmseed 3.1.3
The miniSEED data format library
|
This section describes the capabilities and fundamentals of the library.
A miniSEED record is represented in the library using the MS3Record structure. This structure is used for both unpacking and packing of miniSEED records. When unpacking with msr3_parse() this structure is populated. When packing with msr3_pack() this structure is used as a template for the resulting data records and as a source of samples to be packed.
The library supports all commonly used Data Encodings for decoding and a subset of the most common values for encoding. The following data encoding formats are supported for both unpacking and packing: ASCII, INT16, INT32, FLOAT32, FLOAT64, STEIM1 and STEIM2. The INT and FLOAT encodings each have two versions for quantities with a different number of bits of representation. The STEIM compression encodings work with 32-bit integers. The following data encoding formats are supported for unpacking only: GEOSCOPE (24-bit, 16/3 and 16/4 gain ranged), CDSN, SRO and DWWSSN.
In order to reconstruct, manage and process continuous trace segments the library provides Trace List functionality.
Trace List structures are nested to contain an arbitrary number of identified time series, each containing an arbitrary number continuous time series segments, aka traces. While a trace list is normally used to hold trace information and associated data samples they can also be used without data samples as a means of tracking data coverage without actual sample values.
Internally, time stamps are represented as nanoseconds since the Unix/POSIX epoch via the nstime_t data type. A number of functions exist to parse or generate date-time strings to or from this representation. See Time definitions and functions.
Note:* nanosecond time resolution does not mean the data included this resolution.
Time series data samples are supported in a few different formats depending on how they are unpacked or will be packed. Samples can be either ASCII, 32-bit integer, 32-bit floats or 64-bit double precision floats. These types are represented internally using the single-character Sample Types.
All of the log and diagnostic messages emitted by the library functions use a central logging facility. It is common for programs that use the library to also use these logging functions. Furthermore, the output from these logging interfaces can be controlled by directing output to callback functions. This is useful when the library will be embedded in a larger system with it's own logging facility. See the Central Logging page for more details.