pyrocko.io.stationxml

exception StationXMLError[source]
exception Inconsistencies[source]
exception NoResponseInformation[source]
exception MultipleResponseInformation[source]
exception InconsistentResponseInformation[source]
exception InconsistentChannelLocations[source]
exception InvalidRecord(line)[source]
exception DeliveryError[source]
class Delivery(payload=None, log=None, errors=None, error=None)[source]

Undocumented.

payload

list of pyrocko.guts.Any objects, default: []

log

list of tuple of 3 str objects objects, default: []

errors

list of tuple of 3 str objects objects, default: []

class DummyAwareOptionalTimestamp(dummy) → time_float[source]

Undocumented.

class Nominal(dummy) → None[source]

Any str out of ['NOMINAL', 'CALCULATED'].

class Email(dummy) → None[source]

Any unicode matching pattern '[\\w\\.\\-_]+@[\\w\\.\\-_]+'.

class RestrictedStatus(dummy) → None[source]

Any str out of ['open', 'closed', 'partial'].

class Type(dummy) → None[source]

Any str out of ['TRIGGERED', 'CONTINUOUS', 'HEALTH', 'GEOPHYSICAL', 'WEATHER', 'FLAG', 'SYNTHESIZED', 'INPUT', 'EXPERIMENTAL', 'MAINTENANCE', 'BEAM'].

class PzTransferFunction(dummy) → None[source]

Any str out of ['LAPLACE (RADIANS/SECOND)', 'LAPLACE (HERTZ)', 'DIGITAL (Z-TRANSFORM)'].

class Symmetry(dummy) → None[source]

Any str out of ['NONE', 'EVEN', 'ODD'].

class CfTransferFunction(dummy) → None[source]

Any str out of ['ANALOG (RADIANS/SECOND)', 'ANALOG (HERTZ)', 'DIGITAL'].

class Approximation(dummy) → None[source]

Any str out of ['MACLAURIN'].

class Site(**kwargs)[source]

Description of a site location using name and optional geopolitical boundaries (country, city, etc.).

name

str, default: ''

description

str, optional

town

str, optional

county

str, optional

region

str, optional

country

str, optional

class ExternalReference(**kwargs)[source]

This type contains a URI and description for external data that users may want to reference in StationXML.

uri

str

description

str

class Units(name=None, **kwargs)[source]

A type to document units. Corresponds to SEED blockette 34.

name

str

description

str, optional

class Counter(dummy) → None[source]

Undocumented.

class SampleRateRatio(**kwargs)[source]

Sample rate expressed as number of samples in a number of seconds.

number_samples

int

number_seconds

int

class Gain(value=None, **kwargs)[source]

Complex type for sensitivity and frequency ranges. This complex type can be used to represent both overall sensitivities and individual stage gains. The FrequencyRangeGroup is an optional construct that defines a pass band in Hertz ( FrequencyStart and FrequencyEnd) in which the SensitivityValue is valid within the number of decibels specified in FrequencyDBVariation.

value

float, optional

frequency

float, optional

class NumeratorCoefficient(**kwargs)[source]

Undocumented.

i

int, optional

value

float

class FloatNoUnit(value=None, **kwargs)[source]

Undocumented.

plus_error

float, optional

minus_error

float, optional

value

float

class FloatWithUnit(value=None, **kwargs)[source]

Undocumented.

unit

str, optional

class Equipment(**kwargs)[source]

Undocumented.

resource_id

str, optional

type

str, optional

description

str, optional

manufacturer

str, optional

vendor

str, optional

model

str, optional

serial_number

str, optional

installation_date

time_float, optional

removal_date

time_float, optional

calibration_date_list

list of time_float objects, default: []

class PhoneNumber(**kwargs)[source]

Undocumented.

description

str, optional

country_code

int, optional

area_code

int

phone_number

str (PhoneNumber)

class BaseFilter(**kwargs)[source]

The BaseFilter is derived by all filters.

resource_id

str, optional

name

str, optional

description

str, optional

input_units

Units, optional

output_units

Units, optional

class Sensitivity(value=None, **kwargs)[source]

Sensitivity and frequency ranges. The FrequencyRangeGroup is an optional construct that defines a pass band in Hertz (FrequencyStart and FrequencyEnd) in which the SensitivityValue is valid within the number of decibels specified in FrequencyDBVariation.

input_units

