pyrocko.io.ims

Module to read and write GSE2.0, GSE2.1, and IMS1.0 files.

exception SerializeError[source]

Raised when serialization of an IMS/GSE2 object fails.

exception DeserializeError(*args, **kwargs)[source]

Raised when deserialization of an IMS/GSE2 object fails.

set_context(line_number, line, version_dialect)[source]
float_or_none(x)[source]
int_or_none(x)[source]
float_to_string(fmt)[source]
int_to_string(fmt)[source]
deserialize_string(fmt)[source]
serialize_string(fmt)[source]
rstrip_string(v)[source]
x_fixed(expect)[source]
x_scaled(fmt, factor)[source]
x_int_angle()[source]
x_substitute(value)[source]
fillup_zeros(s, fmt)[source]
x_date_time(fmt='%Y/%m/%d %H:%M:%S.3FRAC')[source]
x_date()[source]
x_date_iris()[source]
x_date_time_no_seconds()[source]
x_date_time_2frac()[source]
x_yesno()[source]
optional(x_func)[source]
class E(begin, end, fmt, dummy=False)[source]
end_section(line, extra=None)[source]
class Section(**kwargs)[source]

Base class for top level sections in IMS/GSE2 files.

Sections as understood by this implementation typically correspond to a DATA_TYPE section in IMS/GSE2 but for some types a finer granularity has been chosen.

handlers = {b'BEAM': <class 'pyrocko.io.ims.BeamSection'>, b'BULLETIN': <class 'pyrocko.io.ims.BulletinSection'>, b'CHANNEL': <class 'pyrocko.io.ims.ChannelSection'>, b'ERROR_LOG': <class 'pyrocko.io.ims.ErrorLogSection'>, b'EVENT': <class 'pyrocko.io.ims.EventsSection'>, b'FTP_LOG': <class 'pyrocko.io.ims.FTPLogSection'>, b'LOG': <class 'pyrocko.io.ims.LogSection'>, b'NETWORK': <class 'pyrocko.io.ims.NetworkSection'>, b'OUTAGE': <class 'pyrocko.io.ims.OutageSection'>, b'RESPONSE': <class 'pyrocko.io.ims.ResponseSection'>, b'STATION': <class 'pyrocko.io.ims.StationSection'>, b'WAVEFORM': <class 'pyrocko.io.ims.WaveformSection'>}
classmethod read(reader)[source]
write_datatype(writer)[source]
classmethod read_table(reader, expected_header, block_cls, end=<function end_section>)[source]
write_table(writer, header, blocks)[source]
get_versioned(x, version_dialect)[source]
class Block(**kwargs)[source]

Base class for IMS/GSE2 data blocks / lines.

Blocks as understood by this implementation usually correspond to individual logical lines in the IMS/GSE2 file.

values()[source]
classmethod format(version_dialect)[source]
serialize(version_dialect)[source]
classmethod deserialize_values(line, version_dialect)[source]
classmethod validated(*args, **kwargs)[source]
classmethod regularized(*args, **kwargs)[source]
classmethod deserialize(line, version_dialect)[source]
classmethod read(reader)[source]
write(writer)[source]
class FreeFormatLine(**kwargs)[source]

Base class for IMS/GSE2 free format lines.

classmethod deserialize_values(line, version_dialect)[source]
classmethod deserialize(line, version_dialect)[source]
serialize(version_dialect)[source]
class DataType(**kwargs)[source]

Representation of a DATA_TYPE line.

type

str

subtype

str, optional

format

str

subformat

str, optional

type = <pyrocko.guts.String.__T object>
subtype = <pyrocko.guts.String.__T object>
format = <pyrocko.guts.String.__T object>
subformat = <pyrocko.guts.String.__T object>
classmethod deserialize(line, version_dialect)[source]
serialize(version_dialect)[source]
classmethod read(reader)[source]
write(writer)[source]
class FTPFile(**kwargs)[source]

Representation of an FTP_FILE line.

net_address

str

login_mode

builtins.str (pyrocko.guts.StringChoice)

directory

str

file

str

net_address = <pyrocko.guts.String.__T object>
login_mode = <pyrocko.guts.StringChoice.__T object>
directory = <pyrocko.guts.String.__T object>
file = <pyrocko.guts.String.__T object>
class WaveformSubformat(dummy) → str[source]

Any str out of ['INT', 'CM6', 'CM8', 'AU6', 'AU8'].

choices = ['INT', 'CM6', 'CM8', 'AU6', 'AU8']
ignore_case = True
class WID2(**kwargs)[source]

