Overview
The International Federation of Digital Seismograph Networks (FDSN) defines miniSEED as a format for digital data and related information. The primary intended uses are data collection, archiving and exchange of seismological data. The format is also appropriate for time series data from other geophysical measurements such as pressure, temperature, tilt, etc. In addition to the time series, storage of related state-of-health and parameters documenting the state of the recording system are supported. The FDSN metadata counterpart of miniSEED is StationXML which is used to describe characteristics needed to interpret the data such as location, instrument response, etc.
Versioning
Starting with version 3 of miniSEED, the specification version is a single integer. Any non-backward compatible change to the structure of the header or record results in an increment to this number. The specification version corresponds to field 2, Format version, in the header of records written to conform with this version of the specification. There are no minor revisions. However, the addition of new data encodings or new reserved headers is considered backwards compatible. The FDSN may add encodings and extra headers within the FDSN key or make editorial changes to the specification without change to the major version, resulting only in a new revision of the specification document. Note that all parsing software MUST allow for the potential of unknown, new data encodings and new extra headers as these are subject to extension. This requirement allows older software to parse future records successfully within the same specification major version, even though they may be unable to decompress the data payload for new encodings.
This document is miniSEED v3 rev. 2023-01-18.
Note
This specification defines miniSEED 3. See Background for information on earlier versions.
Record definition
The fundamental unit of the format is a data record. A time series is commonly stored and exchanged as a sequence of these records. There is no interdependence of records, each is independent. There are data encodings for integers, floats, text or compressed data samples. To limit problems with timing system drift and resolution in addition to practical issues of subsetting and resource limitation for readers of the data, typical record lengths for raw data generation and archiving are recommended to be in the range of 256 and 4096 bytes.
Record layout and fields
A record is composed of a header followed by a data payload. The byte order of binary fields in the header must be least significant byte first (little endian).
The total length of a record is variable and is the sum of 40 (length of fixed section of header), field 10 (length of identifier), field 11 (length of extra headers), field 12 (length of payload).
Field |
Description |
Type |
Length |
Offset |
Content |
---|---|---|---|---|---|
Record header indicator |
CHAR |
2 |
0 |
ASCII ‘MS’ |
|
Format version |
UINT8 |
1 |
2 |
Value of 3 |
|
Flags |
UINT8 |
1 |
3 |
||
Record start time |
|||||
Nanosecond (0 - 999999999) |
UINT32 |
4 |
4 |
||
Year (0-65535) |
UINT16 |
2 |
8 |
||
Day-of-year (1 - 366) |
UINT16 |
2 |
10 |
||
Hour (0 - 23) |
UINT8 |
1 |
12 |
||
Minute (0 - 59) |
UINT8 |
1 |
13 |
||
Second (0 - 60) |
UINT8 |
1 |
14 |
||
Data payload encoding |
UINT8 |
1 |
15 |
||
Sample rate/period |
FLOAT64 |
8 |
16 |
||
Number of samples |
UINT32 |
4 |
24 |
||
CRC of the record |
UINT32 |
4 |
28 |
||
Data publication version |
UINT8 |
1 |
32 |
||
Length of identifier |
UINT8 |
1 |
33 |
||
Length of extra headers |
UINT16 |
2 |
34 |
||
Length of data payload |
UINT32 |
4 |
36 |
||
Source identifier |
CHAR |
V |
40 |
URI identifier |
|
Extra header fields |
JSON |
V |
40 + field 10 |
||
Data payload |
encoded |
V |
40 + field 10 + field 11 |
All length values are specified in bytes, which are assumed to be 8-bits in length. Data types for each field are defined as follows:
- CHAR
ASCII encoded character data.
- UINT8
Unsigned 8-bit integer.
- UINT16
Unsigned 16-bit integer (little endian byte order).
- UINT32
Unsigned 32-bit integer (little endian byte order).
- FLOAT64
IEEE-754 64-bit floating point number (little endian byte order).
- JSON
JSON Data Interchange Standard.
Description of record fields
- 1
CHAR: Record header indicator. Literal, 2-character sequence “MS”, ASCII 77 and 83, designating the start of a record.
- 2
UINT8: Format version. Set to 3 for this version. When a non-backwards compatible change is introduced the version will be incremented.
- 3
UINT8: Flags. Bit field flags, with bits 0-7 defined as:
Calibration signals present. [same as SEED 2.4 FSDH, field 12, bit 0]
Time tag is questionable. [same as SEED 2.4 FSDH, field 14, bit 7]
Clock locked. [same as SEED 2.4 FSDH, field 13, bit 5]
Reserved for future use.
Reserved for future use.
Reserved for future use.
Reserved for future use.
Reserved for future use.
- 4
Record start time, time of the first data sample. A representation of UTC using individual fields for:
nanosecond
year
day-of-year
hour
minute
second
A 60 second value is used to represent a time value during a positive leap second. If no time series data are included in this record, the time should be relevant for whatever headers or flags are included.
- 5
UINT8: Data payload encoding. A code indicating the encoding format, see Section 4: Data encoding codes for a list of valid codes. If no data payload is included set this value to 0.
- 6
FLOAT64: Sample rate/period. Sample rate encoded in 64-bit IEEE-754 floating point format. When the value is positive it represents the rate in samples per second, when it is negative it represents the sample period in seconds. Creators should use the negative value sample period notation for rates less than 1 samples per second to retain resolution. Set to 0.0 if no time series data are included in the record.
- 7
UINT32: Number of samples. Total number of data samples in the data payload. Set to 0 if no samples (header-only records) or unknown number of samples (e.g. for opaque payload encoding).
- 8
UINT32: CRC of the record. CRC-32C (Castagnoli) value of the complete record with the 4-byte CRC field set to zeros. The CRC-32C (Castagnoli) algorithm with polynomial 0x1EDC6F41 (reversed 0x82F63B78) to be used is defined in RFC 3309, which further includes references to the relevant background material.
- 9
UINT8: Data publication version. Values should only be considered relative to each other for data from the same data center. Semantics may vary between data centers but generally larger values denote later and more preferred data. Recommended values: 1 for raw data, 2+ for revisions produced later, incremented for each revision. A value of 0 indicates unknown version such as when data are converted to miniSEED from another format. Changes to this value for user-versioning are not recommended, instead an extra header should be used to allow for user-versioning of different derivatives of the data.
- 10
UINT8: Length of identifier. Length, in bytes, of source identifier in field 13.
- 11
UINT16: Length of extra headers. Length, in bytes, of extra headers in field 14. If no extra headers, set this value to 0.
- 12
UINT32: Length of data payload. Length, in bytes, of data payload starting in field 15. If no data payload is present, set this value to 0. Note that no padding is permitted in the data record itself, although padding may exist within the payload depending on the type of encoding used.
- 13
CHAR: Source identifier. A unique identifier of the source of the data contained in the record. Recommended to use URI-based identfiers. Commonly an FDSN Source Identifier.
- 14
JSON: Extra header fields. Extra fields of variable length encoded in JavaScript Object Notation (JSON) Data Interchange Standard as defined by ECMA-404. It is strongly recommended to store compact JSON, containing no non-data white space, in this field to avoid wasted space.
A reserved set of headers fields is defined by the FDSN, see Extra Headers. Other header fields may be present and should be defined by the organization that created them.
- 15
encoded: Data payload. Length indicated in field 12, encoding indicated in field 5.
Data Encodings
Data payload encodings in the format are identified by a code (number). These codes are assigned by the FDSN. A list of valid codes are as follows:
Code |
Description |
---|---|
0 |
Text, UTF-8 allowed, use ASCII for maximum portability, no structure defined |
1 |
16-bit integer (two’s complement), little endian byte order |
3 |
32-bit integer (two’s complement), little endian byte order |
4 |
32-bit floats (IEEE float), little endian byte order |
5 |
64-bit floats (IEEE double), little endian byte order |
10 |
Steim-1 integer compression, big endian byte order |
11 |
Steim-2 integer compression, big endian byte order |
19 |
Steim-3 integer compression, big endian (not in common use in archives) |
100 |
Opaque data - only for use in special scenarios, not intended for archiving |
Overview and description of the Steim-1 and Steim-2 compression encodings may be found in the SEED 2.4 manual, Appendix B.
Retroactive future encodings
New data encodings may be added to the format in the future without incrementing the format version. There is no default encoding, readers must check the encoding value to determine if the encoding is supported.
Retired encoding values, not allowed in this specification
The following numeric codes were used in earlier miniSEED versions and should not be used for encodings defined in the future:
- 2
24-bit integers
- 12
GEOSCOPE multiplexed format 24-bit integer
- 13
GEOSCOPE multiplexed format 16-bit gain ranged, 3-bit exponent
- 14
GEOSCOPE multiplexed format 16-bit gain ranged, 4-bit exponent
- 15
US National Network compression
- 16
CDSN 16-bit gain ranged
- 17
Graefenberg 16-bit gain ranged
- 18
IPG-Strasbourg 16-bit gain ranged
- 30
SRO format
- 31
HGLP format
- 32
DWWSSN gain ranged format
- 33
RSTN 16-bit gain ranged format
Extra Headers
The extra headers are encoded in the JSON Data Interchange Standard as defined by ECMA-404. All extra headers are optional as far as the format is concerned.
Extra headers must follow these rules:
All extra headers are contained in an anonymous (unnamed) object
All entries are key-value pairs where values can be any valid JSON type
The key value of “FDSN” in the root object is reserved for values defined by the FDSN
Validation
Extra headers are specified and documented in JSON Schema.
FDSN Reserved Headers
The “FDSN” key at the root of the extra headers are reserved for definition by the FDSN.
See FDSN Reserved Headers for documentation of these headers.
See A: Extra header examples for an example of FDSN extra headers.
Guidelines for Extension
Network operators, manufacturers, data centers, users and other agencies may wish to define their own extra headers. The following guidelines should be considered, in particular for data that is expected to reside in a public repository:
All headers defined by a group or agency should be contained in a JSON object that is the value of a key in the root container with a clearly identifiable name, i.e. at the same level as “FDSN”.
Creation of a JSON Schema document describing the field(s) is strongly recommended. The schema should be submitted to the FDSN to be made publically available.
Headers that would be generally useful should be submitted to the FDSN for consideration of being added to the reserved headers for general definition and use.
Multiple JSON Schema documents are easily combined for use in validating extra headers that may contain headers defined in multiple schema documents.
See Non-FDSN extra headers for an example of non-FDSN extra headers.
FDSN Reserved Headers
The “FDSN” key at the root of the Extra Headers are reserved for definition by the FDSN. See A: Extra header examples for an example of FDSN extra headers.
The FDSN reserved headers are defined and documented in JSON Schema.
Download the FDSN Extra Header schema v1.0.
The documentation and schema of these headers may be browsed here:
Extra headers in miniSEED 3 data format
Reserved extra headers defined by the FDSN
No Additional PropertiesHeaders related to data timing and recording system clock
No Additional PropertiesDEPRECATED Timing quality. A vendor specific value from 0 to 100% of maximum accuracy. [same as SEED 2.4 Blockette 1001, field 3] It is recommended to use MaxEstimatedError instead.
Time correction applied to record start time in seconds. [same as SEED 2.4 FSDH, field 16]
Maximum estimated timing error in seconds.
If present, one or more leap seconds occuring during this record. The value specifies the number of leap seconds and direction. For example, use 1 to specify a single positive leap second and -1 to specify a single negative leap second. [incorporates SEED 2.4 FSDH, field 12, bits 4 and 5]
List of timing exceptions
No Additional ItemsEach item of this array must be:
No Additional Properties
Time of timing exeption. [same as SEED 2.4 Blockette 500, field 4]
VCO correction, a percentage from 0 to 100% of VCO control value, where 0 is the slowest and 100 is the fastest. [same as SEED 204 Blockette 500, field 3]
Reception quality as a percent of maximum clock accuracy based only on information from the clock. [same as SEED 2.4 Blockette 500, field 6]
Exception count, with meaning based on type of exception, such as 15 missing time marks. [same as SEED 2.4 Blockette 500, field 7]
Description of clock exception, such as MISSING TIMEMARK. [same as SEED 2.4 Blockette 500, field 8]
Description of clock status, clock specific parameters such as the station for an Omega clock or satellite signal to noise ratios for GPS clocks. [same as SEED 2.4 Blockette 500, field 10]
Headers related to event detection and progression
No Additional PropertiesAn event starts in this record. [same as SEED 2.4 FSDH, field 12, bit 2]
An in-progress event ends in this record, i.e. the detection algorithm de-triggers. [same as SEED 2.4 FSDH, field 12, bit 3]
An event is in progress. [same as SEED 2.4 FSDH, field 12, bit 6]
List of event detections
No Additional ItemsEach item of this array must be:
No Additional Properties
Type of event detection, e.g. MURDOCK
Event amplitude of signal in counts. [same as SEED 2.4 Blockettews 200 and 201, field 3]
Event period of signal in seconds. [same as SEED 2.4 Blockettews 200 and 201, field 4]
Event background estimate in counts. [same as SEED 2.4 Blockettews 200 and 201, field 5]
Event detection wave, use values of DILATATION or COMPRESSION if determined. [same as SEED 2.4 Blockettews 200 and 201, field 6, bit 0]
Units of amplitude band background estimate, use COUNTS for unprocessed signal. [similar to SEED 2.4 Blockettews 200, field 6, bit 1]
Event signal onset time. [same as SEED 2.4 Blockettews 200 and 201, field 8]
Murdock event detection signal-to-noise ratios. [same as SEED 2.4 Blockette 201, field 9]
No Additional ItemsEach item of this array must be:
Murdock event detction lookback value: 0, 1 or 2. [same as SEED 2.4 Blockette 201, field 10]
Murdock event detection pick algorithm: 0 or 1. [same as SEED 2.4 Blockette 201, field 11]
Name of the event detector. [same as SEED 2.4 Blockette 200, field 9 and Blockette 201, field 12]
Headers related to calibrations
No Additional PropertiesList of calibration sequences
No Additional ItemsEach item of this array must be:
List of calibrations
No Additional PropertiesType of calibration: STEP, SINE, PSEUDORANDOM, GENERIC.
Calibration begin time. [similar to SEED 2.4 Blockettes 300,310,320,390, field 3]
Calibration end time. [same as SEED 2.4 Blockette 395, field 3]
Number of step calibrations in sequence. [same as SEED 2.4 Blockette 300, field 4]
Step calibration, first pulse is positive. [same as SEED 2.4 Blockette 300, field 5, bit 0]
Step calibration alternate sign. [same as SEED 2.4 Blockettes 300, field 5, bit 1]
Calibration trigger, use AUTOMATIC or MANUAL. [same as SEED 2.4 Blockettes 300,310,320,390, field 5, bit 2]
Calibration is continued from previous records. [same as SEED 2.4 Blockettes 300,310,320,390, field 5, bit 3]
Amplitude of calibration signal. For pseudo-random calibrations, this should be the peak-to-peak amplitude of the steps. [same as SEED 2.4 Blockettes 300,310, field 8 and Blockettes 320,390, field 7]
Units of calibration input, usually volts or amps. [same as SEED 2.4 Blockette 52, field 9]
Amplitude range of calibration, use values of PEAKTOPEAK, ZEROTOPEAK, RMS OR RANDOM. [same as SEED 2.4 Blockette 310, field 5, bits 4,5,6 and Blockette 320, field 5, bit 4]
Duration of calibration in seconds. For step calibrations this is the duration of the step. [same as SEED 2.4 Blockettes 300,310,320,390, field 6]
Period of sine calibrations in seconds. [same as SEED 2.4 Blockette 310, field 7]
Interval between times a step calibration is on in seconds. [same as SEED 2.4 Blockette 300, field 7]
Channel containing the calibration input. [same as SEED 2.4 Blockettes 300,310, field 9 and Blockettes 320,390, field 8]
Reference amplitude. This is a user-defined value that indicates either the voltage or amperage of the calibration signal when the calibrator is set to 0dB. [same as SEED 2.4 Blockettes 300,310, field 11 and Blockette 320, field 10]
Coupling of the calibration signal, such as RESISTIVE or CAPACITIVE. [same as SEED 2.4 Blockettes 300,310, field 12 and Blockette 320, field 11]
Rolloff characteristics for any filters used on the calibrator, such as 3dB@10Hz. [same as SEED 2.4 Blockettes 300,310, field 13 and Blockette 320, field 12]
Noise characteristics for pseudo-random calibrations, such as WHITE or RED. [same as SEED 2.4 Blockette 320, field 13]
Headers related to sensor recentering (mass, gimble, etc.)
No Additional PropertiesList of recentering sequences
No Additional ItemsEach item of this array must be:
List of recenterings
No Additional PropertiesType of recenter: Mass, Gimbal, etc. If omitted a mass recenter may be assumed.
Recenter begin time.
Estimate of recenter end time.
Calibration trigger, use AUTOMATIC or MANUAL.
No Additional Properties
Sensor mass position is offscale as defined by the vendor or operator.
Amplifier saturation detected. [same as SEED 2.4 FSDH, field 14, bit 0]
Digitizer clipping detected. [same as SEED 2.4 FSDH, field 14, bit 1]
Spikes detected. [same as SEED 2.4 FSDH, field 14, bit 2]
Glitches detected. [same as SEED 2.4 FSDH, field 14, bit 3]
A digital filter may be charging. [same as SEED 2.4 FDSH, field 14, bit 6]
DEPRECATED Station volume parity error possibly present. [same as SEED 2.4 FDSH, field 13, bit 0]
DEPRECATED Long record read (possibly no problem). [same as SEED 2.4 FDSH, field 13, bit 1]
DEPRECATED Short record read (record padded). [same as SEED 2.4 FDSH, field 13, bit 2]
DEPRECATED Start of time series. [same as SEED 2.4 FDSH, field 13, bit 3]
DEPRECATED End of time series. [same as SEED 2.4 FDSH, field 13, bit 4]
DEPRECATED Missing data. [same as SEED 2.4 FDSH, field 14, bit 4]
DEPRECATED Telemetry synchronization error. [same as SEED 2.4 FDSH, field 14, bit 5]
Description of data logger
No Additional PropertiesModel of equipment
Serial number of equipment
An identifier for a provenance description
Data quality indicator, use D, R, Q or M. [same as SEED 2.4 FSDH, field 2]
Data record sequence number. [same as SEED 2.4 FSDH, field 1]
When not present, the boolean values in the FDSN reserved headers should be considered to be false unless otherwise documented. Such values do not need to be included when the value is false.
Background
The Standard for the Exchange of Earthquake Data (SEED) was adopted by the FDSN in the 1987 and served as the dominant standard for seismological research data archiving and exchange for many decades.
The previous specification of miniSEED, latest 2.4, is defined as a subset of SEED that contains only data records.
Changes relative to 2.4
An overview of significant changes between miniSEED 2.4 and this specification:
Adoption of FDSN Source Identifiers, replacing independent SEED codes (network, station, location, channel).
Incorporate critical details previously in blockettes (actual sample rate, encoding, microseconds) into the fixed section of the data header
Increase sample rate/period representation to a 64-bit floating point value
Increase start time resolution to nanoseconds
Specify fixed byte order (little endian) for the binary portions of the headers and define a byte order for each data encoding
Drop legacy data encodings and reserve their values so they are not used again in the future
Add a format version
Add a data publication version
Add CRC field for validating integrity of record
Add a “mass position off scale” flag
Add “Recenter” (mass, gimbal, etc.) headers
Add “ProvenanceURI” header to identify provenance documentation
Replace the blockette structure with flexible extra header construct:
Specify a reserved set of extra headers defined by the FDSN, provide schema for validation
Previous flags and blockette contents defined in reserved extra headers
Allow arbitrary headers to be included in a record
Remove the restriction on record length to be powers of 2, allow variable length
Near complete preservation of miniSEED 2.4 data. Information that is not retained is limited to: clock model specification per timing exception (current specification only allows a single clock model specification per record), Blockettes 400 (Beam) & 405 (Beam Delay) and Blockette 2000 (Opaque Data).
Appendix
A: Extra header examples
The example extra header structures below include additional white space and formatting for readability, which should not be used in an actual record.
FDSN reserved extra headers
A relatively simple example of reserved FDSN extra headers that contains a timing quality value and an event detection is:
{
"FDSN": {
"Time": {
"Quality": 100,
"Correction": 1.234
},
"Event": {
"Begin": true,
"End": true,
"InProgress": true,
"Detection": [
{
"Type": "MURDOCK",
"SignalAmplitude": 80,
"SignalPeriod": 0.4,
"BackgroundEstimate": 18,
"Wave": "DILATATION",
"Units": "COUNTS",
"OnsetTime": "2022-06-05T20:32:39.120000Z",
"MEDSNR": [ 1, 3, 2, 1, 4, 0 ],
"MEDLookback": 2,
"MEDPickAlgorithm": 0,
"Detector": "Z_SPWWSS"
}
]
}
}
}
An example of the reserved FDSN headers defined by the FDSN is provided below. In this (pathalogical) illustration, all reserved fields are represented.
{
"FDSN": {
"Time": {
"Quality": 100,
"Correction": 1.234,
"MaxEstimatedError": 1e-06,
"LeapSecond": 1,
"Exception": [
{
"Time": "2022-05-06T20:32:41.12Z",
"VCOCorrection": 50.7812,
"ReceptionQuality": 80,
"Count": 23,
"Type": "Valid Timemark",
"ClockStatus": "SNR=48,51,51,50,50,48,46,48,48,45,45"
},
{
"Time": "2022-05-06T20:32:42.185Z",
"VCOCorrection": 44.1313,
"ReceptionQuality": 55,
"Count": 19690,
"Type": "Missing timemarks",
"ClockStatus": "SNR=50,48,46,48,48,45,45"
}
]
},
"Event": {
"Begin": true,
"End": true,
"InProgress": true,
"Detection": [
{
"Type": "GENERIC",
"SignalAmplitude": 80,
"SignalPeriod": 0.4,
"BackgroundEstimate": 18,
"OnsetTime": "2022-05-06T20:32:39.120000Z",
"Detector": "Dalek STA/LTA"
},
{
"Type": "MURDOCK",
"SignalAmplitude": 80,
"SignalPeriod": 0.4,
"BackgroundEstimate": 18,
"Wave": "DILATATION",
"Units": "COUNTS",
"OnsetTime": "2022-05-06T20:32:39.185000Z",
"MEDSNR": [ 1, 3, 2, 1, 4, 0 ],
"MEDLookback": 2,
"MEDPickAlgorithm": 0,
"Detector": "Z_SPWWSS"
}
]
},
"Calibration": {
"Sequence": [
{
"Type": "Step",
"BeginTime": "2022-05-06T20:32:39.120000Z",
"Steps": 12,
"StepFirstPulsePositive": true,
"StepAlternateSign": true,
"Trigger": "AUTOMATIC",
"Continued": false,
"Amplitude": 1345,
"InputUnits": "COUNTS",
"Duration": 603.456,
"SinePeriod": 5.0,
"StepBetween": 500.0,
"InputChannel": "CAL",
"ReferenceAmplitude": 45.8,
"Coupling": "RESISTIVE",
"Rolloff": "Description of rolloff"
},
{
"Type": "Step",
"EndTime": "2022-05-06T20:32:39.120000Z"
},
{
"Type": "Sine",
"BeginTime": "2022-05-06T20:32:39.120000Z",
"EndTime": "2022-05-06T20:32:39.120000Z",
"Trigger": "MANUAL",
"Continued": true,
"Amplitude": 1345,
"InputUnits": "COUNTS",
"AmplitudeRange": "PEAKTOPEAK",
"SinePeriod": 5.0,
"InputChannel": "CAL",
"ReferenceAmplitude": 45.8,
"Coupling": "RESISTIVE",
"Rolloff": "Description of rolloff"
},
{
"Type": "PseudoRandom",
"BeginTime": "2022-05-06T20:32:39.120000Z",
"EndTime": "2022-05-06T20:32:39.120000Z",
"Trigger": "MANUAL",
"Amplitude": 0.0001,
"InputUnits": "M/S",
"Duration": 300,
"InputChannel": "CAL",
"ReferenceAmplitude": 45.8,
"Coupling": "CAPACITIVE",
"Rolloff": "Very randomly",
"Noise": "White"
},
{
"Type": "Generic",
"BeginTime": "2022-05-06T20:32:39.120000Z",
"EndTime": "2022-05-06T20:32:39.120000Z",
"Trigger": "MANUAL",
"Amplitude": 1345,
"Duration": 100
}
]
},
"Recenter": {
"Sequence": [
{
"Type": "Gimbal",
"BeginTime": "2022-05-06T20:32:39.120000Z",
"EndTime": "2022-05-06T20:32:39.120000Z",
"Trigger": "AUTOMATIC"
},
{
"BeginTime": "2022-05-06T20:32:40.120000Z"
}
]
},
"Flags": {
"MassPositionOffscale": true,
"AmplifierSaturation": true,
"DigitizerClipping": true,
"Spikes": true,
"Glitches": true,
"FilterCharging": true,
"StationVolumeParityError": true,
"LongRecordRead": true,
"ShortRecordRead": true,
"StartOfTimeSeries": true,
"EndOfTimeSeries": true,
"MissingData": true,
"TelemetrySyncError": true
},
"Logger": {
"Model": "DM24",
"Serial": "A4567"
},
"Sensor": {
"Model": "T240",
"Serial": "123123"
},
"Clock": {
"Model": "P273T11N16",
"Serial": "24A00000"
},
"ProvenanceURI": "prov:sp001_wf_f84fb9a",
"DataQuality": "D",
"Sequence": 123456
}
}
Non-FDSN extra headers
An example of reserved FDSN headers combined with other top-level headers, illustrating how custom headers may be added.
{
"FDSN": {
"Time": {
"Quality": 90
}
},
"Manufacturer123": {
"Metadata": {
"FilamentCurrent": 16.4,
"HyperCoordinates": "1.1789:965402:73324@3.14159"
}
},
"OperatorXYZ": {
"DSP": {
"PeakRMS": 2067,
"RMSWindow": 10.5
}
}
}
B: Reference data
The reference data set is intended as an illustration of properly constructed miniSEED 3 and to be used by software implementors during development and testing.
The set contains multiple examples of data records illustrating different characteristics and data encodings of the from. Each example is available in miniSEED 3, JSON, and human-readable text representations.
The whole data set may be downloaded from documentation repository.
All time series in the reference set that contain series are the same expanding sinusoid signal.
# |
Description |
Download |
---|---|---|
1 |
Text payload |
|
2 |
Event detection headers only, no data payload |
|
3 |
Sinusoid series encoded as 16-bit integers |
|
4 |
Sinusoid series encoded as 32-bit integers |
|
5 |
Sinusoid series encoded as 32-bit IEEE float |
|
6 |
Sinusoid series encoded as 64-bit IEEE float |
|
7 |
Sinusoid series encoded as Steim-1 compressed integers |
|
8 |
Sinusoid series encoded as Steim-2 compressed integers |
|
9 |
Series with time quality, correction, event detections headers |
|
10 |
Series with some FDSN and non-FDSN extra headers |
|
11 |
Series with all FDSN extra headers (unrealistic) |
C: Mapping from miniSEED 2.4
The following list of miniSEED 2.4 format structures specifies the mapping of all fields to this specification. In this listing the following abbreviations are used:
- EH
Extra Header (of this specification), with path
- SID
Source Identifier (of this specification)
- FSDH
Fixed Section Data Header (in either specification)
miniSEED 2.4 Fixed Section Data Header (FSDH)
Field |
Description |
This specification |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
Sequence number |
EH: FDSN.Sequence |
||||||||||
2 |
Data header/quality indicator |
EH: FDSN.DataQuality
|
||||||||||
3 |
Reserved byte |
[no mapping] |
||||||||||
4 |
Station identifier code |
Incorporated into SID, FSDH field 13 |
||||||||||
5 |
Location identifier |
Incorporated into SID, FSDH field 13 |
||||||||||
6 |
Channel identifier |
Incorporated into SID, FSDH field 13 |
||||||||||
7 |
Network code |
Incorporated into SID, FSDH field 13 |
||||||||||
8 |
Record start time |
FSDH field 4 |
||||||||||
9 |
Number of samples |
FSDH field 7 |
||||||||||
10 |
Sample rate factor |
Incorporated into FSDH field 6 |
||||||||||
11 |
Sample rate multiplier |
Incorporated into FSDH field 6 |
||||||||||
12 |
|
|
||||||||||
13 |
|
|
||||||||||
14 |
|
|
||||||||||
15 |
Number of blockettes that follow |
[no mapping] |
||||||||||
16 |
Time correction |
EH: FDSN.Time.Correction |
||||||||||
17 |
Beginning of data |
[no mapping] |
||||||||||
18 |
First blockette |
[no mapping] |
Blockette 100 (Sample Rate)
Field |
Description |
This specification |
---|---|---|
3 |
Actual sample rate |
FSDH field 6 |
4 |
Flags (undefined) |
[no mapping] |
4 |
Reserved byte |
[no mapping] |
Blockette 200 (Generic Event Detection)
Field |
Description |
This specification |
---|---|---|
3 |
Signal amplitude |
EH: FDSN.Event.Detection.SignalAmplitude |
4 |
Signal period |
EH: FDSN.Event.Detection.SignalPeriod |
5 |
Background estimate |
EH: FDSN.Event.Detection.BackgroundEstimate |
6 |
|
|
7 |
Reserved byte |
[no mapping] |
8 |
Signal onset time |
EH: FDSN.Event.Detection.OnsetTime |
9 |
Detector name |
EH: FDSN.Event.Detection.Detector |
Blockette 201 (Murdock Event Detection)
Field |
Description |
This specification |
---|---|---|
3 |
Signal amplitude |
EH: FDSN.Event.Detection.SignalAmplitude |
4 |
Signal period |
EH: FDSN.Event.Detection.SignalPeriod |
5 |
Background estimate |
EH: FDSN.Event.Detection.BackgroundEstimate |
6 |
|
|
7 |
Reserved byte |
[no mapping] |
8 |
Signal onset time |
EH: FDSN.Event.Detection.OnsetTime |
9 |
Signal-to-noise values |
EH: FDSN.Event.Detection.MEDSNR (array) |
10 |
Lookback value |
EH: FDSN.Event.Detection.MEDLookback |
11 |
Pick algorithm |
EH: FDSN.Event.Detection.MEDPickAlgorithm |
12 |
Detector name |
EH: FDSN.Event.Detection.Detector |
Blockette 300 (Step Calibration)
Field |
Description |
This specification |
---|---|---|
3 |
Start calib |
EH: FDSN.Calibration.Sequence.Begintime |
4 |
Num of calibs |
EH: FDSN.Calibration.Sequence.Steps |
5 |
|
|
6 |
Duration of step |
EH: FDSN.Calibration.Sequence.Duration |
7 |
Time between steps |
EH: FDSN.Calibration.Sequence.StepBetween |
8 |
Amp. of cal. signal |
EH: FDSN.Calibration.Sequence.Amplitude |
9 |
Channel cal. signal |
EH: FDSN.Calibration.Sequence.InputChannel |
10 |
Reserved byte |
[no mapping] |
11 |
Reference amplitude |
EH: FDSN.Calibration.Sequence.ReferenceAmplitude |
12 |
Coupling of signal |
EH: FDSN.Calibration.Sequence.Coupling |
13 |
Rolloff of filters |
EH: FDSN.Calibration.Sequence.Rolloff |
Blockette 310 (Sine Calibration)
Field |
Description |
This specification |
---|---|---|
3 |
Start calib |
EH: FDSN.Calibration.Sequence.Begintime |
4 |
Reserved byte |
[no mapping] |
5 |
|
|
6 |
Duration of cal |
EH: FDSN.Calibration.Sequence.Duration |
7 |
Period of signal |
EH: FDSN.Calibration.Sequence.Period |
8 |
Amp. of cal. signal |
EH: FDSN.Calibration.Sequence.Amplitude |
9 |
Channel cal. signal |
EH: FDSN.Calibration.Sequence.InputChannel |
10 |
Reserved byte |
[no mapping] |
11 |
Reference amplitude |
EH: FDSN.Calibration.Sequence.ReferenceAmplitude |
12 |
Coupling of signal |
EH: FDSN.Calibration.Sequence.Coupling |
13 |
Rolloff of filters |
EH: FDSN.Calibration.Sequence.Rolloff |
Blockette 320 (Pseudo-random Calibration)
Field |
Description |
This specification |
---|---|---|
3 |
Start calib |
EH: FDSN.Calibration.Sequence.Begintime |
10 |
Reserved byte |
[no mapping] |
5 |
|
|
6 |
Duration of cal |
EH: FDSN.Calibration.Sequence.Duration |
7 |
PtoP amp. of steps |
EH: FDSN.Calibration.Sequence.Amplitude |
8 |
Channel cal. signal |
EH: FDSN.Calibration.Sequence.InputChannel |
9 |
Reserved byte |
[no mapping] |
10 |
Reference amplitude |
EH: FDSN.Calibration.Sequence.ReferenceAmplitude |
11 |
Coupling of signal |
EH: FDSN.Calibration.Sequence.Coupling |
12 |
Rolloff of filters |
EH: FDSN.Calibration.Sequence.Rolloff |
13 |
Noise type |
EH: FDSN.Calibration.Sequence.Noise |
Blockette 390 (Generic Calibration)
Field |
Description |
This specification |
---|---|---|
3 |
Start calib |
EH: FDSN.Calibration.Sequence.Begintime |
10 |
Reserved byte |
[no mapping] |
5 |
|
|
6 |
Duration of cal |
EH: FDSN.Calibration.Sequence.Duration |
7 |
Amplitude of signal |
EH: FDSN.Calibration.Sequence.Amplitude |
8 |
Channel cal. signal |
EH: FDSN.Calibration.Sequence.InputChannel |
9 |
Reserved byte |
[no mapping] |
Blockette 395 (Calibration Abort)
Field |
Description |
This specification |
---|---|---|
3 |
End calib |
EH: FDSN.Calibration.Sequence.Endtime |
10 |
Reserved byte |
[no mapping] |
Blockette 400 (Beam), Blockette 405 (Beam Delay)
No mapping for these blockettes
Blockette 500 (Timing)
Field |
Description |
This specification |
---|---|---|
3 |
VCO correction |
EH: FDSN.Time.Exception.VCOCorrection |
4 |
Time of exception |
EH: FDSN.Time.Exception.Time |
5 |
Microsecond offset |
[included in record start time] |
6 |
Reception quality |
EH: FDSN.Time.Exception.ReceptionQuality |
7 |
Exception count |
EH: FDSN.Time.Exception.Count |
8 |
Exception type |
EH: FDSN.Time.Exception.Type |
9 |
Clock model |
EH: FDSN.Clock.Model |
10 |
Clock status |
EH: FDSN.Time.Exception.ClockStatus |
Blockette 1000 (Data Only SEED)
Field |
Description |
This specification |
---|---|---|
3 |
Encoding format |
FSDH field 5 |
4 |
Word order |
[no mapping, no longer needed] |
5 |
Data record length |
[no mapping, no longer needed] |
6 |
Reserved byte |
[no mapping] |
Blockette 1001 (Data Extension)
Field |
Description |
This specification |
---|---|---|
3 |
Timing quality |
EH: FDSN.Time.Quality |
4 |
Microsecond offset |
Incorporated into FSDH field 4 |
5 |
Reserved byte |
[no mapping] |
6 |
Frame count |
[no mapping] |
Blockette 2000 (Variable Length Opaque)
No mapping for this blockette. The opaque data encoding may be used to specify an opaque payload for nearly equivalent functionality.
Unsupported miniSEED 2.4 content
The following defined information in miniSEED 2.4 cannot be represented in this specification:
Clock model specification per timing exception. Current specification only allows a single clock model specification per record.
Blockettes 400 (Beam) & 405 (Beam Delay)
Blockette 2000 (Opaque Data)
Software
A variety of open-source software packages are available to that support the miniSEED format.
Validation
The mseed3-utils project includes the following programs:
mseed3-validator - a validator for the miniSEED 3 formatted files
mseed2text - convert miniSEED 3 format to a text representation
mseed2json - convert miniSEED 3 format to a JSON representation
Download mseed3-utils releases
mseedconvert
The mseedconvert program converts miniSEED between versions and data encodings.
Download mseedconvert releases
libmseed
A general library (C language) for reading and writing miniSEED. Release versions 3.x support both this specification and version 2 of the format.
Download libmseed releases
Changes
Changes to this specification are listed below.
April 2023
Specification revision 2023-01-18 adopted by FDSN.
Reference data were refined following the specification revision.
2021
Initial specification of miniSEED 3