Units, optional

output_units

Units, optional

frequency_start

float, optional

frequency_end

float, optional

frequency_db_variation

float, optional

class Coefficient(value=None, **kwargs)[source]

Undocumented.

number

int (Counter), optional

class PoleZero(**kwargs)[source]

Complex numbers used as poles or zeros in channel response.

number

int, optional

real

FloatNoUnit

imaginary

FloatNoUnit

class ClockDrift(value=None, **kwargs)[source]

Undocumented.

unit

str, optional, default: 'SECONDS/SAMPLE'

class Second(value=None, **kwargs)[source]

A time value in seconds.

unit

str, optional, default: 'SECONDS'

class Voltage(value=None, **kwargs)[source]

Undocumented.

unit

str, optional, default: 'VOLTS'

class Angle(value=None, **kwargs)[source]

Undocumented.

unit

str, optional, default: 'DEGREES'

class Azimuth(value=None, **kwargs)[source]

Instrument azimuth, degrees clockwise from North.

unit

str, optional, default: 'DEGREES'

class Dip(value=None, **kwargs)[source]

Instrument dip in degrees down from horizontal. Together azimuth and dip describe the direction of the sensitive axis of the instrument.

unit

str, optional, default: 'DEGREES'

class Distance(value=None, **kwargs)[source]

Extension of FloatWithUnit for distances, elevations, and depths.

unit

str, optional, default: 'METERS'

class Frequency(value=None, **kwargs)[source]

Undocumented.

unit

str, optional, default: 'HERTZ'

class SampleRate(value=None, **kwargs)[source]

Sample rate in samples per second.

unit

str, optional, default: 'SAMPLES/S'

class Person(**kwargs)[source]

Representation of a person’s contact information. A person can belong to multiple agencies and have multiple email addresses and phone numbers.

name_list

list of str objects, default: []

agency_list

list of str objects, default: []

email_list

list of str (Email) objects, default: []

phone_list

list of PhoneNumber objects, default: []

class FIR(**kwargs)[source]

Response: FIR filter. Corresponds to SEED blockette 61. FIR filters are also commonly documented using the Coefficients element.

symmetry

str (Symmetry)

numerator_coefficient_list

list of NumeratorCoefficient objects, default: []

class Coefficients(**kwargs)[source]

Response: coefficients for FIR filter. Laplace transforms or IIR filters can be expressed using type as well but the PolesAndZeros should be used instead. Corresponds to SEED blockette 54.

cf_transfer_function_type

str (CfTransferFunction)

numerator_list

list of FloatWithUnit objects, default: []

denominator_list

list of FloatWithUnit objects, default: []

class Latitude(value=None, **kwargs)[source]

Type for latitude coordinate.

unit

str, optional, default: 'DEGREES'

datum

str, optional, default: 'WGS84'

class Longitude(value=None, **kwargs)[source]

Type for longitude coordinate.

unit

str, optional, default: 'DEGREES'

datum

str, optional, default: 'WGS84'

class PolesZeros(**kwargs)[source]

Response: complex poles and zeros. Corresponds to SEED blockette 53.

pz_transfer_function_type

str (PzTransferFunction)

normalization_factor

float, default: 1.0

normalization_frequency

Frequency

zero_list

list of PoleZero objects, default: []

pole_list

list of PoleZero objects, default: []

class ResponseListElement(**kwargs)[source]

Undocumented.

frequency

Frequency

amplitude

FloatWithUnit

phase

Angle

class Polynomial(**kwargs)[source]

Response: expressed as a polynomial (allows non-linear sensors to be described). Corresponds to SEED blockette 62. Can be used to describe a stage of acquisition or a complete system.

approximation_type

str (Approximation), default: 'MACLAURIN'

frequency_lower_bound

Frequency

frequency_upper_bound

Frequency

approximation_lower_bound

float

approximation_upper_bound

float

maximum_error

float

coefficient_list

list of Coefficient objects, default: []

class Decimation(**kwargs)[source]

Corresponds to SEED blockette 57.

input_sample_rate

Frequency

factor

int

offset

int

delay

FloatWithUnit

correction

FloatWithUnit

class Operator(**kwargs)[source]

Undocumented.

agency_list

list of str objects, default: []

contact_list

list of Person objects, default: []

web_site

str, optional

class Comment(**kwargs)[source]