Representation of a WID2 line.

time

fixme!

station

str

station code (5 characters)

channel

str

channel code (3 characters)

location

str, optional, default: ''

location code (aux_id, 4 characters)

sub_format

builtins.str (WaveformSubformat), default: 'CM6'

nsamples

int, default: 0

sample_rate

float, default: 1.0

calibration_factor

float, optional

system sensitivity (m/count) at reference period (calibration_period)

calibration_period

float, optional

calibration reference period [s]

instrument_type

str, optional, default: ''

instrument type (6 characters)

horizontal_angle

float, optional

horizontal orientation of sensor, clockwise from north [deg]

vertical_angle

float, optional

vertical orientation of sensor from vertical [deg]

time = <pyrocko.guts.Timestamp.__T object>
station = <pyrocko.guts.String.__T object>
channel = <pyrocko.guts.String.__T object>
location = <pyrocko.guts.String.__T object>
sub_format = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
nsamples = <pyrocko.guts.Int.__T object>
sample_rate = <pyrocko.guts.Float.__T object>
calibration_factor = <pyrocko.guts.Float.__T object>
calibration_period = <pyrocko.guts.Float.__T object>
instrument_type = <pyrocko.guts.String.__T object>
horizontal_angle = <pyrocko.guts.Float.__T object>
vertical_angle = <pyrocko.guts.Float.__T object>
class OUT2(**kwargs)[source]

Representation of an OUT2 line.

time

fixme!

station

str

station code (5 characters)

channel

str

channel code (3 characters)

location

str, optional, default: ''

location code (aux_id, 4 characters)

duration

float

time = <pyrocko.guts.Timestamp.__T object>
station = <pyrocko.guts.String.__T object>
channel = <pyrocko.guts.String.__T object>
location = <pyrocko.guts.String.__T object>
duration = <pyrocko.guts.Float.__T object>
class DLY2(**kwargs)[source]

Representation of a DLY2 line.

time

fixme!

station

str

station code (5 characters)

channel

str

channel code (3 characters)

location

str, optional, default: ''

location code (aux_id, 4 characters)

queue_duration

float

duration of queue [s]

time = <pyrocko.guts.Timestamp.__T object>
station = <pyrocko.guts.String.__T object>
channel = <pyrocko.guts.String.__T object>
location = <pyrocko.guts.String.__T object>
queue_duration = <pyrocko.guts.Float.__T object>
class DAT2(**kwargs)[source]

Representation of a DAT2 line.

raw_data

list of str objects, default: []

raw_data = <pyrocko.guts.List.__T object>
classmethod read(reader)[source]
write(writer)[source]
class STA2(**kwargs)[source]

Representation of a STA2 line.

network

str

network code (9 characters)

lat

float, optional

lon

float, optional

coordinate_system

str, default: 'WGS-84'

elevation

float, optional

elevation [m]

depth

float, optional

emplacement depth [m]

network = <pyrocko.guts.String.__T object>
lat = <pyrocko.guts.Float.__T object>
lon = <pyrocko.guts.Float.__T object>
coordinate_system = <pyrocko.guts.String.__T object>
elevation = <pyrocko.guts.Float.__T object>
depth = <pyrocko.guts.Float.__T object>
class CHK2(**kwargs)[source]

Representation of a CHK2 line.

checksum

int

checksum = <pyrocko.guts.Int.__T object>
class EID2(**kwargs)[source]

Representation of an EID2 line.

event_id

str

event ID (8 characters)

bulletin_type

str

bulletin type (9 characters)

event_id = <pyrocko.guts.String.__T object>
bulletin_type = <pyrocko.guts.String.__T object>
class BEA2(**kwargs)[source]

Representation of a BEA2 line.

beam_id

str

beam ID (12 characters)

azimuth

float

slowness

float

beam_id = <pyrocko.guts.String.__T object>
azimuth = <pyrocko.guts.Float.__T object>
slowness = <pyrocko.guts.Float.__T object>
class Network(**kwargs)[source]

Representation of an entry in a NETWORK section.

network

str

network code (9 characters)

description

str

description

network = <pyrocko.guts.String.__T object>
description = <pyrocko.guts.String.__T object>
class Station(**kwargs)[source]

Representation of an entry in a STATION section.

network

str

network code (9 characters)

station

str

station code (5 characters)

type

str

station type (4 characters) (1C: single component, 3C: three-component, hfa: high frequency array, lpa: long period array)

lat

float

lon

float

coordinate_system

str, default: 'WGS-84'

elevation

float

elevation [m]

tmin

