Documentation
¶
Overview ¶
The ms module has been writen as a lightweight replacement for some parts of the libmseed C library.
Index ¶
- Constants
- func EncodeBTime(at BTime) []byte
- func EncodeBlockette1000(blk Blockette1000) []byte
- func EncodeBlockette1001(blk Blockette1001) []byte
- func EncodeBlocketteHeader(hdr BlocketteHeader) []byte
- func EncodeRecordHeader(hdr RecordHeader) []byte
- type BTime
- type Blockette1000
- type Blockette1001
- type BlocketteHeader
- type Encoding
- type Record
- func (m Record) BlockSize() int
- func (m Record) ByteOrder() WordOrder
- func (m Record) Bytes() ([]byte, error)
- func (m Record) Encoding() Encoding
- func (m Record) EndTime() time.Time
- func (m Record) Float64s() ([]float64, error)
- func (m Record) Int32s() ([]int32, error)
- func (m Record) SampleType() SampleType
- func (m Record) StartTime() time.Time
- func (m Record) String() string
- func (m Record) Strings() ([]string, error)
- func (m *Record) Unpack(buf []byte) error
- type RecordHeader
- func (h RecordHeader) Channel() string
- func (h RecordHeader) Correction() time.Duration
- func (h RecordHeader) IsValid() bool
- func (h RecordHeader) Less(hdr RecordHeader) bool
- func (h RecordHeader) Location() string
- func (h RecordHeader) Marshal() ([]byte, error)
- func (h RecordHeader) Network() string
- func (h RecordHeader) SampleCount() int
- func (h RecordHeader) SamplePeriod() time.Duration
- func (h RecordHeader) SampleRate() float64
- func (h RecordHeader) SeqNumber() int
- func (h *RecordHeader) SetChannel(s string)
- func (h *RecordHeader) SetCorrection(correction time.Duration, applied bool)
- func (h *RecordHeader) SetLocation(s string)
- func (h *RecordHeader) SetNetwork(s string)
- func (h *RecordHeader) SetSeqNumber(no int)
- func (h *RecordHeader) SetStartTime(t time.Time)
- func (h *RecordHeader) SetStation(s string)
- func (h RecordHeader) SrcName(quality bool) string
- func (h RecordHeader) StartTime() time.Time
- func (h RecordHeader) Station() string
- func (h *RecordHeader) Unmarshal(data []byte) error
- type SampleType
- type WordOrder
Constants ¶
const ( BlocketteHeaderSize = 4 Blockette1000Size = 4 Blockette1001Size = 4 )
const BTimeSize = 10
BTimeSize is the fixed size of an encoded BTime.
const RecordHeaderSize = 48
RecordHeaderSize is the miniseed block fixed header length.
Variables ¶
This section is empty.
Functions ¶
func EncodeBTime ¶
EncodeBTime converts a BTime into a byte slice.
func EncodeBlockette1000 ¶
func EncodeBlockette1000(blk Blockette1000) []byte
EncodeBlockette1000 converts a Blockette1000 into a byte slice.
func EncodeBlockette1001 ¶
func EncodeBlockette1001(blk Blockette1001) []byte
func EncodeBlocketteHeader ¶
func EncodeBlocketteHeader(hdr BlocketteHeader) []byte
EncodeBlocketteHeader converts a BlocketteHeader into a byte slice.
func EncodeRecordHeader ¶
func EncodeRecordHeader(hdr RecordHeader) []byte
EncodeRecordHeader converts a RecordHeader into a byte slice.
Types ¶
type BTime ¶
type BTime struct { Year uint16 Doy uint16 Hour uint8 Minute uint8 Second uint8 Unused byte S0001 uint16 }
BTime is the SEED Representation of Time.
func DecodeBTime ¶
DecodeBTime returns a BTime from a byte slice.
type Blockette1000 ¶
Blockette1000 is a Data Only Seed Blockette (excluding header).
func DecodeBlockette1000 ¶
func DecodeBlockette1000(data []byte) Blockette1000
DecodeBlockette1000 returns a Blockette1000 from a byte slice.
func (Blockette1000) Marshal ¶
func (b Blockette1000) Marshal() ([]byte, error)
Marshal converts a Blockette1000 into a byte slice.
func (*Blockette1000) Unmarshal ¶
func (b *Blockette1000) Unmarshal(data []byte) error
Unmarshal converts a byte slice into the Blockette1000
type Blockette1001 ¶
type Blockette1001 struct { TimingQuality uint8 MicroSec int8 //Increased accuracy for starttime Reserved uint8 FrameCount uint8 }
Blockette1001 is a "Data Extension Blockette" (excluding header).
func DecodeBlockette1001 ¶
func DecodeBlockette1001(data []byte) Blockette1001
DecodeBlockette1001 returns a Blockette1001 from a byte slice.
func (Blockette1001) Marshal ¶
func (b Blockette1001) Marshal() ([]byte, error)
Marshal converts a Blockette1001 into a byte slice.
func (*Blockette1001) Unmarshal ¶
func (b *Blockette1001) Unmarshal(data []byte) error
Unmarshal converts a byte slice into the Blockette1001
type BlocketteHeader ¶
type BlocketteHeader struct { BlocketteType uint16 NextBlockette uint16 // Byte of next blockette, 0 if last blockette }
BlocketteHeader stores the header of each miniseed blockette.
func DecodeBlocketteHeader ¶
func DecodeBlocketteHeader(data []byte) BlocketteHeader
DecodeBlocketteHeader returns a BlocketteHeader from a byte slice.
func (BlocketteHeader) Marshal ¶
func (h BlocketteHeader) Marshal() ([]byte, error)
Marshal converts a BlocketteHeader into a byte slice.
func (*BlocketteHeader) Unmarshal ¶
func (h *BlocketteHeader) Unmarshal(data []byte) error
Unmarshal converts a byte slice into the BlocketteHeader
type Record ¶
type Record struct { RecordHeader B1000 Blockette1000 //If Present B1001 Blockette1001 //If Present Data []byte }
func NewRecord ¶
NewMSRecord decodes and unpacks the record samples from a byte slice and returns a Record pointer, or an empty pointer and an error if it could not be decoded.
func (Record) SampleType ¶
func (m Record) SampleType() SampleType
SampleType returns the type of samples decoded, or UnknownType if no data has been decoded.
type RecordHeader ¶
type RecordHeader struct { SequenceNumber [6]byte // ASCII String representing a 6 digit number DataQualityIndicator byte // ASCII: D, R, Q or M ReservedByte byte // ASCII: Space // These are ascii strings StationIdentifier [5]byte // ASCII: Left justify and pad with spaces LocationIdentifier [2]byte // ASCII: Left justify and pad with spaces ChannelIdentifier [3]byte // ASCII: Left justify and pad with spaces NetworkIdentifier [2]byte // ASCII: Left justify and pad with spaces RecordStartTime BTime // Start time of record NumberOfSamples uint16 // Number of Samples in the data block which may or may not be unpacked. SampleRateFactor int16 // >0: Samples/Second <0: Second/Samples 0: Seconds/Sample, ASCII/OPAQUE DATA records SampleRateMultiplier int16 // >0: Multiplication Factor <0: Division Factor // Flags are bit masks ActivityFlags byte IOAndClockFlags byte DataQualityFlags byte NumberOfBlockettesThatFollow uint8 // Total number of blockettes that follow TimeCorrection int32 // 0.0001 second units BeginningOfData uint16 // Offset in bytes to the beginning of data. FirstBlockette uint16 // Offset in bytes to the first data blockette in the data record. }
func DecodeRecordHeader ¶
func DecodeRecordHeader(data []byte) RecordHeader
DecodeRecordHeader returns a RecordHeader from a byte slice.
func (RecordHeader) Channel ¶
func (h RecordHeader) Channel() string
func (RecordHeader) Correction ¶
func (h RecordHeader) Correction() time.Duration
func (RecordHeader) IsValid ¶
func (h RecordHeader) IsValid() bool
IsValid performs a simple consistency check of the RecordHeader contents.
func (RecordHeader) Less ¶
func (h RecordHeader) Less(hdr RecordHeader) bool
Less can be used for sorting record blocks.
func (RecordHeader) Location ¶
func (h RecordHeader) Location() string
func (RecordHeader) Marshal ¶
func (h RecordHeader) Marshal() ([]byte, error)
func (RecordHeader) Network ¶
func (h RecordHeader) Network() string
func (RecordHeader) SampleCount ¶
func (h RecordHeader) SampleCount() int
SampleCount returns the number of samples in the record, independent of whether they are decoded or not.
func (RecordHeader) SamplePeriod ¶
func (h RecordHeader) SamplePeriod() time.Duration
SamplePeriod converts the sample rate into a time interval, or zero.
func (RecordHeader) SampleRate ¶
func (h RecordHeader) SampleRate() float64
SampleRate returns the decoded header sampling rate in samples per second.
func (RecordHeader) SeqNumber ¶
func (h RecordHeader) SeqNumber() int
func (*RecordHeader) SetChannel ¶
func (h *RecordHeader) SetChannel(s string)
func (*RecordHeader) SetCorrection ¶
func (h *RecordHeader) SetCorrection(correction time.Duration, applied bool)
func (*RecordHeader) SetLocation ¶
func (h *RecordHeader) SetLocation(s string)
func (*RecordHeader) SetNetwork ¶
func (h *RecordHeader) SetNetwork(s string)
func (*RecordHeader) SetSeqNumber ¶
func (h *RecordHeader) SetSeqNumber(no int)
func (*RecordHeader) SetStartTime ¶
func (h *RecordHeader) SetStartTime(t time.Time)
func (*RecordHeader) SetStation ¶
func (h *RecordHeader) SetStation(s string)
func (RecordHeader) SrcName ¶
func (h RecordHeader) SrcName(quality bool) string
func (RecordHeader) StartTime ¶
func (h RecordHeader) StartTime() time.Time
func (RecordHeader) Station ¶
func (h RecordHeader) Station() string
func (*RecordHeader) Unmarshal ¶
func (h *RecordHeader) Unmarshal(data []byte) error
type SampleType ¶
type SampleType byte
const ( UnknownType SampleType = 0 ByteType SampleType = 'a' IntegerType SampleType = 'i' FloatType SampleType = 'f' DoubleType SampleType = 'd' )