Container for a comment or log entry. Corresponds to SEED blockettes 31, 51 and 59.

id

int (Counter), optional

value

str

begin_effective_time

time_float, optional

end_effective_time

time_float, optional

author_list

list of Person objects, default: []

class ResponseList(**kwargs)[source]

Response: list of frequency, amplitude and phase values. Corresponds to SEED blockette 55.

response_list_element_list

list of ResponseListElement objects, default: []

class Log(**kwargs)[source]

Container for log entries.

entry_list

list of Comment objects, default: []

class ResponseStage(**kwargs)[source]

This complex type represents channel response and covers SEED blockettes 53 to 56.

number

int (Counter)

resource_id

str, optional

poles_zeros_list

list of PolesZeros objects, default: []

coefficients_list

list of Coefficients objects, default: []

response_list

ResponseList, optional

fir

FIR, optional

polynomial

Polynomial, optional

decimation

Decimation, optional

stage_gain

Gain, optional

class Response(**kwargs)[source]

Undocumented.

resource_id

str, optional

instrument_sensitivity

Sensitivity, optional

instrument_polynomial

Polynomial, optional

stage_list

list of ResponseStage objects, default: []

classmethod from_pyrocko_pz_response(presponse, input_unit, output_unit, normalization_frequency=1.0)[source]

Convert Pyrocko pole-zero response to StationXML response.

Parameters:
  • presponse (PoleZeroResponse) – Pyrocko pole-zero response
  • input_unit (str) – Input unit to be reported in the StationXML response.
  • output_unit (str) – Output unit to be reported in the StationXML response.
  • normalization_frequency (float) – Frequency where the normalization factor for the StationXML response should be computed.
class BaseNode(**kwargs)[source]

A base node type for derivation from: Network, Station and Channel types.

code

str

start_date

time_float, optional

end_date

time_float, optional

restricted_status

str (RestrictedStatus), optional

alternate_code

str, optional

historical_code

str, optional

description

str, optional

comment_list

list of Comment objects, default: []

class Channel(**kwargs)[source]

Equivalent to SEED blockette 52 and parent element for the related the response blockettes.

location_code

str

external_reference_list

list of ExternalReference objects, default: []

latitude

Latitude

longitude

Longitude

elevation

Distance

depth

Distance

azimuth

Azimuth, optional

dip

Dip, optional

type_list

list of str (Type) objects, default: []

sample_rate

SampleRate, optional

sample_rate_ratio

SampleRateRatio, optional

storage_format

str, optional

clock_drift

ClockDrift, optional

calibration_units

Units, optional

sensor

Equipment, optional

pre_amplifier

Equipment, optional

data_logger

Equipment, optional

equipment

Equipment, optional

response

Response, optional

class Station(**kwargs)[source]

This type represents a Station epoch. It is common to only have a single station epoch with the station’s creation and termination dates as the epoch start and end dates.

latitude

Latitude

longitude

Longitude

elevation

Distance

site

Site, optional

vault

str, optional

geology

str, optional

equipment_list

list of Equipment objects, default: []

operator_list

list of Operator objects, default: []

creation_date

time_float, optional

termination_date

time_float, optional

total_number_channels

int (Counter), optional

selected_number_channels

int (Counter), optional

external_reference_list

list of ExternalReference objects, default: []

channel_list

list of Channel objects, default: []

class Network(**kwargs)[source]

This type represents the Network layer, all station metadata is contained within this element. The official name of the network or other descriptive information can be included in the Description element. The Network can contain 0 or more Stations.

total_number_stations

int (Counter), optional

selected_number_stations

int (Counter), optional

station_list

list of Station objects, default: []

class FDSNStationXML(**kwargs)[source]

Top-level type for Station XML. Required field are Source (network ID of the institution sending the message) and one or more Network containers or one or more Station containers.

schema_version

float, default: 1.0

source

str

sender

str, optional

module

str, optional

module_uri

str, optional

created

time_float, optional

network_list

list of Network objects, default: []

classmethod from_pyrocko_stations(pyrocko_stations, add_flat_responses_from=None)[source]

Generate FDSNStationXML from list of :py:class;`pyrocko.model.Station` instances.

Parameters:
  • pyrocko_stations – list of :py:class;`pyrocko.model.Station` instances.
  • add_flat_responses_from – unit, ‘M’, ‘M/S’ or ‘M/S**2’