fixme!

tmax

fixme!, optional

network = <pyrocko.guts.String.__T object>
station = <pyrocko.guts.String.__T object>
type = <pyrocko.guts.String.__T object>
lat = <pyrocko.guts.Float.__T object>
lon = <pyrocko.guts.Float.__T object>
coordinate_system = <pyrocko.guts.String.__T object>
elevation = <pyrocko.guts.Float.__T object>
tmin = <pyrocko.guts.Timestamp.__T object>
tmax = <pyrocko.guts.Timestamp.__T object>
class Channel(**kwargs)[source]

Representation of an entry in a CHANNEL section.

network

str

network code (9 characters)

station

str

station code (5 characters)

channel

str

channel code (3 characters)

location

str, optional, default: ''

location code (aux_id, 4 characters)

lat

float, optional

lon

float, optional

coordinate_system

str, default: 'WGS-84'

elevation

float, optional

elevation [m]

depth

float, optional

emplacement depth [m]

horizontal_angle

float, optional

horizontal orientation of sensor, clockwise from north [deg]

vertical_angle

float, optional

vertical orientation of sensor from vertical [deg]

sample_rate

float

instrument_type

str, optional, default: ''

instrument type (6 characters)

tmin

fixme!

tmax

fixme!, optional

network = <pyrocko.guts.String.__T object>
station = <pyrocko.guts.String.__T object>
channel = <pyrocko.guts.String.__T object>
location = <pyrocko.guts.String.__T object>
lat = <pyrocko.guts.Float.__T object>
lon = <pyrocko.guts.Float.__T object>
coordinate_system = <pyrocko.guts.String.__T object>
elevation = <pyrocko.guts.Float.__T object>
depth = <pyrocko.guts.Float.__T object>
horizontal_angle = <pyrocko.guts.Float.__T object>
vertical_angle = <pyrocko.guts.Float.__T object>
sample_rate = <pyrocko.guts.Float.__T object>
instrument_type = <pyrocko.guts.String.__T object>
tmin = <pyrocko.guts.Timestamp.__T object>
tmax = <pyrocko.guts.Timestamp.__T object>
class BeamGroup(**kwargs)[source]

Representation of an entry in a BEAM group table.

beam_group

str

beam group (8 characters)

station

str

station code (5 characters)

channel

str

channel code (3 characters)

location

str, optional, default: ''

location code (aux_id, 4 characters)

weight

int, optional

weight used for this component when the beam was formed

delay

float, optional

beam delay for this component [s] (used for meabs formed by non-plane waves)

beam_group = <pyrocko.guts.String.__T object>
station = <pyrocko.guts.String.__T object>
channel = <pyrocko.guts.String.__T object>
location = <pyrocko.guts.String.__T object>
weight = <pyrocko.guts.Int.__T object>
delay = <pyrocko.guts.Float.__T object>
class BeamType(dummy) → str[source]

Any str out of ['inc', 'coh'].

choices = ['inc', 'coh']
ignore_case = True
class FilterType(dummy) → str[source]

Any str out of ['BP', 'LP', 'HP', 'BR'].

choices = ['BP', 'LP', 'HP', 'BR']
ignore_case = True
class BeamParameters(**kwargs)[source]

Representation of an entry in a BEAM parameters table.

beam_id

str

beam_group

str

type

builtins.str (BeamType)

is_rotated

bool

rotation flag

azimuth

float

azimuth used to steer the beam [deg] (clockwise from North)

slowness

float

slowness used to steer the beam [s/deg]

phase

str

phase used to set the beam slowness for origin-based beams (8 characters)

filter_fmin

float

low frequency cut-off for the beam filter [Hz]

filter_fmax

float

high frequency cut-off for the beam filter [Hz]

filter_order

int

order of the beam filter

filter_is_zero_phase

bool

flag to indicate zero-phase filtering

filter_type

builtins.str (FilterType)

type of filtering

tmin

fixme!

start date of beam use

tmax

fixme!, optional

end date of beam use

beam_id = <pyrocko.guts.String.__T object>
beam_group = <pyrocko.guts.String.__T object>
type = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
is_rotated = <pyrocko.guts.Bool.__T object>
azimuth = <pyrocko.guts.Float.__T object>
slowness = <pyrocko.guts.Float.__T object>
phase = <pyrocko.guts.String.__T object>
filter_fmin = <pyrocko.guts.Float.__T object>
filter_fmax = <pyrocko.guts.Float.__T object>
filter_order = <pyrocko.guts.Int.__T object>
filter_is_zero_phase = <pyrocko.guts.Bool.__T object>
filter_type = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
tmin = <pyrocko.guts.Timestamp.__T object>
tmax = <pyrocko.guts.Timestamp.__T object>
class OutageReportPeriod(**kwargs)[source]

