Templates
Here are template files for each type of information file. Every possible element is included, with optional parameters marked. For details on formatting, see the schemas at Schema files
Subnetwork and friends
subnetwork
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # a person element
date: "2024-09-30" # yyyy-mm-dd
subnetwork:
operators: # Default station operators
- {$ref: "operators/EXAMPLE.operator.yaml"}
network: {$ref: "networks/EXAMPLE.network.yaml"}
stations:
"STA1":
start_date: "2022-01-01T01:00:00"
end_date: "2022-07-01T01:00:00"
locations:
"00":
base: {$ref: "location_bases/EXAMPLE.location_base.yaml"}
position: {lon.deg: -1.5, lat.deg: 46.1, elev.m: -200}
# BEGIN OPTIONAL locations elements
water_level.m: 200 # if water surface is not at sea level
# END OPTIONAL locations elements
instrumentation: # or instrumentations (list)
base: {$ref: "instrumentation_bases/EXAMPLE.instrumentation_base.yaml"} # `obsinfo template instrumentation_base` for details
# BEGIN OPTIONAL instrumentation elements
configuration: "SN01_2012+" # instrumentation configuration
modifications:
# BEGIN OPTIONAL modifications elements (ALL are optional)
equipment: {model: "MOD_MODEL"} # shortcut for base: {equipment:}
channels: # replace channel definitions in the instrumentation_base
"2": # do something to channel 2 only
sensor: {base: {$ref: 'sensor_bases/EXAMPLE_BBSeismometer.sensor_base.yaml'}} # replace the sensor on all channels
# END OPTIONAL modifications elements
channel_modifications: # All possible attributes under channel, in hierarchical order, except selecting response stages>
"1-*": # {componentcode}-{locationcode} (either can be '*'), or {componentcode}, or "SEISMIC", or "PRESSURE"
# BEGIN OPTIONAL channel_modifications elements (ANY channel element is allowed, none is required)
orientation: {azimuth.deg: {value: 30, uncertainty: 5, measurement_method: 'P-pol'}}
replace_preamplifier: {base: {$ref: "preamplifier_bases/EXAMPLE_DPG.preamplifier_base.yaml"}}
comments: ["This is a channel-level comment"]
source_id: "FDSN:XX_STA1_D_H_Z" # should this be "generate_source_id" boolean?
start_date: "2022-02-01T02:00:00" # Set a channel start_date that is different from the station start_date
end_date: "2022-05-01T00:00:00" # Set a channel end_date that is different from the station end_date
# END OPTIONAL channel_modifications elements
notes:
- "This is a note. It doesn't get written to the StationXML file"
serial_number: "A14" # shortcut for modifications: {equipment: {serial_number: "A14"}}
datalogger_configuration: '500sps' # shortcut for channel_modifications: {"*": {datalogger: {configuration: }}}
datalogger_serial_number: '11' # shortcut for channel_modifications: {"*": {datalogger: {equipment: {serial_number: }}}}
seismic_sensor_serial_number: 'T1341' # shortcut for channel_modifications: {"SEISMIC": {sensor: {equipment: {serial_number: }}}}
pressure_sensor_serial_number: 'SIO0056' # shortcut for channel_modifications: {"PRESSURE": {sensor: {equipment: {serial_number: }}}}
seismic_sensor_configuration: 'Sphere02' # shortcut for channel_modifications: {"SEISMIC": {sensor: {configuration: }}}
pressure_sensor_configuration: '5018' # shortcut for channel_modifications: {"PRESSURE": {sensor: {configuration: }}}
# END OPTIONAL instrumentation elements
# BEGIN OPTIONAL station elements
site: "West volcano flank" # Something specific about this station's position
location_code: "00" # Only needed if there is more than one location
operators: # if not specified, will copy from subnetwork operators
- {$ref: "operators/EXAMPLE.operator.yaml"}
processing:
- clock_correction:
drift:
base: {$ref: "timing_bases/EXAMPLE.timing_base.yaml"} # timing_base element
type: "piecewise_linear" # or "cubic_spline", or "polynomial {a0} {a1} {a2}..."
syncs_instrument_reference: # Specify datetimes as yyyy-mm-22Thh:mm:ss.mmmmZ
- ['2022-01-01T00:00:00Z', '2022-01-01T00:00:00Z']
- ['2022-07-01T03:00:00Z', '2022-07-01T03:00:00.345Z']
# BEGIN OPTIONAL clock_correction element
leapsecond_applied_corrections:
# BEGIN OPTIONAL leapsecond_applied_corrections elements
not_clock_corrected_miniseed: True # does not-clock-corrected miniseed have leapsecond corrected? (False)
syncs_instrument: True # Are the instrument syncs corrected for the leapsecond(s)?
# END OPTIONAL leapsecond_applied_corrections elements
# END OPTIONAL clock_correction element
comments:
- "This is a station-level comment"
extras: {whatever: "anything"} # Free-form entry, saved in a station-level Comment
notes: ["This is a note. It doesn't get written to the StationXML file"]
source_id: "FDSN:XX_STA1" # should this be "generate_source_id" boolean? (or have run-time option?)
# external_references: # Commented out because obspy does not implement (as of 1.4.0)
# - uri: "http://usgs.gov"
# description: "USGS website"
identifiers:
- "DOI:10.7915/SN/XX"
description: "Station description"
restricted_status: "open" # "open", "closed" or "partial"
# END OPTIONAL station elements
# BEGIN OPTIONAL subnetwork elements
leapseconds: # Leapseconds occuring during the data collection campaign
list_file_entries:
- line_text: "3692217600 37 # 1 Jan 2017"
leap_type: '+'
default_applied_corrections:
not_clock_corrected_miniseed: False # does not-clock-corrected miniseed have leapsecond corrected? (False)
syncs_instrument: True # Are the instrument syncs corrected for the leapsecond(s)?
comments:
- "This is a simple network-level comment"
- value: "This is a full network-level comment"
# OPTIONAL full comment elements
begin_effective_time: "2022-01-02T00:00:00"
end_effective_time: "2022-01-03T00:00:00"
id: 4000 # integer
subject: "comment subject"
authors: [{$ref: "persons/EXAMPLE.person.yaml"}]
# END OPTIONAL full comment elements
extras: {example: "an example", example_list: [1,2,3,4,5]} # Saved to a network-level Comment
# END OPTIONAL subnetwork elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
location_base
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
location_base:
depth.m: 0 # Installation depth beneath the seafloor, for channel but not station
uncertainties.m: {lon: 200, lat: 200, elev: 20} # uncertainties in meters
# BEGIN OPTIONAL location_base elements
vault: "seafloor" # Type of vault
geology: "unknown" # Type of rock and/or geologic formation at the station
measurement_method: "Sea surface release point" # description of measurement method
water_level.m: 0 # Elevation of the water surface (0 for oceans)
notes: [""]
configuration_default: "SEA_SURFACE"
configurations:
"SEA_SURFACE":
configuration_description: "Standard sea-surface deployment"
"ACOUSTIC_SURVEY":
uncertainties.m: {lon: 5, lat: 5, elev: 10}
measurement_method: "Acoustic survey"
# END OPTIONAL location_base elements
# BEGIN OPTIONAL top-level elements
notes: [""]
# END OPTIONAL top-level elements
network
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"}
date: "2024-09-30" # yyyy-mm-dd
network:
code: "XX"
description: "EXAMPLE NETWORK"
start_date: "2011-01-01"
end_date: "2016-12-31"
# BEGIN OPTIONAL network elements
comments:
- "Simple comment"
- value: "A full channel-level comment"
# BEGIN OPTIONAL full comment elements
begin_effective_time: "2020-01-01T00:00:00Z"
end_effective_time: "2024-09-30T00:00:00Z"
id: 1 # integer >= 0
subject: "My subject" # Attribute
authors:
- {$ref: "persons/EXAMPLE.person.yaml"}
# END OPTIONAL full comment elements
operators: # Network-level operators
- {$ref: "operators/EXAMPLE.operator.yaml"}
restricted_status: "open" # "open", "closed" or "partial"
source_id: "FDSN:XX" # FDSN:<network>
identifiers: ["DOI:10.7915/SN/XX"] # List of identifiers
# END OPTIONAL network elements
# BEGIN OPTIONAL top-level elements
notes: ["The code XX is reserved for test or transient data"]
# END OPTIONAL top-level elements
operator
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
operator:
agency: "IPGP OBS Park"
# BEGIN OPTIONAL operator elements
contacts:
- {$ref: "persons/EXAMPLE.person.yaml"}
website: "http://parc-obs.insu.cnrs.fr"
# END OPTIONAL operator elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
person
---
format_version: "1.0"
person:
names:
- 'Albert Einstein'
- 'Einsteinium'
# BEGIN OPTIONAL person elements
agencies:
- "Princeton Institute for Advanced Studies"
emails:
- "albert.einstein@advanced.princeton.edu"
phones:
- "+1 609-867-5309"
# END OPTIONAL person elements
# BEGIN OPTIONAL top-level elements
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
notes:
- ""
# END OPTIONAL top-level elements
timing_base
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to person file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
timing_base:
instrument: "MCXO"
reference: "GNSS"
# BEGIN OPTIONAL timing_base elements
instrument_nominal_drift_rate: 1.e-8
# END OPTIONAL timing_base elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
Instrumentation
instrumentation_base
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
instrumentation_base:
equipment:
model: "MY_OBS"
type: "My Ocean Bottom Seismometer"
description: "This is my OBS!"
manufacturer: "My OBS park"
# BEGIN OPTIONAL equipment elements
vendor: "various"
serial_number: "2014a2"
installation_date: "2024-09-30"
removal_date: "2025-08-31"
resource_id: "IPGP:2004iepw44" # Unique ID of the filter, typically
# "GENERATOR:Meaningful_ID"
calibration_dates:
- "2004-09-22T07:00:00"
- "2014-08-31T07:00:00"
# END OPTIONAL equipment elements
channels:
default:
datalogger:
base: {$ref: "datalogger_bases/EXAMPLE.datalogger_base.yaml"}
# BEGIN OPTIONAL datalogger elements
configuration: "100sps_LINEAR" # Must be a configuration defined in the datalogger_base
serial_number: "20"
notes: ["A note"]
equipment: # modify elements of the equipment defined in datalogger_base
model: "ADS1281"
manufacturer: "Texas Instruments"
description: "Single Chip High-Resolution Analog-to-Digital Converter"
# BEGIN OPTIONAL equipment elements.
type: "delta-sigma A/D converter + digital filter"
vendor: "various"
serial_number: "2014a2"
installation_date: "2024-09-30"
removal_date: "2025-08-31"
resource_id: "IPGP:2004iepw44"
calibration_dates:
- "2004-09-22T07:00:00"
# END OPTIONAL equipment elements.
stages: # replace all stages
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR1.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR3.stage_base.yaml"}}
stage_modifications: # Modify certain stages
"1": {gain: {value: 100}} # Modifies the "gain" subelement of stage 1
sample_rate: 125 # Only needed if you replace/modify stages
correction: 24 # Only needed if you replace/modify stages
# END OPTIONAL datalogger elements
sensor:
base: {$ref: "sensor_bases/EXAMPLE_BBSeismometer.sensor_base.yaml"}
# BEGIN OPTIONAL sensor elements
configuration: "something" # Must be a configuration defined in the sensor_base
serial_number: "A16"
notes: ["A note"]
equipment:
# All elements are optional, see datalogger:equipment above
model: "Example sensor"
stages:
- {base: {$ref: "sensor_bases/stage_bases/EXAMPLE_DPG.stage_base.yaml"}}
stage_modifications:
"1": {gain: {value: 100}} # Modifies the "gain" subelement of stage 1
seed_codes: # Modify values given in sensor_base
# BEGIN OPTIONAL seed_codes elements
band: "shortperiod" # "shortperiod" or "broadband" to
# automatically choose the appropriate
# band code for the sample rate, or
# one of the "non-band" band codes:
# ('A', 'I', 'O', 'L' or 'S')
instrument: "H" # Seed instrument code
# END OPTIONAL seed_codes elements
# END OPTIONAL sensor elements
# BEGIN OPTIONAL default elements
preamplifier:
base: {$ref: "preamplifier_bases/EXAMPLE_DPG.preamplifier_base.yaml"}
# BEGIN OPTIONAL preamplifier elements
configuration: "16x" # Must be a configuration defined in the preamplifier_base
serial_number: "2020_003"
notes: ["A note"]
equipment:
# All elements are optional, see datalogger:equipment above
model: "Example sensor"
stages:
- {base: {$ref: "preamplifier_bases/stage_bases/EXAMPLE_DPG-Card.stage_base.yaml"}}
stage_modifications:
"1": {gain: {value: 100}} # Modifies the "gain" subelement of stage 1
# END OPTIONAL preamplifier elements
location_code: "01" # If not specified, use station's location code
restricted_status: "open" # "open", "closed", or "partial"
source_id: "FDSN:XX_SS_00_H_H_Z" # StationXML sourceID: FDSN:<network>_<station>_<location>_<band>_<source>_<subsource>
identifiers: ["DOI:10.7915/SN/XX"] # List of identifiers
external_references: # List of external references
- uri: "http://usgs.gov"
description: "USGS website"
comments: # List of comments
- "A simple channel-level comment"
- value: "A full channel-level comment"
# OPTIONAL full comment elements
begin_effective_time: "2020-01-01T00:00:00Z"
end_effective_time: "2024-09-30T00:00:00Z"
id: 1 # integer id
subject: "My subject" # An attribute
authors:
- {$ref: "persons/EXAMPLE.person.yaml"}
# END OPTIONAL full comment elements
extras: {} # anything you want, written as an object (put into comments)
# END OPTIONAL default elements
"1": # One element per instrument channel, name is generally the
# datalogger's channel #
orientation:
code: "Z" # The SEED orientation (or sub-source) code for this channel
azimuth.deg:
value: 0
# BEGIN OPTIONAL azimuth.deg elements
uncertainty: 180
# END OPTIONAL azimuth.deg elements
dip.deg:
value: -90
# BEGIN OPTIONAL dip.deg elements
uncertainty: 5
# END OPTIONAL dip.deg elements
# BEGIN OPTIONAL channel elements that MODIFY the specified elements
sensor: {configuration: "blah"} # UPDATE default sensor's fields
datalogger: {configuration: "bleh"} # UPDATE default datalogger's fields
preamplifier: {configuration: "bluh"} # UPDATE default preamplifier's fields
identifiers: ["DOI:10.7915/SN/YY"]
external_references:
- uri: "http://ipgp.fr"
description: "IPGP website"
comments :
- "A simple channel-level comment"
extras: {}
# END OPTIONAL channel elements that MODIFY the specified elements
# BEGIN OPTIONAL channel elements that REPLACE default elements
location_code: '03'
restricted_status: "closed"
source_id: "FDSN:XX_SS_00_H_H_H"
replace_sensor:
base: {$ref: "sensor_bases/EXAMPLE_DPG.sensor_base.yaml"}
replace_datalogger:
base: {$ref: "datalogger_bases/EXAMPLE.datalogger_base.yaml"}
# BEGIN OPTIONAL replace_datalogger elements
configuration: "250sps"
# END OPTIONAL replace_datalogger elements
replace_preamplifier:
base: {$ref: "preamplifier_bases/EXAMPLE_DPG.preamplifier_base.yaml"}
replace_identifiers: ["DOI:10.7915/SN/YY"]
replace_external_references:
- uri: "http://ipgp.fr"
description: "IPGP website"
replace_comments:
- "A replacement channel-level comment"
replace_extras: {}
# END OPTIONAL channel elements that REPLACE default elements
# BEGIN OPTIONAL instrumentation_base elements
configuration_default: "CONFIG1"
configurations:
"CONFIG1": # Modifications to the base instrumentation
channels:
"default": {replace_datalogger: {base: {$ref: "datalogger_bases/EXAMPLE.datalogger_base.yaml"}}}
"CONFIG2": # Modifications to the base instrumentation
channels:
"default":
replace_datalogger: {base: {$ref: "datalogger_bases/EXAMPLE.datalogger_base.yaml"}}
replace_preamplifier:
base: {$ref: "preamplifier_bases/EXAMPLE_DPG.preamplifier_base.yaml"}
configuration: "16x gain"
"SN01":
equipment: {serial_number: '01'}
channels:
default: {sensor: {configuration: "Sphere01"}}
"4": {sensor: {configuration: "generic"}}
# END OPTIONAL instrumentation_base elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
Instrument_components and stages
datalogger_base
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
datalogger_base:
equipment:
model: "ADS1281"
type: "delta-sigma A/D converter + digital filter"
description: "Single Chip High-Resolution Analog-to-Digital Converter"
manufacturer: "Texas Instruments"
# BEGIN OPTIONAL equipment elements
vendor: "various"
serial_number: "2014a2"
installation_date: "2024-09-30"
removal_date: "2025-08-31"
resource_id: "IPGP:2004iepw44" # Unique ID of the filter, typically
# "GENERATOR:Meaningful_ID"
calibration_dates:
- "2004-09-22T07:00:00"
- "2014-08-31T07:00:00"
# END OPTIONAL equipment elements
sample_rate: 250 # Data sampling rate
stages: # A list of stages (base + possible modifications)
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR1.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR3.stage_base.yaml"}}
# BEGIN OPTIONAL datalogger_base elements
stage_modifications:
"1": {gain: {value: 200}} # Modifications to a stage or stages, with
# stage number(s) as key (1 = first stage)
notes:
- "First note"
- "Second note"
correction: 27.5 # Time that the datalogger subtracted
# (this value/sample_rate) from the data to compensate
# for digitization delays.
# If 0, the datalogger did not correct the times.
# If None, correction will be set equal to delay in all
# stages (perfect datalogger correction).
configuration_default: "250sps" # The default configuration (must be
# one of the specified configurations)
configurations: # Each configuration can use the same elements as in
# datalogger_base, which are then updated. An additional
# element is configuration_description
"250sps" : # any provided elements update base values
configuration_description: "250 sps"
"500sps" : # any provided elements update base values
configuration_description: "500 sps"
sample_rate: 500
stages:
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR1.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR2.stage_base.yaml"}}
- {base: {$ref: "datalogger_bases/stage_bases/EXAMPLE_FIR3.stage_base.yaml"}}
# END OPTIONAL datalogger_base elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
preamplifier_base
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
preamplifier_base:
equipment:
model: "CUBI-RC-RC"
type: "Analog gain/filter card"
description: "CUBI gain/filter card, LP at ~100 MHz"
manufacturer: "IPGP"
# OPTIONAL elements
vendor: "None"
serial_number: "2014a2"
installation_date: "2024-09-30"
removal_date: "2025-08-31"
resource_id: "IPGP:2004iepw44" # Unique ID of the filter, typically
# "GENERATOR:Meaningful_ID"
calibration_dates:
- "2004-09-22T07:00:00"
stages:
- base: {$ref: "preamplifier_bases/stage_bases/EXAMPLE_BBOBS.stage_base.yaml"}
# BEGIN OPTIONAL preamplifier_base elements
stage_modifications:
"1": {gain: {value: 200}} # Modifications to a stage or stages, with
# stage number(s) as key (1 = first stage)
notes:
- "A note"
configuration_default: "128x gain"
configurations:
"16x gain":
stage_modifications:
'2': {gain: {value: 16}}
"32x gain":
stage_modifications:
'2': {gain: {value: 32}}
"64x gain":
stage_modifications:
'2': {gain: {value: 64}}
"128x gain":
stage_modifications:
'2': {gain: {value: 128}}
# END OPTIONAL preamplifier_base elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
sensor_base
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
sensor_base:
seed_codes:
band: "broadband" # 'broadband', 'shortperiod', "A", "I", "O", "L", or "S"
# If "broadband" or "shortperiod", will chose the appropriate
# code according to the sampling rate
instrument: "H" # Seed "instrument" (or "source") code
equipment:
model: "CMG-3T"
type: "Broadband seismometer"
description: "Triaxial force-feedback seismometer"
manufacturer: "Guralp, Ltd"
# BEGIN OPTIONAL equipment elements
vendor: "various"
serial_number: "2014a2"
installation_date: "2024-09-30"
removal_date: "2025-08-31"
resource_id: "IPGP:2004iepw44" # Unique ID of the filter, typically
# "GENERATOR:Meaningful_ID"
calibration_dates:
- "2004-09-22T07:00:00"
- "2014-08-31T07:00:00"
# END OPTIONAL equipment elements
stages:
- base: {$ref: "sensor_bases/stage_bases/EXAMPLE_BBSeismometer.stage_base.yaml"}
# BEGIN OPTIONAL stage elements
configuration: "SN1-399, differential"
# END OPTIONAL stage elements
# BEGIN OPTIONAL sensor_base elements
stage_modifications: {}
notes: [""]
configuration_default: "DEFAULT"
configurations:
"DEFAULT":
configuration_description: "Default configuration"
"High Gain":
configuration description: "High gain configuration"
stage_modifications:
"1": {gain: {value: 100}}
"Low Gain":
configuration description: "Low gain configuration"
stage_modifications:
"1": {gain: {value: 1}}
# END OPTIONAL sensor_base elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
stage_base
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to person file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
stage_base:
input_units:
name: "V"
# BEGIN OPTIONAL units elements
description: "Volts"
# END OPTIONAL units elements
output_units:
name: "V"
# BEGIN OPTIONAL units elements
description: "Volts"
# END OPTIONAL units elements
gain :
value: 10 # Gain (output_units/input_units)
frequency: 10 # Frequency at which gain is given
filter: {$ref: 'sensor_bases/stage_bases/filters/EXAMPLE_BBSeismometer_SN1-399.filter.yaml'}
# BEGIN OPTIONAL stage_base elements
name: "Funky filter" # Stage/Filter name
description: "Oddball offbeat filter" # Stage/Filter description
delay: 0 # Value to put in StationXML stage w/o modification.
# if not specified and this is a digital stage, calculate
# as filter offset / input_sample_rate
polarity: "+" # "+" if the stage does not invert sign from input to output
# "-" if it does invert sign
# ("+")
input_sample_rate: 100 # Only use if fixed input_sample rate
decimation_factor: 2 # Factor by which this stage decimates data
calibration_dates:
- "2004-12-31T00:00:00"
- "2024-12-31T00:00:00"
resource_id: "IPGP:2004iepw44" # Unique ID of the filter, typically
# "GENERATOR:Meaningful_ID"
configuration_default: "10x"
configurations:
"1x": {gain: {value : 1, frequency : 10.}}
"5x": {gain: {value : 5, frequency : 10.}}
"10x": {gain: {value : 10, frequency : 10.}}
"20x": {gain: {value : 20, frequency : 10.}}
# END OPTIONAL stage_base elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
Filters
ADCONVERSION
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to person file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
filter:
type : "ADCONVERSION"
v_minus: -4.5 # minimum data input voltage
v_plus: 4.5 # maximum data input voltage
counts_minus: '0xB00000' # counts corresponding to v_minus. If string,
# should start with '0x', followed by n_bits/4
# hexadecimal characters, where n_bits is the
# numeric part of counts_dtype.
# If counts_type starts with 'uint', this value is
# interpreted as the two's complement
counts_plus: '0x4FFFFF' # counts corresponding to v_plus. If string, see above.
counts_dtype: 'int24' # choices: "int16", "int24", "int32", "int64",
# "uint16", "uint24", "uint32", "uint64"
# Not required if counts_minus and counts_plus
# are decimal numbers
# BEGIN OPTIONAL filter elements
delay.samples: 0 # Samples that the conversion delays the data (0)
# the following elements are used to calculate the stage gain.
# if it is not the same as the stage:gain, obsinfo will tell you what
# both values are
counts_dtype: 'int24' # choices: "int16", "int24", "int32", "int64",
# "uint16", "uint24", "uint32", "uint64"
# END OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
ANALOG
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
filter:
type : "ANALOG"
# BEGIN OPTIONAL filter elements
delay.seconds: 0 # Seconds that the conversion delays the data (default = 0)
# END OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
Coefficients
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
filter:
type: "Coefficients"
numerator_coefficients:
- 1
- 0
denominator_coefficients:
- 0.5
- 0.5
# BEGIN OPTIONAL filter elements
delay.samples: 0 # Samples that the conversion delays the data (default=0)
transfer_function_type: "DIGITAL" # choices: "ANALOG (RADIANS/SECOND)",
# "ANALOG (HERTZ)",
# "DIGITAL"
# (default = "DIGITAL")
# BEGIN OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
DIGITAL
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to person file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
filter:
type : "DIGITAL"
# BEGIN OPTIONAL filter elements
delay.samples: 0 # Samples by which the conversion delays
# the data (0)
# END OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
FIR
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to person file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
filter:
type: "FIR"
symmetry: "NONE" # "EVEN", "ODD" or "NONE"
coefficients:
- 1
- 10
- -20
- 30
- -20
- 10
- 1
delay.samples: 3 # used to calculate stage-level delay, should be at/before max peak
# BEGIN OPTIONAL filter elements
coefficient_divisor: 12 # number to divide all coefficients by for unity gain (1)
# END OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
PolesZeros
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
filter:
type: "PolesZeros"
zeros :
- "0 + 0j"
- "0 _ 0j"
poles :
- "1 + 1j"
- "1 - 1j"
- "4000 + 0j"
# BEGIN OPTIONAL filter elements (default in parentheses)
delay.seconds: 0 # used to calculate stage-level delay
transfer_function_type: "LAPLACE (HERTZ)" # "LAPLACE (RADIANS/SECOND)"
# or "LAPLACE (HERTZ)"
# or "DIGITAL (Z-TRANSFORM)"
# ("LAPLACE (RADIANS/SECOND)")
normalization_frequency: 10 # (gain:frequency)
normalization_factor: 1.33 # (calculated from normalization frequency
# and poles and zeros)
# END OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
Polynomial
Note: Polynomial filters don’t work yet in obsinfo, because they don’t exist in obspy!
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
# WARNING! OBSPY 1.4.0 does not handle Polynomial filters
filter:
type: "Polynomial"
coefficients :
- value: 10 # Simple expression
- # Full expression
value: 20
# BEGIN OPTIONAL coefficient elements
plus_error: 1.
minus_error: 1.
measurement_method: "johnson a2 microcalipers"
number: 2 # 0 or positive integer
# END OPTIONAL coefficient elements
frequency_lower_bound:
value: 0.001
# BEGIN OPTIONAL frequency_bound elements
unit: "HERTZ" # ("HERTZ"), no other value is allowed!
plus_error: 0.001
minus_error: 0.001
measurement_method: "oscilloscope"
# END OPTIONAL frequency_bound elements
frequency_upper_bound:
value: 0.1
# BEGIN OPTIONAL frequency_bound elements
unit: "HERTZ" # ("HERTZ"), no other value is allowed!
plus_error: 0.1
minus_error: 0.1
measurement_method: "oscilloscope"
# END OPTIONAL frequency_bound elements
approximation_lower_bound: 3. # Lower bound of the approximation range
approximation_upper_bound: 5. # Upper bound of the approximation range
maximum_error: 0.2 # Maximum error of the approximatiion
# BEGIN OPTIONAL filter elements
approximation_type: "MACLAURIN" # ("MACLAURIN"), no other value allowed!
# END OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements
ResponseList
---
format_version: "1.0"
revision:
authors:
- {$ref: "persons/EXAMPLE.person.yaml"} # Reference to a file,
# or fields of a person element
date: "2024-09-30" # yyyy-mm-dd
filter:
type : "ResponseList"
elements : # Frequency (Hz), amplitude, phase (deg)
- [0.001, 0.01, -90]
- [ 0.1, 0.1, -45]
- [ 10, 0.9, -5]
- [ 1000, 1.0, 0]
# BEGIN OPTIONAL filter elements
delay.seconds: 0 # Seconds that the filter delays the data (0)
# BEGIN OPTIONAL filter elements
# BEGIN OPTIONAL top-level elements
notes:
- ""
# END OPTIONAL top-level elements