MINISEED_MIME

MINISEED_MIME

Type: string

R_TYPECODE

R_TYPECODE

Type: number

D_TYPECODE

D_TYPECODE

Type: number

Q_TYPECODE

Q_TYPECODE

Type: number

M_TYPECODE

M_TYPECODE

Type: number

parseDataRecords

parse arrayBuffer into an array of DataRecords.

parseDataRecords(arrayBuffer: ArrayBuffer): Array<DataRecord>
Parameters
arrayBuffer (ArrayBuffer) bytes to parse
Returns
Array<DataRecord>: arry of data records

parseSingleDataRecord

parse a single DataRecord starting at the beginning of the DataView. Currently only some blockettes are parsed, 100, 1000, 1001, others are separated, but left as just a DataView.

parseSingleDataRecord(dataView: DataView): DataRecord
Parameters
dataView (DataView) bytes as DataView
Returns
DataRecord: data record

parseSingleDataRecordHeader

parse the DataHeader from a single DataRecord starting at the beginning of the DataView.

parseSingleDataRecordHeader(dataView: DataView): DataHeader
Parameters
dataView (DataView) bytes as DataView
Returns
DataHeader: data record header

parseBlockette

parses a Blockette within the DataView.

parseBlockette(dataView: DataView, offset: number, length: number, headerByteSwap: boolean): Blockette
Parameters
dataView (DataView) containing the data
offset (number) offset into the DataView to start
length (number) size in bytes of the Blockette
headerByteSwap (boolean) true if byte swapping is needed
Returns
Blockette: Blockette instance

DataRecord

Represents a SEED Data Record, with header, blockettes and data.

new DataRecord(header: DataHeader, data: DataView)
Parameters
header (DataHeader)
data (DataView)
Instance Members
header
data
decompress()
asEncodedDataSegment()
codes(sep?)

DataHeader

Represents the header part of the DataRecord, including all the actual fixed header plus fields pulled from a blockette 1000 if present.

new DataHeader()
Instance Members
seq
typeCode
continuationCode
staCode
locCode
chanCode
netCode
startBTime
numSamples
encoding
littleEndian
sampRateFac
sampRateMul
sampleRate
activityFlags
ioClockFlags
dataQualityFlags
numBlockettes
timeCorrection
dataOffset
blocketteOffset
recordSize
blocketteList
startTime
endTime
toString()
calcSampleRate()
timeOfSample(i)

Blockette

new Blockette(type: number, body: DataView)
Parameters
type (number)
body (DataView)
Instance Members
type
body

Blockette1000

new Blockette1000(type: number, body: DataView, encoding: number, dataRecordLengthByte: number, wordOrder: number)

Extends Blockette

Parameters
type (number)
body (DataView)
encoding (number)
dataRecordLengthByte (number)
wordOrder (number)
Instance Members
encoding
dataRecordLengthByte
wordOrder

Blockette1001

new Blockette1001(type: number, body: DataView, timeQual: number, microsecond: number, frameCount: number)

Extends Blockette

Parameters
type (number)
body (DataView)
timeQual (number)
microsecond (number)
frameCount (number)
Instance Members
timeQual
microsecond
frameCount

Blockette100

new Blockette100(type: number, body: DataView, sampleRate: number, flags: number)

Extends Blockette

Parameters
type (number)
body (DataView)
sampleRate (number)
flags (number)
Instance Members
sampleRate
flags

parseBTime

parseBTime(dataView: DataView, offset: number, byteSwap: boolean?): BTime
Parameters
dataView (DataView)
offset (number)
byteSwap (boolean?)
Returns
BTime

BTime

new BTime(year: number, jday: number, hour: number, min: number, sec: number, tenthMilli: number)
Parameters
year (number)
jday (number)
hour (number)
min (number)
sec (number)
tenthMilli (number)
Instance Members
year
jday
hour
min
sec
tenthMilli
microsecond
length
toString()
toDateTime()

checkByteSwap

Sanity checks on a BTime to see if a record might be in the wrong byte order and so need to be byte swapped before parsing. Checks year betwee 1960 and 2055.

checkByteSwap(bTime: BTime): boolean
Parameters
bTime (BTime) time
Returns
boolean: true is byte order appears to be wrong, false if it seems ok

areContiguous

Determines if two DataRecords are contiguous, ie if the second starts after the end of the first and the start time of the second is within 1.5 times the sample period of the end of the first.

areContiguous(dr1: DataRecord, dr2: DataRecord): boolean
Parameters
dr1 (DataRecord) first data record
dr2 (DataRecord) seconds data record
Returns
boolean: true if contiguous

createSeismogramSegment

Concatentates a sequence of DataRecords into a single seismogram object. Assumes that they are all contiguous and in order. Header values from the first DataRecord are used.

createSeismogramSegment(contig: (Array<DataRecord> | DataRecord)): SeismogramSegment
Parameters
contig ((Array<DataRecord> | DataRecord)) array of data records
Returns
SeismogramSegment: SeismogramSegment instance

merge

Merges data records into a Seismogram object, each of which consists of SeismogramSegment objects containing the data as EncodedDataSegment objects. DataRecords are sorted by startTime. This assumes all data records are from the same channel, byChannel can be used first if multiple channels may be present. It also assumes that new seismograms should not be created for gaps, for example when getting data from the same channel for multiple earthquakes.

merge(drList: Array<DataRecord>): Seismogram
Parameters
drList (Array<DataRecord>) array of data records
Returns
Seismogram: Seismogram instance

mergeSegments

merges contiguous DataRecords into SeismogramSegments.

mergeSegments(drList: Array<DataRecord>): Array<SeismogramSegment>
Parameters
drList (Array<DataRecord>) array of data records
Returns
Array<SeismogramSegment>: array of SeismogramSegments for contiguous data

byChannel

Splits a list of data records by channel code, returning a Map with each NSLC string mapped to an array of data records.

byChannel(drList: Array<DataRecord>): Map<string, Array<DataRecord>>
Parameters
drList (Array<DataRecord>) array of data records
Returns
Map<string, Array<DataRecord>>: map of arrays of data records keyed by channel

seismogramSegmentPerChannel

splits the DataRecords by channel and creates a single SeismogramSegment for each contiguous window from each channel.

seismogramSegmentPerChannel(drList: Array<DataRecord>): Array<SeismogramSegment>
Parameters
drList (Array<DataRecord>) DataRecords array
Returns
Array<SeismogramSegment>: Array of SeismogramSegment

seismogramPerChannel

splits the DataRecords by channel and creates a single Seismogram for each channel.

seismogramPerChannel(drList: Array<DataRecord>): Array<Seismogram>
Parameters
drList (Array<DataRecord>) DataRecords array
Returns
Array<Seismogram>: Array of Seismogram