Representation of a the report period of an OUTAGE section.

tmin

fixme!

tmax

fixme!

tmin = <pyrocko.guts.Timestamp.__T object>
tmax = <pyrocko.guts.Timestamp.__T object>
class Outage(**kwargs)[source]

Representation of an entry in the OUTAGE section table.

network

str

network code (9 characters)

station

str

station code (5 characters)

channel

str

channel code (3 characters)

location

str, optional, default: ''

location code (aux_id, 4 characters)

tmin

fixme!

tmax

fixme!

duration

float

comment

str

network = <pyrocko.guts.String.__T object>
station = <pyrocko.guts.String.__T object>
channel = <pyrocko.guts.String.__T object>
location = <pyrocko.guts.String.__T object>
tmin = <pyrocko.guts.Timestamp.__T object>
tmax = <pyrocko.guts.Timestamp.__T object>
duration = <pyrocko.guts.Float.__T object>
comment = <pyrocko.guts.String.__T object>
class CAL2(**kwargs)[source]

Representation of a CAL2 line.

station

str

station code (5 characters)

channel

str

channel code (3 characters)

location

str, optional, default: ''

location code (aux_id, 4 characters)

instrument_type

str, optional, default: ''

instrument type (6 characters)

calibration_factor

float

system sensitivity (m/count) at reference period (calibration_period)

calibration_period

float

calibration reference period [s]

sample_rate

float

system output sample rate [Hz]

tmin

fixme!

effective start date and time

tmax

fixme!, optional

effective end date and time

comments

list of str objects, default: []

station = <pyrocko.guts.String.__T object>
channel = <pyrocko.guts.String.__T object>
location = <pyrocko.guts.String.__T object>
instrument_type = <pyrocko.guts.String.__T object>
calibration_factor = <pyrocko.guts.Float.__T object>
calibration_period = <pyrocko.guts.Float.__T object>
sample_rate = <pyrocko.guts.Float.__T object>
tmin = <pyrocko.guts.Timestamp.__T object>
tmax = <pyrocko.guts.Timestamp.__T object>
comments = <pyrocko.guts.List.__T object>
classmethod read(reader)[source]
write(writer)[source]
class Units(dummy) → str[source]

Any str out of ['V', 'A', 'C'].

choices = ['V', 'A', 'C']
ignore_case = True
class Stage(**kwargs)[source]

Base class for IMS/GSE2 response stages.

Available response stages are PAZ2, FAP2, GEN2, DIG2, and FIR2.

stage_number

int

stage sequence number

stage_number = <pyrocko.guts.Int.__T object>
classmethod read(reader)[source]
write(writer)[source]
write_datalines(writer)[source]
class PAZ2Data(**kwargs)[source]

Representation of the complex numbers in PAZ2 sections.

real

float

imag

float

real = <pyrocko.guts.Float.__T object>
imag = <pyrocko.guts.Float.__T object>
class PAZ2(**kwargs)[source]

Representation of a PAZ2 line.

output_units

builtins.str (Units)

output units code (V=volts, A=amps, C=counts)

scale_factor

float

scale factor [ouput units/input units]

decimation

int, optional

decimation

correction

float, optional

group correction applied [s]

npoles

int

number of poles

nzeros

int

number of zeros

description

str, optional, default: ''

description

poles

list of complex objects, default: []

zeros

list of complex objects, default: []

comments

list of str objects, default: []

output_units = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
scale_factor = <pyrocko.guts.Float.__T object>
decimation = <pyrocko.guts.Int.__T object>
correction = <pyrocko.guts.Float.__T object>
npoles = <pyrocko.guts.Int.__T object>
nzeros = <pyrocko.guts.Int.__T object>
description = <pyrocko.guts.String.__T object>
poles = <pyrocko.guts.List.__T object>
zeros = <pyrocko.guts.List.__T object>
comments = <pyrocko.guts.List.__T object>
append_dataline(line, version_dialect)[source]
write_datalines(writer)[source]
class FAP2Data(**kwargs)[source]

Representation of the data tuples in FAP2 section.

frequency

float

amplitude

float

phase

float

frequency = <pyrocko.guts.Float.__T object>
amplitude = <pyrocko.guts.Float.__T object>
phase = <pyrocko.guts.Float.__T object>
class FAP2(**kwargs)[source]

Representation of a FAP2 line.

