Usage

Generally either

import * as miniseed from 'seisplotjs-miniseed'
miniseed.xxxx

or

import * as seisplotjs from 'seisplotjs'
seisplotjs.miniseed.xxxx

Core Functionality

Core functions for parsing miniseed

parseDataRecords

src/miniseed.js

parse arrayBuffer into an array of DataRecords.

parseDataRecords(arrayBuffer: ArrayBuffer)
Parameters
arrayBuffer (ArrayBuffer)

parseSingleDataRecord

src/miniseed.js

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

parseSingleDataRecord(dataView: DataView)
Parameters
dataView (DataView)

parseSingleDataRecordHeader

src/miniseed.js

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

parseSingleDataRecordHeader(dataView: DataView): DataHeader
Parameters
dataView (DataView)
Returns
DataHeader

parseBlockette

src/miniseed.js

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)
Returns
Blockette
parseBTime(dataView: DataView, offset: number, byteSwap: boolean?): BTime
Parameters
dataView (DataView)
offset (number)
byteSwap (boolean?)
Returns
BTime

areContiguous

src/miniseed.js

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)
Parameters
dr1 (DataRecord)
dr2 (DataRecord)

createSeismogram

src/miniseed.js

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.

createSeismogram(contig: Array<DataRecord>): model.Seismogram
Parameters
contig (Array<DataRecord>)
Returns
model.Seismogram

Merges data records into a arrary of seismogram segment objects containing the data as a float array, y. Each seismogram has sampleRate, start, end, netCode, staCode, locCode, chanCode as well as the function timeOfSample(integer) set. This assumes all data records are from the same channel, byChannel can be used first if multiple channels may be present.

merge(drList: Array<DataRecord>): Array<model.Seismogram>
Parameters
drList (Array<DataRecord>)
Returns
Array<model.Seismogram>

segmentMinMax

src/miniseed.js

Finds the min and max values of a Seismogram, with an optional accumulator for use with gappy data.

segmentMinMax(segment: model.Seismogram, minMaxAccumulator: Array<number>?): Array<number>
Parameters
segment (model.Seismogram)
minMaxAccumulator (Array<number>?)
Returns
Array<number>

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>)
Returns
Map<string, Array<DataRecord>>

Core Classes

Core classes returned from the above functions.

Represents a SEED Data Record, with header, blockettes and data. Currently only blockette 1000 is parsed, others are separated, but left as just a DataView.

new DataRecord(header: DataHeader, data: DataView)
Parameters
header (DataHeader)
data (DataView)
Instance Members
header
decompData
decompress()
codes()

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
typeCode
continuationCode
staCode
locCode
chanCode
netCode
startBTime
numSamples
encoding
littleEndian
sampRateFac
sampRateMul
sampleRate
activityFlags
ioClockFlags
dataQualityFlags
numBlockettes
timeCorrection
dataOffset
blocketteOffset
recordSize
blocketteList
start
end
toString()
calcSampleRate()
timeOfSample(i)
new Blockette(type: number, body: DataView)
Parameters
type (number)
body (DataView)
Instance Members

Blockette1000

src/miniseed.js
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
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
tenthMilli
length
toString()
toMoment()
toDate()

Re-export

Re-exporting imported modules for easier reuse.

seedcodec
model

Other

Stuff I forgot to put in the TOC.