Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add FDSN miniSEED 3 format #709

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions scientific/seismology/miniseed3.ksy
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
meta:
id: miniseed3
title: "MiniSEED 3 Data Format"
file-extension:
- mseed3
- mseed
license: MIT
encoding: ascii
endian: le
doc: |
MiniSEED 3 is a binary data format defined by the International Federation of Digital
Seismograph Networks (FDSN) for data collection, archiving and exchange of seismological data.
doc-ref: https://docs.fdsn.org/projects/miniseed3
seq:
- id: data_record
type: data_record
repeat: eos
types:
data_record:
doc-ref: https://docs.fdsn.org/projects/miniseed3/en/latest/definition.html#description-of-record-fields
seq:
- id: record_header_indicator
contents: "MS"
- id: format_version
type: u1
- id: flags
type: miniseed_flags
- id: record_start_time
type: miniseed_time
- id: data_payload_encoding
type: u1
enum: miniseed_data_encoding
- id: sample_rate_or_period
type: f8
- id: number_of_samples
type: u4
- id: crc_of_the_record
type: u4
- id: data_publication_version
type: u1
- id: length_of_identifier
type: u1
- id: length_of_extra_headers
type: u2
- id: length_of_data_payload
type: u4
- id: source_identifier
type: str
size: length_of_identifier
encoding: ASCII
- id: extra_header_fields
type: str
size: length_of_extra_headers
encoding: ASCII
- id: data_payload
type:
switch-on: data_payload_encoding
cases:
'miniseed_data_encoding::encoding_text': miniseed_data_encoding_text
'miniseed_data_encoding::encoding_16_bit_integer': miniseed_data_encoding_16_bit_integer
'miniseed_data_encoding::encoding_32_bit_integer': miniseed_data_encoding_32_bit_integer
'miniseed_data_encoding::encoding_32_bit_float': miniseed_data_encoding_32_bit_float
'miniseed_data_encoding::encoding_64_bit_float': miniseed_data_encoding_64_bit_float
'miniseed_data_encoding::encoding_steim_1': miniseed_data_encoding_unknown # Not yet supported
'miniseed_data_encoding::encoding_steim_2': miniseed_data_encoding_unknown # Not yet supported
'miniseed_data_encoding::encoding_steim_3': miniseed_data_encoding_unknown # Not yet supported
'miniseed_data_encoding::encoding_opaque_data': miniseed_data_encoding_unknown
miniseed_flags:
seq:
- id: calibration_signals_present
type: b1
- id: time_tag_is_questionable
type: b1
- id: clock_locked
type: b1
- id: reserved_flag_3
type: b1
- id: reserved_flag_4
type: b1
- id: reserved_flag_5
type: b1
- id: reserved_flag_6
type: b1
- id: reserved_flag_7
type: b1
miniseed_time:
seq:
- id: nanosecond
type: u4
- id: year
type: u2
- id: day_of_year
type: u2
- id: hour
type: u1
- id: minute
type: u1
- id: second
type: u1
miniseed_data_encoding_unknown:
seq:
- id: data
type: u1
repeat: expr
repeat-expr: _parent.length_of_data_payload
miniseed_data_encoding_text:
seq:
- id: data
type: str
size: _parent.length_of_data_payload
encoding: UTF-8
miniseed_data_encoding_16_bit_integer:
seq:
- id: data
type: s2
repeat: expr
repeat-expr: _parent.number_of_samples
miniseed_data_encoding_32_bit_integer:
seq:
- id: data
type: s4
repeat: expr
repeat-expr: _parent.number_of_samples
miniseed_data_encoding_32_bit_float:
seq:
- id: data
type: f4
repeat: expr
repeat-expr: _parent.number_of_samples
miniseed_data_encoding_64_bit_float:
seq:
- id: data
type: f8
repeat: expr
repeat-expr: _parent.number_of_samples
enums:
miniseed_data_encoding:
0: encoding_text
1: encoding_16_bit_integer
3: encoding_32_bit_integer
4: encoding_32_bit_float
5: encoding_64_bit_float
10: encoding_steim_1
11: encoding_steim_2
19: encoding_steim_3
100: encoding_opaque_data