output_units

builtins.str (Units)

output units code (V=volts, A=amps, C=counts)

decimation

int, optional

decimation

correction

float

group correction applied [s]

ntrip

int

number of frequency, amplitude, phase triplets

description

str, optional, default: ''

description

frequencies

list of float objects, default: []

frequency [Hz]

amplitudes

list of float objects, default: []

amplitude [input untits/output units]

phases

list of float objects, default: []

phase delay [degrees]

comments

list of str objects, default: []

output_units = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
decimation = <pyrocko.guts.Int.__T object>
correction = <pyrocko.guts.Float.__T object>
ntrip = <pyrocko.guts.Int.__T object>
description = <pyrocko.guts.String.__T object>
frequencies = <pyrocko.guts.List.__T object>
amplitudes = <pyrocko.guts.List.__T object>
phases = <pyrocko.guts.List.__T object>
comments = <pyrocko.guts.List.__T object>
append_dataline(line, version_dialect)[source]
write_datalines(writer)[source]
class GEN2Data(**kwargs)[source]

Representation of a data tuple in GEN2 section.

corner

float

corner frequency [Hz]

slope

float

slope above corner [dB/decate]

corner = <pyrocko.guts.Float.__T object>
slope = <pyrocko.guts.Float.__T object>
class GEN2(**kwargs)[source]

Representation of a GEN2 line.

output_units

builtins.str (Units)

output units code (V=volts, A=amps, C=counts)

calibration_factor

float

system sensitivity (m/count) at reference period (calibration_period)

calibration_period

float

calibration reference period [s]

decimation

int, optional

decimation

correction

float

group correction applied [s]

ncorners

int

number of corners

description

str, optional, default: ''

description

corners

list of float objects, default: []

corner frequencies [Hz]

slopes

list of float objects, default: []

slopes above corners [dB/decade]

comments

list of str objects, default: []

output_units = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
calibration_factor = <pyrocko.guts.Float.__T object>
calibration_period = <pyrocko.guts.Float.__T object>
decimation = <pyrocko.guts.Int.__T object>
correction = <pyrocko.guts.Float.__T object>
ncorners = <pyrocko.guts.Int.__T object>
description = <pyrocko.guts.String.__T object>
corners = <pyrocko.guts.List.__T object>
slopes = <pyrocko.guts.List.__T object>
comments = <pyrocko.guts.List.__T object>
append_dataline(line, version_dialect)[source]
write_datalines(writer)[source]
class DIG2(**kwargs)[source]

Representation of a DIG2 line.

sensitivity

float

sensitivity [counts/input units]

sample_rate

float

digitizer sample rate [Hz]

description

str, optional, default: ''

description

comments

list of str objects, default: []

sensitivity = <pyrocko.guts.Float.__T object>
sample_rate = <pyrocko.guts.Float.__T object>
description = <pyrocko.guts.String.__T object>
comments = <pyrocko.guts.List.__T object>
class SymmetryFlag(dummy) → str[source]

Any str out of ['A', 'B', 'C'].

choices = ['A', 'B', 'C']
ignore_case = True
class FIR2Data(**kwargs)[source]

Representation of a line of coefficients in a FIR2 section.

factors

list of float objects, default: []

factors = <pyrocko.guts.List.__T object>
values()[source]
classmethod deserialize(line, version_dialect)[source]
class FIR2(**kwargs)[source]

Representation of a FIR2 line.

gain

float

filter gain (relative factor, not in dB)

decimation

int, optional

decimation

correction

float

group correction applied [s]

symmetry

builtins.str (SymmetryFlag)

symmetry flag (A=asymmetric, B=symmetric (odd), C=symmetric (even))

nfactors

int

number of factors

description

str, optional, default: ''

description

comments

list of str objects, default: []

factors

list of float objects, default: []

gain = <pyrocko.guts.Float.__T object>
decimation = <pyrocko.guts.Int.__T object>
correction = <pyrocko.guts.Float.__T object>
symmetry = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
nfactors = <pyrocko.guts.Int.__T object>
description = <pyrocko.guts.String.__T object>
comments = <pyrocko.guts.List.__T object>
factors = <pyrocko.guts.List.__T object>
append_dataline(line, version_dialect)[source]
write_datalines(writer)[source]
class Begin(**kwargs)[source]

Representation of a BEGIN line.

version

str, optional

version = <pyrocko.guts.String.__T object>
classmethod read(reader)[source]
write(writer)[source]
class MessageType(dummy) → str[source]

Any str out of ['REQUEST', 'DATA', 'SUBSCRIPTION'].

