libmseed 3.1.3
The miniSEED data format library
Loading...
Searching...
No Matches
Capabilities

Overview

This section describes the capabilities and fundamentals of the library.

Data Records

Note
miniSEED data are constructed as records, typically anywhere from 128 to 4096 bytes in length. Each record is independent, identifying the data source, encoding type, etc. in header structures. Reconstructing a continuous time series from an arbitrary number of data records is an excersize for a format reader, e.g. this 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.

Sample Encodings

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.

Traces

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.

Time representation

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 formats

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.

Log messages

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.