choices = ['REQUEST', 'DATA', 'SUBSCRIPTION']
ignore_case = True
class MsgType(**kwargs)[source]

Undocumented.

type

builtins.str (MessageType)

type = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
class MsgID(**kwargs)[source]

Representation of a MSG_ID line.

msg_id_string

str

msg_id_source

str, optional

msg_id_string = <pyrocko.guts.String.__T object>
msg_id_source = <pyrocko.guts.String.__T object>
classmethod read(reader)[source]
write(writer)[source]
class RefID(**kwargs)[source]

Representation of a REF_ID line.

msg_id_string

str

msg_id_source

str, optional

sequence_number

int, optional

total_number

int, optional

msg_id_string = <pyrocko.guts.String.__T object>
msg_id_source = <pyrocko.guts.String.__T object>
sequence_number = <pyrocko.guts.Int.__T object>
total_number = <pyrocko.guts.Int.__T object>
serialize(version_dialect)[source]
class LogSection(**kwargs)[source]

Representation of a DATA_TYPE LOG section.

lines

list of str objects, default: []

keyword = b'LOG'
lines = <pyrocko.guts.List.__T object>
classmethod read(reader)[source]
write(writer)[source]
class ErrorLogSection(**kwargs)[source]

Representation of a DATA_TYPE ERROR_LOG section.

keyword = b'ERROR_LOG'
class FTPLogSection(**kwargs)[source]

Representation of a DATA_TYPE FTP_LOG section.

ftp_file

FTPFile

keyword = b'FTP_LOG'
ftp_file = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
class WID2Section(**kwargs)[source]

Representation of a WID2/STA2/EID2/BEA2/DAT2/CHK2 group.

wid2

WID2

sta2

STA2, optional

eid2s

list of EID2 objects, default: []

bea2

BEA2, optional

dat2

DAT2

chk2

CHK2

wid2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
sta2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
eid2s = <pyrocko.guts.List.__T object>
bea2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
dat2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
chk2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
pyrocko_trace(checksum_error='raise')[source]
classmethod from_pyrocko_trace(tr, lat=None, lon=None, elevation=None, depth=None)[source]
class OUT2Section(**kwargs)[source]

Representation of a OUT2/STA2 group.

out2

OUT2

sta2

STA2

out2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
sta2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
class DLY2Section(**kwargs)[source]

Representation of a DLY2/STA2 group.

dly2

DLY2

sta2

STA2

dly2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
sta2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
class WaveformSection(**kwargs)[source]

Representation of a DATA_TYPE WAVEFORM line.

Any subsequent WID2/OUT2/DLY2 groups are handled as indepenent sections, so this type just serves as a dummy to read/write the DATA_TYPE WAVEFORM header.

datatype

DataType

keyword = b'WAVEFORM'
datatype = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
class TableSection(**kwargs)[source]

Base class for table style sections.

has_data_type_header = True
classmethod read(reader)[source]
write(writer)[source]
class NetworkSection(**kwargs)[source]

Representation of a DATA_TYPE NETWORK section.

networks

list of Network objects, default: []

keyword = b'NETWORK'
table_setup = {'attribute': 'networks', 'cls': <class 'pyrocko.io.ims.Network'>, 'header': b'Net Description'}
networks = <pyrocko.guts.List.__T object>
class StationSection(**kwargs)[source]

Representation of a DATA_TYPE STATION section.

stations

list of Station objects, default: []

keyword = b'STATION'
table_setup = {'attribute': 'stations', 'cls': <class 'pyrocko.io.ims.Station'>, 'header': {None: b'Net Sta Type Latitude Longitude Coord Sys Elev On Date Off Date', 'GSE2.0': b'Sta Type Latitude Longitude Elev On Date Off Date'}}
stations = <pyrocko.guts.List.__T object>
class ChannelSection(**kwargs)[source]

Representation of a DATA_TYPE CHANNEL section.

channels

list of Channel objects, default: []

keyword = b'CHANNEL'
table_setup = {'attribute': 'channels', 'cls': <class 'pyrocko.io.ims.Channel'>, 'header': {None: b'Net Sta Chan Aux Latitude Longitude Coord Sys Elev Depth Hang Vang Sample Rate Inst On Date Off Date', 'GSE2.0': b'Sta Chan Aux Latitude Longitude Elev Depth Hang Vang Sample_Rate Inst On Date Off Date'}}
channels = <pyrocko.guts.List.__T object>
class BeamSection(**kwargs)[source]

Representation of a DATA_TYPE BEAM section.

group

list of BeamGroup objects, default: []

parameters

list of BeamParameters objects, default: []

keyword = b'BEAM'
beam_group_header = b'Bgroup Sta Chan Aux Wgt Delay'
beam_parameters_header = b'BeamID Bgroup Btype R Azim Slow Phase Flo Fhi O Z F On Date Off Date'
group = <pyrocko.guts.List.__T object>
parameters = <pyrocko.guts.List.__T object>
classmethod read(reader)[source]
write(writer)[source]
class CAL2Section(**kwargs)[source]

Representation of a CAL2 + stages group in a response section.

cal2

CAL2

stages

list of Stage objects, default: []

cal2 = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
stages = <pyrocko.guts.List.__T object>
classmethod read(reader)[source]
write(writer)[source]
class ResponseSection(**kwargs)[source]

Representation of a DATA_TYPE RESPONSE line.

Any subsequent CAL2+stages groups are handled as indepenent sections, so this type just serves as a dummy to read/write the DATA_TYPE RESPONSE header.

datatype

DataType

keyword = b'RESPONSE'
datatype = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
class OutageSection(**kwargs)[source]

Representation of a DATA_TYPE OUTAGE section.

report_period

OutageReportPeriod

outages

list of Outage objects, default: []

keyword = b'OUTAGE'
outages_header = b'NET Sta Chan Aux Start Date Time End Date Time Duration Comment'
report_period = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
outages = <pyrocko.guts.List.__T object>
classmethod read(reader)[source]
write(writer)[source]
class BulletinTitle(**kwargs)[source]

Undocumented.

title

str

title = <pyrocko.guts.String.__T object>
class Origin(**kwargs)[source]

Undocumented.

time

fixme!

epicenter date and time

time_fixed

builtins.str (pyrocko.guts.StringChoice), optional

fixed flag, "f" if fixed origin time solution, None if not

time_error

float, optional

origin time error [seconds], None if fixed origin time

residual

float, optional

root mean square of time residuals [seconds]

lat

float

latitude

lon

float

longitude

lat_lon_fixed

builtins.str (pyrocko.guts.StringChoice), optional

fixed flag, "f" if fixed epicenter solution, None if not

ellipse_semi_major_axis

float, optional

semi-major axis of 90% c. i. ellipse or its estimate [m], None if fixed

ellipse_semi_minor_axis

float, optional

semi-minor axis of 90% c. i. ellipse or its estimate [m], None if fixed

ellipse_strike

float, optional

strike of 90% c. i. ellipse [0-360], None if fixed

depth

float

depth [m]

depth_fixed

builtins.str (pyrocko.guts.StringChoice), optional

fixed flag, "f" fixed depth station, “d” depth phases, None if not fixed depth

depth_error

float, optional

depth error [m], 90% c. i., None if fixed depth

nphases

int, optional

number of defining phases

nstations

int, optional

number of defining stations

azimuthal_gap

float, optional

gap in azimuth coverage [deg]

distance_min

float, optional

distance to closest station [deg]

distance_max

float, optional

distance to furthest station [deg]

analysis_type

builtins.str (pyrocko.guts.StringChoice), optional

analysis type, "a" automatic, "m" manual, "g" guess

location_method

builtins.str (pyrocko.guts.StringChoice), optional

location method, "i" inversion, "p" pattern, "g" ground truth, "o" other

event_type

builtins.str (pyrocko.guts.StringChoice), optional

event type, "de" ??, "fe" ??, "ke" known earthquake, "ki" known induced event, "km" known mine explosion, "kn" known nuclear explosion, "kr" known rockburst, "kx" known experimental explosion, "ls" landslide, "se" suspected earthquake, "si" suspected induced event, "sm" suspected mine explosion, "sn" suspected nuclear explosion, "sr" suspected rockburst, "sx" suspected experimental explosion, "uk" unknown

author

str

author of the origin

origin_id

str

origin identification

time = <pyrocko.guts.Timestamp.__T object>
time_fixed = <pyrocko.guts.StringChoice.__T object>
time_error = <pyrocko.guts.Float.__T object>
residual = <pyrocko.guts.Float.__T object>
lat = <pyrocko.guts.Float.__T object>
lon = <pyrocko.guts.Float.__T object>
lat_lon_fixed = <pyrocko.guts.StringChoice.__T object>
ellipse_semi_major_axis = <pyrocko.guts.Float.__T object>
ellipse_semi_minor_axis = <pyrocko.guts.Float.__T object>
ellipse_strike = <pyrocko.guts.Float.__T object>
depth = <pyrocko.guts.Float.__T object>
depth_fixed = <pyrocko.guts.StringChoice.__T object>
depth_error = <pyrocko.guts.Float.__T object>
nphases = <pyrocko.guts.Int.__T object>
nstations = <pyrocko.guts.Int.__T object>
azimuthal_gap = <pyrocko.guts.Float.__T object>
distance_min = <pyrocko.guts.Float.__T object>
distance_max = <pyrocko.guts.Float.__T object>
analysis_type = <pyrocko.guts.StringChoice.__T object>
location_method = <pyrocko.guts.StringChoice.__T object>
event_type = <pyrocko.guts.StringChoice.__T object>
author = <pyrocko.guts.String.__T object>
origin_id = <pyrocko.guts.String.__T object>
class OriginSection(**kwargs)[source]

Undocumented.

origins

list of Origin objects, default: []

has_data_type_header = False
table_setup = {'attribute': 'origins', 'cls': <class 'pyrocko.io.ims.Origin'>, 'end': <function OriginSection.<lambda>>, 'header': {None: b' Date Time Err RMS Latitude Longitude Smaj Smin Az Depth Err Ndef Nsta Gap mdist Mdist Qual Author OrigID'}}
origins = <pyrocko.guts.List.__T object>
class EventTitle(**kwargs)[source]

Undocumented.

event_id

str

region

str

event_id = <pyrocko.guts.String.__T object>
region = <pyrocko.guts.String.__T object>
class EventSection(**kwargs)[source]

Groups Event, Arrival, …

event_title

EventTitle

origin_section

OriginSection

event_title = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
origin_section = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
class EventsSection(**kwargs)[source]

Representation of a DATA_TYPE EVENT section.

bulletin_title

BulletinTitle

event_sections

list of EventSection objects, default: []

keyword = b'EVENT'
bulletin_title = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
event_sections = <pyrocko.guts.List.__T object>
classmethod read(reader)[source]
write(writer)[source]
class BulletinSection(**kwargs)[source]

Representation of a DATA_TYPE BULLETIN section.

keyword = b'BULLETIN'
class MessageHeader(**kwargs)[source]

Representation of a BEGIN/MSG_TYPE/MSG_ID/REF_ID group.

version

str

type

str

msg_id

MsgID, optional

ref_id

RefID, optional

version = <pyrocko.guts.String.__T object>
type = <pyrocko.guts.String.__T object>
msg_id = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
ref_id = <pyrocko.guts.ObjectMetaClass.__new__.<locals>.T object>
classmethod read(reader)[source]
write(writer)[source]
parse_ff_date_time(s)[source]
string_ff_date_time(t)[source]
class TimeStamp(**kwargs)[source]

Representation of a TIME_STAMP line.

value

fixme!

value = <pyrocko.guts.Timestamp.__T object>
classmethod deserialize(line, version_dialect)[source]
serialize(line, version_dialect)[source]
class Stop(**kwargs)[source]

Representation of a STOP line.

dummy

str, optional

dummy = <pyrocko.guts.String.__T object>
class XW01(**kwargs)[source]

Representation of a XW01 line (which is a relict from GSE1).

dummy

str, optional

dummy = <pyrocko.guts.String.__T object>
class Reader(f, load_data=True, version=None, dialect=None)[source]
tell()[source]
current_line_number()[source]
readline()[source]
get_comments_after(lpos)[source]
pushback()[source]
next()[source]
class Writer(f, version='GSE2.1', dialect=None)[source]
write(section)[source]
writeline(line)[source]
write_string(sections)[source]
iload_fh(f, **kwargs)[source]

Load IMS/GSE2 records from open file handle.

iload_string(s, **kwargs)[source]

Read IMS/GSE2 sections from bytes string.

iload_filename(filename, **kwargs)

Read IMS/GSE2 information from named file.

iload_dirname(dirname, **kwargs)

Read IMS/GSE2 information from directory of IMS/GSE2 files.

iload_glob(pattern, **kwargs)

Read IMS/GSE2 information from files matching a glob pattern.

iload(source, **kwargs)

Load IMS/GSE2 information from given source(s)

The source can be specified as the name of a IMS/GSE2 file, the name of a directory containing IMS/GSE2 files, a glob pattern of IMS/GSE2 files, an open filehandle or an iterator yielding any of the forementioned sources.

This function behaves as a generator yielding Section objects.

dump_fh(sections, f)[source]

Dump IMS/GSE2 sections to open file handle.

dump_string(sections)[source]

Write IMS/GSE2 sections to string.