Welcome to the StationXML documentation!
Version: 1.2 (2022-02-25)
Overview
Introducing StationXML
StationXML is an XML representation of metadata that describes the data collected by geophysical instrumentation.
StationXML is defined by a schema that specifies the allowable format of StationXML documents.
StationXML Example
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?>
<FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd"
schemaVersion="1.2">
<Source></Source>
<Sender>FAKE-DC</Sender>
<Module>Some WEB SERVICE</Module>
<Created>2022-02-21T20:27:54.6270Z</Created>
<Network code="IU" startDate="1988-01-01T00:00:00Z">
<Description>Global Seismograph Network - IRIS/USGS (GSN)</Description>
<Identifier type="DOI">10.7914/SN/IU
</Identifier>
<Station code="ANMO" startDate="2002-11-19T21:07:00Z">
<Description>(GSN) IRIS/USGS (IU) and ANSS</Description>
<Latitude>34.94591</Latitude>
<Longitude>-106.4572</Longitude>
<Elevation>1820.0</Elevation>
<Site>
<Name>Albuquerque, New Mexico, USA</Name>
</Site>
<Channel code="BHZ" locationCode="00" startDate="2018-07-09T20:45:00Z" >
<Latitude>34.94591</Latitude>
<Longitude>-106.4572</Longitude>
<Elevation>1632.7</Elevation>
<Depth>188</Depth>
<Azimuth>0</Azimuth>
<Dip>-90</Dip>
<SampleRate>40</SampleRate>
<Sensor>
<Description>Streckeisen STS-6A VBB Seismometer</Description>
</Sensor>
<Response>
<InstrumentSensitivity>
<Value>1.98475E9</Value>
<Frequency>0.02</Frequency>
<InputUnits>
<Name>m/s</Name>
</InputUnits>
<OutputUnits>
<Name>count</Name>
</OutputUnits>
</InstrumentSensitivity>
</Response>
</Channel>
</Station>
</Network>
</FDSNStationXML>
Note that each XML element must have a start tag (e.g., <Station>) and an end tag (</Station>) and the element hierarchy must be maintained (e.g., a <Channel> may not exist outside of a <Station> and a <Station> may not exist outside of a <Network>, etc.).
The FDSN and StationXML schema
StationXML was developed through the International Federation of Digital Seismograph Networks (FDSN) to provide a standardized format for geophysical metadata.
Notice that the example StationXML excerpt above contains the following lines
<?xml version="1.0" encoding="UTF-8"?>
<FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd"
schemaVersion="1.2">
The first line, the xml prologue, specifies the xml version and the character encoding.
The second line begins the StationXML document and specifies the location and version of the schema to which the StationXML example must conform.
The FDSN maintains all versions of the StationXML schema at:
For instance, at the time of this writing, the latest schema version is v1.2 and is located at:
Character Encoding
UTF-8 is the default encoding for XML, specified in the prologue, allowing non-ascii characters to be used within StationXML. This is common within names of people and places and in comments and descriptions. However, authors should use ASCII when possible for maximum portability.
In particular, text that will likely be used by software, as opposed to simply displayed, such as ids and units, should only use ASCII.
Documentation Organization
This documentation has 5 parts:
This introduction
StationXML Reference - Over time, once users have absorbed the other parts of the documentation, it is expected that this reference section will be the most frequently used. The reference section is auto-generated directly from the FDSN schema so that it should always be in sync with the schema. The reference itself is broken out by the 5 levels of response detail:
FDSNStationXML
Network
Station
Channel
Response
Specifying and using response information - In this section you will find theory and examples to help you create instrument responses for your own stations.
StationXML tools - contains examples of 3rd party tools available to help users create and edit StationXML files. This is expected to be a fluid page that changes as new tools become available and older tools are deprecated.
Appendices - In here you will find more technical details on specific parts of StationXML and metadata. For instance, the first section, Mapping SEED to StationXML, is meant to be used as a reference to help users migrate their SEED format metadata to StationXML
Some History - SEED
For three decades, the Standard for the Exchange of Earthquake Data (SEED) was the standard format for archiving and distributing metadata within the seismological community. Once representing file volumes binding metadata to data, a provision was later developed that allowed SEED metadata to stand on its own and was given the designation ‘dataless SEED’.
StationXML was developed through the FDSN (International Federation of Digital Seismograph Networks) as a replacement and extension of the SEED standard.
The purpose of the FDSN StationXML schema (fdsn-station.xsd) is to define an XML representation of the most important and commonly used structures of SEED 2.4 metadata with enhancements.
The goal of this document is to allow mapping between SEED 2.4 dataless SEED volumes and the StationXML schema with as little transformation or loss of information as possible, while at the same time simplifying station metadata representation when possible. Also, content and clarification has been added where lacking in the SEED standard.
StationXML Schema Changes
Changes from version 1.1 to 1.2 (2022-2-25)
The 1.2 revision of StationXML makes no changes to the schema proper, only changing the schema version and adding documentation via <xs:annotation> and <xs:documentation> elements, as well as external files. Any existing code that works with 1.1 should work with 1.2 without modification. We recommend that services generating StationXML or distributing it, such as FDSNWS Station web services, update the schemaVersion attribute to ‘1.2’ at the next convenient opportunity.
Note that the documentation makes recommendations in many cases and services that generate 1.2 StationXML should attempt to follow these recommendations where possible. These recommendations include:
Dates and times should be W3C/ISO 8601 and should always include a timezone of ‘Z’ to indicate UTC
Do not use endDate in the future, it should not be present when currently active
Originators of StationXML use <Source> and distributors use <Sender>
Network, Station and Channel sourceId should use the FDSN Source Identifiers specification, http://docs.fdsn.org/projects/source-identifiers
Use SI symbols for unit name, like m/s, along with singular lowercase “count” for digital counts.
Avoid SEED-style uppercase unit symbols
Omit Description for common units like m/s, m/s**2, count, etc.
Use empty Response element when response is unknown or not applicable.
For low pass FIR filters, use gain at zero frequency (sum of coefficients)
Gain-only analog Stages should use PolesZeros with no poles or zeros
Gain-only digital Stages should use FIR with a single numerator of value 1
Changes from version 1.0 to 1.1 (2019-5-3)
(Edited 2019-12-18 for small clarifications)
Add (persistent) <Identifier> element to all base nodes (Network, Station, Channel)
Unify response elements, allow “number” and disallow “unit” attribute to <Numerator> and <Denominator>
Allow <CreationDate> to be optional
Use xs:double for <ApproximationLowerBound>, <ApproximationUpperBound> and <MaximumError>
Include data availability elements described in the fdsn-station+availability-1.0.xsd extension schema as optional elements of the main schema
Remove <StorageFormat> from <Channel>
Limit each <Operator> to a single <Agency>
Allow more than a single <Equipment> occurrence in <Channel>, same as in <Station>
Allow <Operator> at the <Network> level, same as in <Station>
Add “sourceID” attribute, with URI value, to the base node type for <Network>,<Station>,<Channel>
Do not require and disallow <StageGain> and <Decimation> for <Polynomial> response stages
Add “measurementMethod” attribute to “uncertaintyDouble” attribute group used by azimuth, dip, distance, latitude, longitude, elevation, etc. types
Add <WaterLevel> within <Station> and <Channel>
Add “subject” attribute to <Comment> to allow relating comments, make “id” attribute optional.
The vast majority of the StationXML 1.0 schema exists in the 1.1 schema, making most 1.0 documents compatible with the 1.1 schema. There are a few small exceptions where 1.0 elements were removed from 1.1, in one important case to avoid the specification of incorrect metadata.
An XSLT definition for StationXML 1.0 to 1.1 conversion exists to assist with the systematic conversion of version 1.0 documents to the version 1.1 schema. This is done by removing the elements no longer allowed in 1.1.
Potential Future Changes
The following are potential future changes, as tagged in the schema with <warning> elements in the documentation. They may result in modifications or deletions in future versions of StationXML.
<FDSNStationXML> schemaVersion :
Warning, Future Change
schemaVersion: This attribute may change to be a string to allow micro versions, and potential dash, ‘-’, separators starting in version 2. Users should not assume ‘xs:decimal’.
<FDSNStationXML> <Source> :
Warning, Future Change
<Source>: This element is likely to be a choice with Sender.
<FDSNStationXML> <Sender> :
Warning, Future Change
<Sender>: This element is likely to be a choice with Source.
<Network> endDate :
Warning, Future Change
endDate: This attribute should not be used if it is in the future.
<Network> endDate :
Warning, Future Change
endDate: This attribute is likely to require timezone of Z.
<Network> startDate :
Warning, Future Change
startDate: This attribute is likely to require timezone of Z.
<Network> <TotalNumberStations> :
Warning, Future Change
<TotalNumberStations>: This element is likely to be removed.
<Network> <SelectedNumberStations> :
Warning, Future Change
<SelectedNumberStations>: This element is likely to be removed.
<Station> endDate :
Warning, Future Change
endDate: This attribute should not be used if it is in the future.
<Station> endDate :
Warning, Future Change
endDate: This attribute is likely to require timezone of Z.
<Station> startDate :
Warning, Future Change
startDate: This attribute is likely to require timezone of Z.
<Station> <CreationDate> :
Warning, Future Change
<CreationDate>: This element is likely to be removed.
<Station> <TerminationDate> :
Warning, Future Change
<TerminationDate>: This element is likely to be removed.
<Station> <TotalNumberChannels> :
Warning, Future Change
<TotalNumberChannels>: This element is likely to be removed.
<Station> <SelectedNumberChannels> :
Warning, Future Change
<SelectedNumberChannels>: This element is likely to be removed.
<Channel> endDate :
Warning, Future Change
endDate: This attribute should not be used if it is in the future.
<Channel> endDate :
Warning, Future Change
endDate: This attribute is likely to require timezone of Z.
<Channel> startDate :
Warning, Future Change
startDate: This attribute is likely to require timezone of Z.
<Channel> <Type> :
Warning, Future Change
<Type>: This element is likely to be removed.
<Response> <Stage> :
Warning, Future Change
<Stage>: A filter, (PolesZeros, Coefficients, FIR, etc) may be required.
<Response> <Stage> <Coefficients> :
Warning, Future Change
<Coefficients>: The Numerator element is likely to be changed to require at least one numerator.
<Response> <Stage> <Coefficients> <Numerator> :
Warning, Future Change
<Numerator>: At least one Numerator may be required.
<Response> <Stage> <FIR> :
Warning, Future Change
<FIR>: The NumeratorCoefficient field is likely to be changed to require at least one numerator in future versions of StationXML.
<Response> <Stage> <FIR> :
Warning, Future Change
<FIR>: The NumeratorCoefficient field is likely to be renamed to Numerator in future versions of StationXML.
<Response> <Stage> <FIR> <NumeratorCoefficient> :
Warning, Future Change
<NumeratorCoefficient>: At least one Numerator may be required.
<Response> <Stage> <FIR> <NumeratorCoefficient> :
Warning, Future Change
<NumeratorCoefficient>: May be renamed to Numerator.
Documentation Changes
Changes to this documentation.
Version 2022-02-25:
Resolved issues with documentation by FDSN WG evaluation team.
Version 2020-09-02:
Initial StationXML documentation.
The initial version of StationXML documentation was prepared by ISTI and sponsored by IRIS Data Services and ORFEUS.
StationXML Reference
<FDSNStationXML> required
Warning, Future Change
schemaVersion: This attribute may change to be a string to allow micro versions, and potential dash, ‘-’, separators starting in version 2. Users should not assume ‘xs:decimal’.
Root-level for StationXML documents.
Attributes of <FDSNStationXML>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
schemaVersion |
yes |
The StationXML schema version of this document. |
schemaVersion=”1.2” |
Sub Elements of <FDSNStationXML>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
|
string |
optional |
|
anyURI |
optional |
|
dateTime |
required |
|
required, many |
<Source> required
FDSNStationXML → Source
Warning, Future Change
<Source>: This element is likely to be a choice with Sender.
content type: string
Originator of the information contained in the document. It is recommended that archives or services providing StationXML that are not the original creator of the metadata set this to be the empty element, especially because a StationXML document may contain information from many unrelated networks.
<Sender>
FDSNStationXML → Sender
Warning, Future Change
<Sender>: This element is likely to be a choice with Source.
content type: string
Name of the institution sending this document, for example the institution hosting an FDSN Station web service. It is recommended that authoritative StationXML created by the originator of the metadata not use Sender and use Source instead. For example metadata created by a network operator for submission to other data archives would only use Source, The data archive in response to a request would use Sender.
<Module>
FDSNStationXML → Module
content type: string
Name of the software module that generated this document.
Example: <Module>SeisComp3</Module>
<ModuleURI>
FDSNStationXML → ModuleURI
content type: anyURI
Resource identifier of the query that generated the document, or, if applicable, the resource identifier of the software that generated this document.
<Created> required
<Network> required
Warning, Future Change
endDate: This attribute should not be used if it is in the future.
Warning, Future Change
endDate: This attribute is likely to require timezone of Z.
Warning, Future Change
startDate: This attribute is likely to require timezone of Z.
The Network container. All station metadata for this network is contained within this element. A Description element may be included with the official network name and other descriptive information. An Identifier element may be included to designate a persistent identifier (e.g. DOI) to use for citation. A Comment element may be included for additional comments.
An active Network should not use the endDate attribute. Unlike SEED, do not use an endDate in the distant future to mean active.
Example: <Network code=”XX” startDate=”2016-01-27T13:00:00Z” />
Attributes of <Network>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
alternateCode |
no |
A code used for display or association |
alternateCode=”GSN” |
|
code |
yes |
Name of Network |
code=”XX” |
|
endDate |
no |
End date of network. Do not use if still active, endDate should not be in the future. |
endDate=”2018-01-27T00:00:00Z” |
|
historicalCode |
no |
A previously used code if different from the current code |
historicalCode=”XX” |
|
restrictedStatus |
no |
One of: “open”, “closed”, “partial” |
restrictedStatus=”open” |
|
sourceID |
no |
A data source identifier in URI form. It is recommended that this follow the FDSN Source Identifiers specification, http://docs.fdsn.org/projects/source-identifiers |
sourceID=”FDSN:XX” |
|
startDate |
no |
Start date of network |
startDate=”2016-07-01T00:00:00Z” |
Sub Elements of <Network>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional, many |
|
optional, many |
||
optional |
||
optional, many |
||
decimal |
optional |
|
decimal |
optional |
|
optional, many |
<Description>
Network → Description
content type: string
Description of the Network
Example: <Description>This is a description</Description>
<Identifier>
Network → Identifier
content type: string
A type to document persistent identifiers. Identifier values should be specified without a URI scheme (prefix), instead the identifier type is documented as an attribute.
Example: <identifier type=”DOI”>10.1000/140</identifier>
Example: <identifier type=”DOI”>10.7914/SN/XX</identifier>
Attributes of <Identifier>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
type |
no |
Identifier type |
type=”DOI” |
<Comment>
Network → Comment
Container for a comment or log entry.
Attributes of <Comment>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
id |
no |
An ID for this comment |
id=”12345” |
|
subject |
no |
A subject for this comment. Multiple comments with the same subject should be considered related. |
subject=”Scheduled maintenance” |
Sub Elements of <Comment>:
element |
type |
number |
---|---|---|
string |
required |
|
dateTime |
optional |
|
dateTime |
optional |
|
optional, many |
<Value> required
Network → Comment → Value
content type: string
Comment text.
Example: <Value>Temporary network deployment</Value>
<BeginEffectiveTime>
Network → Comment → BeginEffectiveTime
content type: dateTime
Start time for when comment applies.
Example: <BeginEffectiveTime>2008-09-15T00:00:00Z</BeginEffectiveTime>
<EndEffectiveTime>
Network → Comment → EndEffectiveTime
content type: dateTime
End time for when comment applies.
Example: <EndEffectiveTime>2008-09-16T12:00:00Z</EndEffectiveTime>
<DataAvailability>
Network → DataAvailability
A description of time series data availability. This information should be considered transient and is primarily useful as a guide for generating time series data requests. The information for a DataAvailability:Span may be specific to the time range used in a request that resulted in the document or limited to the availability of data within the request range. These details may or may not be retained when synchronizing metadata between data centers.
A type for describing data availability.
Sub Elements of <DataAvailability>:
element |
type |
number |
---|---|---|
optional |
||
optional, many |
<Extent>
Network → DataAvailability → Extent
Data availability extents, the earliest and latest data available. No information about the continuity of the data is included or implied.
Attributes of <Extent>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
end |
yes |
end date of extent |
end=”1988-12-31T00:00:00Z” |
|
start |
yes |
start date of extent |
start=”1988-01-01T00:00:00Z” |
<Span>
Network → DataAvailability → Span
A type for describing data availability spans, with variable continuity. The time range described may be based on the request parameters that generated the document and not necessarily relate to continuity outside of the range. It may also be a smaller time window than the request depending on the data characteristics.
Attributes of <Span>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
end |
yes |
end date of span |
end=”1988-12-31T00:00:00Z” |
|
maximumTimeTear |
no |
The maximum time tear (gap or overlap) in seconds between time series segments in the specified range. |
maximumTimeTear=”0.01” |
|
numberSegments |
yes |
The number of continuous time series segments contained in the specified time range. A value of 1 indicates that the time series is continuous from start to end. |
numberSegments=”2” |
|
start |
yes |
start date of span |
start=”1988-01-01T00:00:00Z” |
<Operator>
Network → Operator
Agency and contact persons who manage this network.
Since the Contact element is a generic type that represents any contact person, it also has its own optional Agency element. It is expected that typically the contact’s optional Agency tag will match the Operator Agency. Only contacts appropriate for the enclosing element should be included in the Operator tag.
Sub Elements of <Operator>:
element |
type |
number |
---|---|---|
string |
required |
|
optional, many |
||
anyURI |
optional |
<Agency> required
Network → Operator → Agency
content type: string
The operating agency.
Example: <Agency>USGS</Agency>
<Contact>
Network → Operator → Contact
Person’s contact information. A person can belong to multiple agencies and have multiple email addresses and phone numbers.
Sub Elements of <Contact>:
element |
type |
number |
---|---|---|
string |
optional, many |
|
string |
optional, many |
|
string |
optional, many |
|
optional, many |
<Name>
Network → Operator → Contact → Name
content type: string
Name of contact or author
Example: <Name>Dr. Jane Doe</Name>
<Agency>
Network → Operator → Contact → Agency
content type: string
Agency of contact or author
Example: <Agency>USGS</Agency>
<Email>
Network → Operator → Contact → Email
content type: string
Email of contact or author
Example: <Email>jane_doe@example.com</Email>
<Phone>
Network → Operator → Contact → Phone
Phone of contact or author
Attributes of <Phone>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
description |
no |
Sub Elements of <Phone>:
element |
type |
number |
---|---|---|
integer |
optional |
|
integer |
required |
|
string |
required |
Network → Operator → Contact → Phone → CountryCode
content type: integer
Telephone country code
Example: <CountryCode>64</CountryCode>
Network → Operator → Contact → Phone → AreaCode
content type: integer
Telephone area code
Example: <AreaCode>408</AreaCode>
Network → Operator → Contact → Phone → PhoneNumber
content type: string
Telephone number
Example: <PhoneNumber>5551212</PhoneNumber>
<WebSite>
Network → Operator → WebSite
content type: anyURI
Website of operating agency
Example: <WebSite>http://usgs.gov</WebSite>
<TotalNumberStations>
Network → TotalNumberStations
Warning, Future Change
<TotalNumberStations>: This element is likely to be removed.
content type: decimal
range: TotalNumberStations \(\ge\) 0
The total number of stations in this network, including inactive or terminated stations.
Example: <TotalNumberStations>24</TotalNumberStations>
<SelectedNumberStations>
Network → SelectedNumberStations
Warning, Future Change
<SelectedNumberStations>: This element is likely to be removed.
content type: decimal
range: SelectedNumberStations \(\ge\) 0
The number of stations selected in the request that resulted in this document.
Example: <SelectedNumberStations>12</SelectedNumberStations>
<Station>
Warning, Future Change
endDate: This attribute should not be used if it is in the future.
Warning, Future Change
endDate: This attribute is likely to require timezone of Z.
Warning, Future Change
startDate: This attribute is likely to require timezone of Z.
The Station container. All channel metadata for this station is contained within this element. A Description element may be included with the official station name and other descriptive information. An Identifier element may be included to designate a persistent identifier (e.g. DOI) to use for citation or reference. A Comment element may be included for additional comments.
An active Station should not use the endDate attribute. Unlike SEED, do not use an endDate in the distant future to mean active.
Attributes of <Station>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
alternateCode |
no |
A code used for display or association |
alternateCode=”ALQ” |
|
code |
yes |
Name of Station |
code=”ABCD” |
|
endDate |
no |
End date of station epoch. Do not use if still active, endDate should not be in the future. |
endDate=”2018-01-27T00:00:00Z” |
|
historicalCode |
no |
A previously used code if different from the current code |
historicalCode=”albq” |
|
restrictedStatus |
no |
One of: “open”, “closed”, “partial” |
restrictedStatus=”open” |
|
sourceID |
no |
A data source identifier in URI form. It is recommended that this follow the FDSN Source Identifiers specification, http://docs.fdsn.org/projects/source-identifiers |
sourceID=”FDSN:XX_ABCD” |
|
startDate |
no |
Start date of station epoch |
startDate=”2016-07-01T00:00:00Z” |
Sub Elements of <Station>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional, many |
|
optional, many |
||
optional |
||
double |
required |
|
double |
required |
|
double |
required |
|
required |
||
double |
optional |
|
string |
optional |
|
string |
optional |
|
optional, many |
||
optional, many |
||
dateTime |
optional |
|
dateTime |
optional |
|
decimal |
optional |
|
decimal |
optional |
|
optional, many |
||
optional, many |
<Description>
Station → Description
content type: string
Description of the Station
Example: <Description>This is a description</Description>
<Identifier>
Station → Identifier
content type: string
A type to document persistent identifiers. Identifier values should be specified without a URI scheme (prefix), instead the identifier type is documented as an attribute.
Example: <identifier type=”DOI”>10.1000/140</identifier>
Example: <identifier type=”DOI”>10.5555/12345678</identifier>ABCD.
Attributes of <Identifier>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
type |
no |
Identifier type |
type=”DOI” |
<Comment>
Station → Comment
Container for a comment or log entry.
Attributes of <Comment>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
id |
no |
An ID for this comment |
id=”12345” |
|
subject |
no |
A subject for this comment. Multiple comments with the same subject should be considered related. |
subject=”Scheduled maintenance” |
Sub Elements of <Comment>:
element |
type |
number |
---|---|---|
string |
required |
|
dateTime |
optional |
|
dateTime |
optional |
|
optional, many |
<Value> required
Station → Comment → Value
content type: string
Comment text.
Example: <Value>GPS Clock is unlocked</Value>
<BeginEffectiveTime>
Station → Comment → BeginEffectiveTime
content type: dateTime
Start time for when comment applies.
Example: <BeginEffectiveTime>2008-09-15T00:00:00Z</BeginEffectiveTime>
<EndEffectiveTime>
Station → Comment → EndEffectiveTime
content type: dateTime
End time for when comment applies.
Example: <EndEffectiveTime>2008-09-16T12:00:00Z</EndEffectiveTime>
<DataAvailability>
Station → DataAvailability
A description of time series data availability. This information should be considered transient and is primarily useful as a guide for generating time series data requests. The information for a DataAvailability:Span may be specific to the time range used in a request that resulted in the document or limited to the availability of data within the request range. These details may or may not be retained when synchronizing metadata between data centers.
A type for describing data availability.
Sub Elements of <DataAvailability>:
element |
type |
number |
---|---|---|
optional |
||
optional, many |
<Extent>
Station → DataAvailability → Extent
Data availability extents, the earliest and latest data available. No information about the continuity of the data is included or implied.
Attributes of <Extent>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
end |
yes |
end date of extent |
end=”1988-12-31T00:00:00Z” |
|
start |
yes |
start date of extent |
start=”1988-01-01T00:00:00Z” |
<Span>
Station → DataAvailability → Span
A type for describing data availability spans, with variable continuity. The time range described may be based on the request parameters that generated the document and not necessarily relate to continuity outside of the range. It may also be a smaller time window than the request depending on the data characteristics.
Attributes of <Span>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
end |
yes |
end date of span |
end=”1988-12-31T00:00:00Z” |
|
maximumTimeTear |
no |
The maximum time tear (gap or overlap) in seconds between time series segments in the specified range. |
maximumTimeTear=”0.01” |
|
numberSegments |
yes |
The number of continuous time series segments contained in the specified time range. A value of 1 indicates that the time series is continuous from start to end. |
numberSegments=”2” |
|
start |
yes |
start date of span |
start=”1988-01-01T00:00:00Z” |
<Latitude> required
Station → Latitude
content type: double
range: -90.0 \(\le\) Latitude \(\lt\) 90.0
Station latitude, in degrees. Where the bulk of the equipment is located (or another appropriate site location). The unit is fixed to be degrees, and datum defaults to WGS84.
Latitude type extending the base type to add datum as an attribute with default.
Example: <Latitude>34.9459</Latitude>
Attributes of <Latitude>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be DEGREES, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
datum |
no |
<Longitude> required
Station → Longitude
content type: double
range: -180.0 \(\le\) Longitude \(\le\) 180.0
Station longitude, in degrees. Where the bulk of the equipment is located (or another appropriate site location). The unit is fixed to be degrees, and datum defaults to WGS84.
Longitude type extending the base type to add datum as an attribute with default.
Example: <Longitude>-106.4572</Longitude>
Attributes of <Longitude>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be DEGREES, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
datum |
no |
<Elevation> required
Station → Elevation
content type: double
Elevation of local ground surface level at station, in meters.
Example: <Elevation>1850.0</Elevation>
Attributes of <Elevation>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be METERS, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Site> required
Station → Site
Description of a location using name and optional geopolitical boundaries (country, city, etc.).
Sub Elements of <Site>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
<Name> required
Station → Site → Name
content type: string
Name of the site
Example: <Name>Albuquerque, New Mexico</Name>
<Description>
Station → Site → Description
content type: string
A longer description of the location of this station
Example: <Description>NW corner of Yellowstone National Park</Description>
<Town>
Station → Site → Town
content type: string
The town or city closest to the station.
Example: <Town>Albuquerque</Town>
<County>
Station → Site → County
content type: string
The county where the station is located
Example: <County>Bernalillo</County>
<Region>
Station → Site → Region
content type: string
The state, province, or region of this site.
Example: <Region>Southwest U.S.</Region>
<Country>
Station → Site → Country
content type: string
The country of this site.
Example: <Country>U.S.A.</Country>
<WaterLevel>
Station → WaterLevel
content type: double
Elevation of the water surface in meters for underwater sites, where 0 is mean sea level. If you put an OBS on a lake bottom, where the lake surface is at elevation=1200 meters, then you should set WaterLevel=1200. An OBS in the ocean would have WaterLevel=0.
Example: <WaterLevel>1200</WaterLevel>
Attributes of <WaterLevel>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The unit of measurement. Use SI unit names and symbols whenever possible (e.g., ‘m’ instead of ‘METERS’). |
unit=”m” |
|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Vault>
Station → Vault
content type: string
Type of vault, e.g. World-Wide Standardized Seismograph Network (WWSSN), tunnel, USArray Transportable Array Generation 2, etc.
<Geology>
<Equipment>
Station → Equipment
Equipment used by all channels at a station, Equipment that contributes to or affects the response of a channel should be documented on the channel.
A type for equipment related to data acquisition or processing.
Attributes of <Equipment>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
resourceId |
no |
An identifier that serves to uniquely identify this resource. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that equipment with the same ID should indicate the same information or be derived from the same base instruments. |
Sub Elements of <Equipment>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
dateTime |
optional |
|
dateTime |
optional |
|
dateTime |
optional, many |
<Type>
<Description>
<Manufacturer>
<Vendor>
<Model>
<SerialNumber>
<InstallationDate>
<RemovalDate>
<CalibrationDate>
<Operator>
Station → Operator
Agency who manage this station. Only use if this differs from the Operator of the Network.
Since the Contact element is a generic type that represents any contact person, it also has its own optional Agency element. It is expected that typically the contact’s optional Agency tag will match the Operator Agency. Only contacts appropriate for the enclosing element should be included in the Operator tag.
Sub Elements of <Operator>:
element |
type |
number |
---|---|---|
string |
required |
|
optional, many |
||
anyURI |
optional |
<Agency> required
Station → Operator → Agency
content type: string
The operating agency.
Example: <Agency>USGS</Agency>
<Contact>
Station → Operator → Contact
Person’s contact information. A person can belong to multiple agencies and have multiple email addresses and phone numbers.
Sub Elements of <Contact>:
element |
type |
number |
---|---|---|
string |
optional, many |
|
string |
optional, many |
|
string |
optional, many |
|
optional, many |
<Name>
Station → Operator → Contact → Name
content type: string
Name of contact or author
Example: <Name>Dr. Jane Doe</Name>
<Agency>
Station → Operator → Contact → Agency
content type: string
Agency of contact or author
Example: <Agency>USGS</Agency>
<Email>
Station → Operator → Contact → Email
content type: string
Email of contact or author
Example: <Email>jane_doe@example.com</Email>
<Phone>
Station → Operator → Contact → Phone
Phone of contact or author
Attributes of <Phone>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
description |
no |
Sub Elements of <Phone>:
element |
type |
number |
---|---|---|
integer |
optional |
|
integer |
required |
|
string |
required |
Station → Operator → Contact → Phone → CountryCode
content type: integer
Telephone country code
Example: <CountryCode>64</CountryCode>
Station → Operator → Contact → Phone → AreaCode
content type: integer
Telephone area code
Example: <AreaCode>408</AreaCode>
Station → Operator → Contact → Phone → PhoneNumber
content type: string
Telephone number
Example: <PhoneNumber>5551212</PhoneNumber>
<WebSite>
Station → Operator → WebSite
content type: anyURI
Website of operating agency
Example: <WebSite>http://usgs.gov</WebSite>
<CreationDate>
Station → CreationDate
Warning, Future Change
<CreationDate>: This element is likely to be removed.
content type: dateTime
Date and time (UTC) when the station was first installed.
<TerminationDate>
Station → TerminationDate
Warning, Future Change
<TerminationDate>: This element is likely to be removed.
content type: dateTime
Date and time (UTC) when the station was terminated or will be terminated. Do not include this element if a termination date is not available or is not relevant.
<TotalNumberChannels>
Station → TotalNumberChannels
Warning, Future Change
<TotalNumberChannels>: This element is likely to be removed.
content type: decimal
range: TotalNumberChannels \(\ge\) 0
Total number of channels recorded at this station.
<SelectedNumberChannels>
Station → SelectedNumberChannels
Warning, Future Change
<SelectedNumberChannels>: This element is likely to be removed.
content type: decimal
range: SelectedNumberChannels \(\ge\) 0
The number of channels selected in the request that resulted in this document.
<ExternalReference>
Station → ExternalReference
URI of any type of external report
This type contains a Uniform Resource Identifier (URI) and description for external information that users may want to reference.
Sub Elements of <ExternalReference>:
element |
type |
number |
---|---|---|
anyURI |
required |
|
string |
required |
<URI> required
<Description> required
Station → ExternalReference → Description
content type: string
Description of the external reference.
<Channel>
Warning, Future Change
endDate: This attribute should not be used if it is in the future.
Warning, Future Change
endDate: This attribute is likely to require timezone of Z.
Warning, Future Change
startDate: This attribute is likely to require timezone of Z.
The Channel container. A Description element may be included with other information. An Identifier element may be included to designate a persistent identifier (e.g. DOI) to use for citation or reference. A Comment element may be included for arbitrary comments.
An active Channel should not use the endDate attribute. Unlike SEED, do not use an endDate in the distant future to mean active.
Attributes of <Channel>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
alternateCode |
no |
A code used for display or association |
alternateCode=”Z” |
|
code |
yes |
Name of Channel |
code=”BHZ” |
|
endDate |
no |
End date of channel epoch. Do not use if still active, endDate should not be in the future. |
endDate=”2018-01-27T00:00:00Z” |
|
historicalCode |
no |
A previously used code if different from the current code |
historicalCode=”bhz” |
|
locationCode |
yes |
The locationCode is typically used to group channels from a common sensor. For example, the channels of the primary sensor at global IDA-IRIS stations have locationCode = “00”: 00_BHZ, 00_BHE, 00_BHN, 00_LHZ, …, etc. Even though it is required, locationCode may be, and often is, an empty string, however, it is recommended that the locationCode not be empty. |
locationCode=”30” |
|
restrictedStatus |
no |
One of: “open”, “closed”, “partial” |
restrictedStatus=”open” |
|
sourceID |
no |
A data source identifier in URI form. It is recommended that this follow the FDSN Source Identifiers specification, http://docs.fdsn.org/projects/source-identifiers |
sourceID=”FDSN:XX_ABCD_00_B_H_Z” |
|
startDate |
no |
Start date of channel epoch |
startDate=”2016-07-01T00:00:00Z” |
Sub Elements of <Channel>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional, many |
|
optional, many |
||
optional |
||
optional, many |
||
double |
required |
|
double |
required |
|
double |
required |
|
double |
required |
|
double |
optional |
|
double |
optional |
|
double |
optional |
|
string |
optional, many |
|
double |
optional |
|
optional |
||
double |
optional |
|
optional |
||
optional |
||
optional |
||
optional |
||
optional, many |
||
optional |
<Description>
Channel → Description
content type: string
Description of the Channel
Example: <Description>This is a description</Description>
<Identifier>
Channel → Identifier
content type: string
A type to document persistent identifiers. Identifier values should be specified without a URI scheme (prefix), instead the identifier type is documented as an attribute.
Example: <identifier type=”DOI”>10.1000/140</identifier>
Example: <identifier type=”DOI”>10.5555/12345678</identifier>BHZ.
Attributes of <Identifier>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
type |
no |
Identifier type |
type=”DOI” |
<Comment>
Channel → Comment
Container for a comment or log entry.
Attributes of <Comment>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
id |
no |
An ID for this comment |
id=”12345” |
|
subject |
no |
A subject for this comment. Multiple comments with the same subject should be considered related. |
subject=”Scheduled maintenance” |
Sub Elements of <Comment>:
element |
type |
number |
---|---|---|
string |
required |
|
dateTime |
optional |
|
dateTime |
optional |
|
optional, many |
<Value> required
Channel → Comment → Value
content type: string
Comment text.
Example: <Value>Large number of spikes</Value>
<BeginEffectiveTime>
Channel → Comment → BeginEffectiveTime
content type: dateTime
Start time for when comment applies.
Example: <BeginEffectiveTime>2008-09-15T00:00:00Z</BeginEffectiveTime>
<EndEffectiveTime>
Channel → Comment → EndEffectiveTime
content type: dateTime
End time for when comment applies.
Example: <EndEffectiveTime>2008-09-16T12:00:00Z</EndEffectiveTime>
<DataAvailability>
Channel → DataAvailability
A description of time series data availability. This information should be considered transient and is primarily useful as a guide for generating time series data requests. The information for a DataAvailability:Span may be specific to the time range used in a request that resulted in the document or limited to the availability of data within the request range. These details may or may not be retained when synchronizing metadata between data centers.
A type for describing data availability.
Sub Elements of <DataAvailability>:
element |
type |
number |
---|---|---|
optional |
||
optional, many |
<Extent>
Channel → DataAvailability → Extent
Data availability extents, the earliest and latest data available. No information about the continuity of the data is included or implied.
Attributes of <Extent>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
end |
yes |
end date of extent |
end=”1988-12-31T00:00:00Z” |
|
start |
yes |
start date of extent |
start=”1988-01-01T00:00:00Z” |
<Span>
Channel → DataAvailability → Span
A type for describing data availability spans, with variable continuity. The time range described may be based on the request parameters that generated the document and not necessarily relate to continuity outside of the range. It may also be a smaller time window than the request depending on the data characteristics.
Attributes of <Span>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
end |
yes |
end date of span |
end=”1988-12-31T00:00:00Z” |
|
maximumTimeTear |
no |
The maximum time tear (gap or overlap) in seconds between time series segments in the specified range. |
maximumTimeTear=”0.01” |
|
numberSegments |
yes |
The number of continuous time series segments contained in the specified time range. A value of 1 indicates that the time series is continuous from start to end. |
numberSegments=”2” |
|
start |
yes |
start date of span |
start=”1988-01-01T00:00:00Z” |
<ExternalReference>
Channel → ExternalReference
URI of any type of external report, such as data quality reports.
This type contains a Uniform Resource Identifier (URI) and description for external information that users may want to reference.
Sub Elements of <ExternalReference>:
element |
type |
number |
---|---|---|
anyURI |
required |
|
string |
required |
<URI> required
<Description> required
Channel → ExternalReference → Description
content type: string
Description of the external reference.
<Latitude> required
Channel → Latitude
content type: double
range: -90.0 \(\le\) Latitude \(\lt\) 90.0
Latitude of this channel’s sensor, in degrees. Often the same as the station latitude, but when different the channel latitude is the true location of the sensor.
Latitude type extending the base type to add datum as an attribute with default.
Example: <Latitude>34.9459</Latitude>
Attributes of <Latitude>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be DEGREES, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
datum |
no |
<Longitude> required
Channel → Longitude
content type: double
range: -180.0 \(\le\) Longitude \(\le\) 180.0
Longitude of this channel’s sensor, in degrees. Often the same as the station longitude, but when different the channel longitude is the true location of the sensor.
Longitude type extending the base type to add datum as an attribute with default.
Example: <Longitude>-106.4572</Longitude>
Attributes of <Longitude>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be DEGREES, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
datum |
no |
<Elevation> required
Channel → Elevation
content type: double
Elevation of the sensor, in meters. To find the local ground surface level, add the Depth value to this elevation.
Attributes of <Elevation>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be METERS, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Depth> required
Channel → Depth
content type: double
The depth of the sensor relative to the local ground surface level, in meters.
Attributes of <Depth>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be METERS, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Azimuth>
Channel → Azimuth
content type: double
range: 0.0 \(\le\) Azimuth \(\lt\) 360.0
Azimuth of the component in degrees clockwise from geographic (true) north.
Attributes of <Azimuth>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be DEGREES, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Dip>
Channel → Dip
content type: double
range: -90.0 \(\le\) Dip \(\le\) 90.0
Dip of the component in degrees, positive is down from horizontal. For horizontal dip=0, for vertical upwards dip=-90 and for vertical downwards dip=+90.
Attributes of <Dip>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be DEGREES, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<WaterLevel>
Channel → WaterLevel
content type: double
Elevation of the water surface in meters for underwater sites, where 0 is mean sea level. If you put an OBS on a lake bottom, where the lake surface is at elevation=1200 meters, then you should set WaterLevel=1200. An OBS in the ocean would have WaterLevel=0.
Attributes of <WaterLevel>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The unit of measurement. Use SI unit names and symbols whenever possible (e.g., ‘m’ instead of ‘METERS’). |
unit=”m” |
|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Type>
Channel → Type
Warning, Future Change
<Type>: This element is likely to be removed.
content type: string
Data type for this channel. One or more <Type> tags can be used to specify the nature of the data this channel collects. The value between the <Type> tags must be one of: TRIGGERED, CONTINUOUS, HEALTH, GEOPHYSICAL, WEATHER, FLAG or SYNTHESIZED.
This element existed primarily to hold the corresponding value from SEED, but should not be used for new StationXML.
Example: <Type>CONTINUOUS</Type>
<SampleRate>
Channel → SampleRate
content type: double
Sample rate in samples per second. SampleRate is optional unless SampleRateRatio is present, in which case SampleRate is required.
Example: <SampleRate>40.0</SampleRate>
Attributes of <SampleRate>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be SAMPLES/S, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<SampleRateRatio>
Channel → SampleRateRatio
Sample rate expressed as number of samples in a number of seconds. If present, then <SampleRate> must also be present. It can be useful for very slow data (e.g., less than a few samples per day), since it allows for greater precision in the stored value.
Example:
<SampleRate>0.000023148</SampleRate>
<SampleRateRatio>
<NumberSamples>2</NumberSamples>
<NumberSeconds>86400</NumberSeconds>
</SampleRateRatio>
Sub Elements of <SampleRateRatio>:
element |
type |
number |
---|---|---|
integer |
required |
|
integer |
required |
<NumberSamples> required
Channel → SampleRateRatio → NumberSamples
content type: integer
Integer number of samples that span a number of seconds.
<NumberSeconds> required
Channel → SampleRateRatio → NumberSeconds
content type: integer
Integer number of seconds that span a number of samples.
<ClockDrift>
Channel → ClockDrift
content type: double
range: ClockDrift \(\ge\) 0.0
Tolerance value, measured in seconds per sample, used as a threshold for time error detection in data from the channel.
Attributes of <ClockDrift>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The unit of drift value. This value is fixed to be SECONDS/SAMPLE, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<CalibrationUnits>
Channel → CalibrationUnits
Units of calibration (e.g., V (for Volts) or A (for amps))
Use SI units when possible
A type to document units; use SI whenever possible.
Example:
<CalibrationUnits>
<Name>V</Name>
<Description>Volts</Description>
</CalibrationUnits>
Sub Elements of <CalibrationUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
<Name> required
Channel → CalibrationUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
<Description>
Channel → CalibrationUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<Sensor>
Channel → Sensor
Details of the (typically analog) sensor attached to this channel. If this was entered at the Station level, it is not necessary to do it for each Channel, unless you have differences in equipment.
A type for equipment related to data acquisition or processing.
Attributes of <Sensor>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
resourceId |
no |
An identifier that serves to uniquely identify this resource. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that equipment with the same ID should indicate the same information or be derived from the same base instruments. |
Sub Elements of <Sensor>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
dateTime |
optional |
|
dateTime |
optional |
|
dateTime |
optional, many |
<Type>
<Description>
<Manufacturer>
<Vendor>
<Model>
<SerialNumber>
<InstallationDate>
<RemovalDate>
<CalibrationDate>
<PreAmplifier>
Channel → PreAmplifier
Preamplifier (if any) used by this channel. If this was entered at the Station level, it is not necessary to do it for each Channel, unless you have differences in equipment.
A type for equipment related to data acquisition or processing.
Attributes of <PreAmplifier>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
resourceId |
no |
An identifier that serves to uniquely identify this resource. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that equipment with the same ID should indicate the same information or be derived from the same base instruments. |
Sub Elements of <PreAmplifier>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
dateTime |
optional |
|
dateTime |
optional |
|
dateTime |
optional, many |
<Type>
<Description>
<Manufacturer>
<Vendor>
<Model>
<SerialNumber>
<InstallationDate>
<RemovalDate>
<CalibrationDate>
<DataLogger>
Channel → DataLogger
Datalogger that recorded this channel. If this was entered at the Station level, it is not necessary to do it for each Channel, unless you have differences in equipment.
A type for equipment related to data acquisition or processing.
Attributes of <DataLogger>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
resourceId |
no |
An identifier that serves to uniquely identify this resource. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that equipment with the same ID should indicate the same information or be derived from the same base instruments. |
Sub Elements of <DataLogger>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
dateTime |
optional |
|
dateTime |
optional |
|
dateTime |
optional, many |
<Type>
<Description>
<Manufacturer>
<Vendor>
<Model>
<SerialNumber>
<InstallationDate>
<RemovalDate>
<CalibrationDate>
<Equipment>
Channel → Equipment
Any equipment that does not have type-specific fields. Equipment such as sensor, data logger and preamplifier that has type-specific fields should be documented in those structures. If the same Equipment is entered at the Station level, it is not necessary to include it for each Channel. If using a preamplifier, sensor, or datalogger, use their appropriate fields instead.
A type for equipment related to data acquisition or processing.
Attributes of <Equipment>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
resourceId |
no |
An identifier that serves to uniquely identify this resource. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that equipment with the same ID should indicate the same information or be derived from the same base instruments. |
Sub Elements of <Equipment>:
element |
type |
number |
---|---|---|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
string |
optional |
|
dateTime |
optional |
|
dateTime |
optional |
|
dateTime |
optional, many |
<Type>
<Description>
<Manufacturer>
<Vendor>
<Model>
<SerialNumber>
<InstallationDate>
<RemovalDate>
<CalibrationDate>
<Response>
The complete instrument response for this channel that expresses the effect of the geophysical instrumentation used to record the input ground motion. The information can be used to convert raw data to Earth unit measurement at a specified frequency or within a range of frequencies. It is strongly suggested that either InstrumentSensitivity or InstrumentPolynomial should be present.
In cases where the response is unknown, for example really old channels, or where a response is not applicable, like textual log channels, it is preferred that an empty response element be used, <response></response>, to positively indicate that no response exists.
Attributes of <Response>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
resourceId |
no |
An identifier that serves to uniquely identify this resource. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that elements with the same ID should indicate the same information. |
Sub Elements of <Response>:
element |
type |
number |
---|---|---|
optional |
||
optional |
||
optional, many |
<InstrumentSensitivity>
Response → InstrumentSensitivity
The total sensitivity for a channel, representing the complete acquisition system expressed as a scalar. All instrument responses except polynomial response should have an InstrumentSensitivity.
Type for sensitivity, input/output units and relevant frequency range.
Sub Elements of <InstrumentSensitivity>:
element |
type |
number |
---|---|---|
double |
required |
|
double |
required |
|
required |
||
required |
||
double |
optional |
|
double |
optional |
|
double |
optional |
<Value> required
Response → InstrumentSensitivity → Value
content type: double
A scalar value representing the amount of amplification or diminution, if any, the current stage applies to the input signal.
<Frequency> required
Response → InstrumentSensitivity → Frequency
content type: double
The frequency (in Hertz) at which the Value is valid.
While any frequency in the passband is acceptable, it is preferred that:
For low pass FIR filters, use gain at zero frequency (sum of coefficients)
If given, use manufacturer frequency/gain without recomputing
For anything else, frequency should be in the “good” part of the passband
All stage frequencies should be below the final Nyquist, as long as 2,3 are satisfied
All stages, except lowpass FIR filters, should use the same frequencies, as long as 2,3 are satisfied
Overall gain should also use the same frequency as 5, as long as it is below the final Nyquist and in the good part of the final passband
<InputUnits> required
Response → InstrumentSensitivity → InputUnits
The units of the data as input to the sensor. For example if stage 1 represented a seismometer, InputUnits would be ‘m/s’ and OutputUnits would be ‘V’.
A type to document units; use SI whenever possible.
Sub Elements of <InputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
<Name> required
Response → InstrumentSensitivity → InputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
<Description>
Response → InstrumentSensitivity → InputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<OutputUnits> required
Response → InstrumentSensitivity → OutputUnits
The units of the data as output from data acquisition system. For most channels recorded by systems that use an AtoD, the OutputUnits will be ‘count’.
A type to document units; use SI whenever possible.
Sub Elements of <OutputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
<Name> required
Response → InstrumentSensitivity → OutputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
<Description>
Response → InstrumentSensitivity → OutputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<FrequencyStart>
Response → InstrumentSensitivity → FrequencyStart
content type: double
The lowest frequency for which the InstrumentSensitivity is valid. <FrequencyStart>, <FrequencyEnd> and <FrequencyDBVariation> are not required, however, if one of these is present, then all must be present.
<FrequencyEnd>
Response → InstrumentSensitivity → FrequencyEnd
content type: double
The highest frequency for which the InstrumentSensitivity is valid. <FrequencyStart>, <FrequencyEnd> and <FrequencyDBVariation> are not required, however, if one of these is present, then all must be present.
<FrequencyDBVariation>
Response → InstrumentSensitivity → FrequencyDBVariation
content type: double
Variation in decibels within the specified frequency range. <FrequencyStart>, <FrequencyEnd> and <FrequencyDBVariation> are not required, however, if one of these is present, then all must be present.
<InstrumentPolynomial>
Response → InstrumentPolynomial
For non-linear sensors (e.g., \(N\ge 2\)), such as some thermistors, pressure transducers, extensometers, etc.), it is required to express the sensor input (e.g., Temp) as a Maclaurin series expansion of powers of the output units (e.g., Volts):
For such responses, two StationXML components are required to specify the response: 1. A Polynomial stage, which contains the values of the Maclaurin coefficients, \(a_k\), and 2. An InstrumentPolynomial element that contains the same coefficients, but scaled by powers of the overall gain representing the combined effect of all the stages in the complete acquisition system.
Response type for a response represented as a polynomial expansion, which allows non-linear sensors to be described. Used at either a stage of acquisition response or a complete system.
Attributes of <InstrumentPolynomial>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
name |
no |
A name given to this filter. |
||
resourceId |
no |
A resource identifier that serves to unique identify this filter or response. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that elements with the same resourceId should indicate the same information. |
Sub Elements of <InstrumentPolynomial>:
element |
type |
number |
---|---|---|
string |
optional |
|
required |
||
required |
||
string |
required |
|
double |
required |
|
double |
required |
|
double |
required |
|
double |
required |
|
double |
required |
|
double |
required, many |
<Description>
Response → InstrumentPolynomial → Description
content type: string
The description of the filter/stage/response
<InputUnits> required
Response → InstrumentPolynomial → InputUnits
The units of the data as input from the previous stage. For example if stage 1 represented a seismometer, InputUnits would be ‘m/s’ and OutputUnits would be ‘V’.
A type to document units; use SI whenever possible.
Sub Elements of <InputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
<Name> required
Response → InstrumentPolynomial → InputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
<Description>
Response → InstrumentPolynomial → InputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<OutputUnits> required
Response → InstrumentPolynomial → OutputUnits
The units of the data as output to the following stage. For example if stage 2 represented the AtoD stage of a data logger, InputUnits would be ‘V’ and OutputUnits would be ‘count’.
A type to document units; use SI whenever possible.
Sub Elements of <OutputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
<Name> required
Response → InstrumentPolynomial → OutputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
<Description>
Response → InstrumentPolynomial → OutputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<ApproximationType> required
Response → InstrumentPolynomial → ApproximationType
content type: string
The series type for the polynomial approximation
<FrequencyLowerBound> required
Response → InstrumentPolynomial → FrequencyLowerBound
content type: double
The lower bound of the frequency range.
Attributes of <FrequencyLowerBound>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be HERTZ, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<FrequencyUpperBound> required
Response → InstrumentPolynomial → FrequencyUpperBound
content type: double
The upper bound of the frequency range.
Attributes of <FrequencyUpperBound>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be HERTZ, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<ApproximationLowerBound> required
Response → InstrumentPolynomial → ApproximationLowerBound
content type: double
The lower bound of the approximation range.
<ApproximationUpperBound> required
Response → InstrumentPolynomial → ApproximationUpperBound
content type: double
The upper bound of the approximation range.
<MaximumError> required
Response → InstrumentPolynomial → MaximumError
content type: double
The maximum error of the approximation.
<Coefficient> required
Response → InstrumentPolynomial → Coefficient
content type: double
Attributes of <Coefficient>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
number |
no |
<Stage>
Response → Stage
Warning, Future Change
<Stage>: A filter, (PolesZeros, Coefficients, FIR, etc) may be required.
Type for channel response entry or stage. A full response is represented as an ordered sequence of these stages.
A filter, (PolesZeros, Coefficients, FIR, etc) is not required, but is recommended to provide a place to store the input and output units even in the case of “gain-only” stages.
For an analog gain-only stage, use a PolesZeros filter with no poles or zeros, PzTransferFunctionType=LAPLACE (RADIANS/SECOND)”, NormalizationFactor=1 and NormalizationFrequency=0.
For a digital gain-only stage, use a FIR filter with one numerator with value 1.0, and symmetry=NONE. While a digital Coefficients filter can serve the same purpose and is common, the FIR filter is more concise.
Attributes of <Stage>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
number |
yes |
Stage sequence number. This is used in all the response blockettes. Start from name=’1’ and iterate sequentially. |
||
resourceId |
no |
A resource identifier that serves to uniquely identify this response stage. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that equipment with the same ID should indicate the same information. |
Sub Elements of <Stage>:
element |
type |
number |
---|---|---|
optional |
||
optional |
||
optional |
||
optional |
||
optional |
||
required |
||
required |
<PolesZeros>
Response → Stage → PolesZeros
Response stage described by the complex poles and zeros of the Laplace Transform (or z-transform) of the transfer function for this stage.
Attributes of <PolesZeros>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
name |
no |
A name given to this filter. |
||
resourceId |
no |
A resource identifier that serves to unique identify this filter or response. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that elements with the same resourceId should indicate the same information. |
Sub Elements of <PolesZeros>:
element |
type |
number |
---|---|---|
string |
optional |
|
required |
||
required |
||
string |
required |
|
double |
required |
|
double |
required |
|
optional, many |
||
optional, many |
<Description>
Response → Stage → PolesZeros → Description
content type: string
The description of the filter/stage/response
<InputUnits> required
Response → Stage → PolesZeros → InputUnits
The units of the data as input from the previous stage. For example if stage 1 represented a seismometer, InputUnits would be ‘m/s’ and OutputUnits would be ‘V’.
A type to document units; use SI whenever possible.
Sub Elements of <InputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → PolesZeros → InputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → PolesZeros → InputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<OutputUnits> required
Response → Stage → PolesZeros → OutputUnits
The units of the data as output to the following stage. For example if stage 2 represented the AtoD stage of a data logger, InputUnits would be ‘V’ and OutputUnits would be ‘count’.
A type to document units; use SI whenever possible.
Sub Elements of <OutputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → PolesZeros → OutputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → PolesZeros → OutputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<PzTransferFunctionType> required
Response → Stage → PolesZeros → PzTransferFunctionType
content type: string
Allowable values are:”LAPLACE (RADIANS/SECOND)”, “LAPLACE (HERTZ)”, “DIGITAL (Z-TRANSFORM)”. For an analog stage this should be the units of the poles and zeros of the Laplace Transform, either: “LAPLACE (RADIANS/SECOND)” or “LAPLACE (HERTZ)”. For a digital z-transform (e.g., for an IIR filter), this should be “DIGITAL (Z-TRANSFORM)”
Example: <PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType>
<NormalizationFactor> required
<NormalizationFrequency> required
Response → Stage → PolesZeros → NormalizationFrequency
content type: double
Frequency at which the NormalizationFactor is valid. This should be the same for all stages and within the passband, if any.
Attributes of <NormalizationFrequency>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be HERTZ, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Zero>
Response → Stage → PolesZeros → Zero
Complex zero of the polezero stage.
Attributes of <Zero>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
number |
no |
The position index of the pole (or zero) in the array of poles[] (or zeros[]) |
number=”None” |
Sub Elements of <Zero>:
element |
type |
number |
---|---|---|
double |
required |
|
double |
required |
Response → Stage → PolesZeros → Zero → Real
content type: double
Real part of the complex number.
Representation of floating-point numbers without unit.
Attributes of <Real>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
Response → Stage → PolesZeros → Zero → Imaginary
content type: double
Imaginary part of the complex number.
Representation of floating-point numbers without unit.
Attributes of <Imaginary>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Pole>
Response → Stage → PolesZeros → Pole
Complex pole of the polezero stage.
Attributes of <Pole>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
number |
no |
The position index of the pole (or zero) in the array of poles[] (or zeros[]) |
number=”None” |
Sub Elements of <Pole>:
element |
type |
number |
---|---|---|
double |
required |
|
double |
required |
Response → Stage → PolesZeros → Pole → Real
content type: double
Real part of the complex number.
Representation of floating-point numbers without unit.
Attributes of <Real>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
Response → Stage → PolesZeros → Pole → Imaginary
content type: double
Imaginary part of the complex number.
Representation of floating-point numbers without unit.
Attributes of <Imaginary>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Coefficients>
Response → Stage → Coefficients
Warning, Future Change
<Coefficients>: The Numerator element is likely to be changed to require at least one numerator.
Response type for filter giving coefficients. Laplace transforms or analog filters can both be expressed using this type as well but the PolesZeros should be used instead. Digital filters with no denominator should use FIR instead.
Attributes of <Coefficients>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
name |
no |
A name given to this filter. |
||
resourceId |
no |
A resource identifier that serves to unique identify this filter or response. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that elements with the same resourceId should indicate the same information. |
Sub Elements of <Coefficients>:
element |
type |
number |
---|---|---|
string |
optional |
|
required |
||
required |
||
string |
required |
|
double |
optional, many |
|
double |
optional, many |
<Description>
Response → Stage → Coefficients → Description
content type: string
The description of the filter/stage/response
<InputUnits> required
Response → Stage → Coefficients → InputUnits
The units of the data as input from the previous stage. For example if stage 1 represented a seismometer, InputUnits would be ‘m/s’ and OutputUnits would be ‘V’.
A type to document units; use SI whenever possible.
Sub Elements of <InputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → Coefficients → InputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → Coefficients → InputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<OutputUnits> required
Response → Stage → Coefficients → OutputUnits
The units of the data as output to the following stage. For example if stage 2 represented the AtoD stage of a data logger, InputUnits would be ‘V’ and OutputUnits would be ‘count’.
A type to document units; use SI whenever possible.
Sub Elements of <OutputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → Coefficients → OutputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → Coefficients → OutputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<CfTransferFunctionType> required
Response → Stage → Coefficients → CfTransferFunctionType
content type: string
Almost always a digital response, but can be an analog response in rad/sec or Hertz.
<Numerator>
Response → Stage → Coefficients → Numerator
Warning, Future Change
<Numerator>: At least one Numerator may be required.
content type: double
Numerator for the coefficient. Should include at least one.
Attributes of <Numerator>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
number |
no |
<Denominator>
Response → Stage → Coefficients → Denominator
content type: double
Denominator for the coefficient
Attributes of <Denominator>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
number |
no |
<ResponseList>
Response → Stage → ResponseList
Response type for a list of frequency, amplitude, and phase values. Because it is less flexible, the other filter types, PolesZeros, Coefficients, FIR, etc, are preferred.
Attributes of <ResponseList>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
name |
no |
A name given to this filter. |
||
resourceId |
no |
A resource identifier that serves to unique identify this filter or response. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that elements with the same resourceId should indicate the same information. |
Sub Elements of <ResponseList>:
element |
type |
number |
---|---|---|
string |
optional |
|
required |
||
required |
||
optional, many |
<Description>
Response → Stage → ResponseList → Description
content type: string
The description of the filter/stage/response
<InputUnits> required
Response → Stage → ResponseList → InputUnits
The units of the data as input from the previous stage. For example if stage 1 represented a seismometer, InputUnits would be ‘m/s’ and OutputUnits would be ‘V’.
A type to document units; use SI whenever possible.
Sub Elements of <InputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → ResponseList → InputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → ResponseList → InputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<OutputUnits> required
Response → Stage → ResponseList → OutputUnits
The units of the data as output to the following stage. For example if stage 2 represented the AtoD stage of a data logger, InputUnits would be ‘V’ and OutputUnits would be ‘count’.
A type to document units; use SI whenever possible.
Sub Elements of <OutputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → ResponseList → OutputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → ResponseList → OutputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<ResponseListElement>
Response → Stage → ResponseList → ResponseListElement
Sub Elements of <ResponseListElement>:
element |
type |
number |
---|---|---|
double |
required |
|
double |
required |
|
double |
required |
Response → Stage → ResponseList → ResponseListElement → Frequency
content type: double
Attributes of <Frequency>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be HERTZ, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
Response → Stage → ResponseList → ResponseListElement → Amplitude
content type: double
Attributes of <Amplitude>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The unit of measurement. Use SI unit names and symbols whenever possible (e.g., ‘m’ instead of ‘METERS’). |
unit=”m” |
|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
Response → Stage → ResponseList → ResponseListElement → Phase
content type: double
range: -360.0 \(\le\) Phase \(\le\) 360.0
Attributes of <Phase>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be DEGREES, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<FIR>
Response → Stage → FIR
Warning, Future Change
<FIR>: The NumeratorCoefficient field is likely to be changed to require at least one numerator in future versions of StationXML.
Warning, Future Change
<FIR>: The NumeratorCoefficient field is likely to be renamed to Numerator in future versions of StationXML.
Response type for FIR filter. FIR filters are also commonly documented using a digital Coefficients element with no denominators, but it is preferred to use this type allowing representation of symmetric FIR coefficients without repeating them.
Attributes of <FIR>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
name |
no |
A name given to this filter. |
||
resourceId |
no |
A resource identifier that serves to unique identify this filter or response. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that elements with the same resourceId should indicate the same information. |
Sub Elements of <FIR>:
element |
type |
number |
---|---|---|
string |
optional |
|
required |
||
required |
||
string |
required |
|
double |
optional, many |
<Description>
Response → Stage → FIR → Description
content type: string
The description of the filter/stage/response
<InputUnits> required
Response → Stage → FIR → InputUnits
The units of the data as input from the previous stage. For example if stage 1 represented a seismometer, InputUnits would be ‘m/s’ and OutputUnits would be ‘V’.
A type to document units; use SI whenever possible.
Sub Elements of <InputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → FIR → InputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → FIR → InputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<OutputUnits> required
Response → Stage → FIR → OutputUnits
The units of the data as output to the following stage. For example if stage 2 represented the AtoD stage of a data logger, InputUnits would be ‘V’ and OutputUnits would be ‘count’.
A type to document units; use SI whenever possible.
Sub Elements of <OutputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → FIR → OutputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → FIR → OutputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<Symmetry> required
Response → Stage → FIR → Symmetry
content type: string
The symmetry code. Designates how the factors will be specified.
NONE: No Symmetry - all Coefficients are specified, corresponds to A in SEED.
ODD: Odd number Coefficients with symmetry, B in SEED.
EVEN: Even number Coefficients with symmetry, C in SEED.
<NumeratorCoefficient>
Response → Stage → FIR → NumeratorCoefficient
Warning, Future Change
<NumeratorCoefficient>: At least one Numerator may be required.
Warning, Future Change
<NumeratorCoefficient>: May be renamed to Numerator.
content type: double
The coefficients of the FIR filter. Should include at least one.
Attributes of <NumeratorCoefficient>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
i |
no |
<Decimation>
Response → Stage → Decimation
Representation of decimation stage
Sub Elements of <Decimation>:
element |
type |
number |
---|---|---|
double |
required |
|
integer |
required |
|
integer |
required |
|
double |
required |
|
double |
required |
<InputSampleRate> required
Response → Stage → Decimation → InputSampleRate
content type: double
Attributes of <InputSampleRate>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be HERTZ, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Factor> required
Response → Stage → Decimation → Factor
content type: integer
The factor of the input sample rate by which the rate is reduced.
<Offset> required
Response → Stage → Decimation → Offset
content type: integer
Sample offset chosen for use. The value should be greater than or equal to zero, but less than the decimation factor. If the first sample is used, set this field to zero. If the second sample, set it to 1, and so forth.
<Delay> required
Response → Stage → Decimation → Delay
content type: double
The estimated pure delay for the stage. This value will almost always be positive to indicate a delayed signal. Due to the difficulty in estimating the pure delay of a stage and because dispersion is neglected, this value should be considered nominal. Normally the delay would be corrected by the recording system and the correction applied would be specified in <Correction> below. See the Decimation Section in the StationXML documentation for a schematic description of delay sign convention.
Attributes of <Delay>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The unit of measurement. Use SI unit names and symbols whenever possible (e.g., ‘m’ instead of ‘METERS’). |
unit=”s” |
|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<Correction> required
Response → Stage → Decimation → Correction
content type: double
The time shift, if any, applied to correct for the delay at this stage. The sign convention used is opposite the <Delay> value; a positive sign here indicates that the trace was corrected to an earlier time to cancel the delay caused by the stage and indicated in the <Delay> element. Commonly, the estimated delay and the applied correction are both positive to cancel each other. A value of zero indicates no correction was applied. See the Decimation Section in the StationXML documentation for a schematic description of delay sign convention.
Attributes of <Correction>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The unit of measurement. Use SI unit names and symbols whenever possible (e.g., ‘m’ instead of ‘METERS’). |
unit=”s” |
|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<StageGain> required
Response → Stage → StageGain
The gain at the stage of the encapsulating response element at a specific frequency. Total channel sensitivity should be specified in the InstrumentSensitivity element.
Type used for representing sensitivity at a given frequency. This complex type can be used to represent both total sensitivities and individual stage gains.
Sub Elements of <StageGain>:
element |
type |
number |
---|---|---|
double |
required |
|
double |
required |
<Value> required
Response → Stage → StageGain → Value
content type: double
A scalar value representing the amount of amplification or diminution, if any, the current stage applies to the input signal.
<Frequency> required
Response → Stage → StageGain → Frequency
content type: double
The frequency (in Hertz) at which the Value is valid.
While any frequency in the passband is acceptable, it is preferred that:
For low pass FIR filters, use gain at zero frequency (sum of coefficients)
If given, use manufacturer frequency/gain without recomputing
For anything else, frequency should be in the “good” part of the passband
All stage frequencies should be below the final Nyquist, as long as 2,3 are satisfied
All stages, except lowpass FIR filters, should use the same frequencies, as long as 2,3 are satisfied
Overall gain should also use the same frequency as 5, as long as it is below the final Nyquist and in the good part of the final passband
<Polynomial>
Response → Stage → Polynomial
When a response is given in terms of a polynomial expansion of powers of the sensor output signal (e.g., Volts), a Polynomial stage is required to specify the Maclaurin coefficients of the expansion.
In addition, an InstrumentPolynomial element must be present at Response level to represent the whole acquisition process, which contains the same Maclaurin coefficients, but scaled by powers of the overall gain for all stages.
Response type for a response represented as a polynomial expansion, which allows non-linear sensors to be described. Used at either a stage of acquisition response or a complete system.
Attributes of <Polynomial>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
name |
no |
A name given to this filter. |
||
resourceId |
no |
A resource identifier that serves to unique identify this filter or response. This identifier can be interpreted differently depending on the datacenter/software that generated the document. Also, we recommend using a prefix, e.g., GENERATOR:Meaningful ID. It should be expected that elements with the same resourceId should indicate the same information. |
Sub Elements of <Polynomial>:
element |
type |
number |
---|---|---|
string |
optional |
|
required |
||
required |
||
string |
required |
|
double |
required |
|
double |
required |
|
double |
required |
|
double |
required |
|
double |
required |
|
double |
required, many |
<Description>
Response → Stage → Polynomial → Description
content type: string
The description of the filter/stage/response
<InputUnits> required
Response → Stage → Polynomial → InputUnits
The units of the data as input from the previous stage. For example if stage 1 represented a seismometer, InputUnits would be ‘m/s’ and OutputUnits would be ‘V’.
A type to document units; use SI whenever possible.
Sub Elements of <InputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → Polynomial → InputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → Polynomial → InputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<OutputUnits> required
Response → Stage → Polynomial → OutputUnits
The units of the data as output to the following stage. For example if stage 2 represented the AtoD stage of a data logger, InputUnits would be ‘V’ and OutputUnits would be ‘count’.
A type to document units; use SI whenever possible.
Sub Elements of <OutputUnits>:
element |
type |
number |
---|---|---|
string |
required |
|
string |
optional |
Response → Stage → Polynomial → OutputUnits → Name
content type: string
Symbol or name of units, e.g. “m/s”, “V”, “Pa”, “C”. Use SI whenever possible, along with singular lowercase “count” for digital counts.
Response → Stage → Polynomial → OutputUnits → Description
content type: string
Description of units, e.g. “Velocity in meters per second”, “Volts”, “Pascals”, “Degrees Celsius”. Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
<ApproximationType> required
Response → Stage → Polynomial → ApproximationType
content type: string
The series type for the polynomial approximation
<FrequencyLowerBound> required
Response → Stage → Polynomial → FrequencyLowerBound
content type: double
The lower bound of the frequency range.
Attributes of <FrequencyLowerBound>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be HERTZ, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<FrequencyUpperBound> required
Response → Stage → Polynomial → FrequencyUpperBound
content type: double
The upper bound of the frequency range.
Attributes of <FrequencyUpperBound>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
unit |
no |
The type of unit being used. This value is fixed to be HERTZ, setting it is redundant. |
||
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
<ApproximationLowerBound> required
Response → Stage → Polynomial → ApproximationLowerBound
content type: double
The lower bound of the approximation range.
<ApproximationUpperBound> required
Response → Stage → Polynomial → ApproximationUpperBound
content type: double
The upper bound of the approximation range.
<MaximumError> required
Response → Stage → Polynomial → MaximumError
content type: double
The maximum error of the approximation.
<Coefficient> required
Response → Stage → Polynomial → Coefficient
content type: double
Attributes of <Coefficient>:
attribute |
type |
required |
description |
example |
---|---|---|---|---|
plusError |
no |
plus uncertainty or error in measured value. |
plusError=”0.1” |
|
minusError |
no |
minus uncertainty or error in measured value. |
minusError=”0.1” |
|
measurementMethod |
no |
|||
number |
no |
Specifying and Using Response Information
–By Mike Hagerty & Adam Ringler
Theory of Instrument Response
In geophysics, we often work with instrument responses in the frequency domain as they are simpler to combine and manipulate For instrument responses specified in the time domain, we must first transform the response of the frequency domain using one or more transforms. Depending on the application, one or more of the following transforms may be used: The Fourier Transform, the Laplace Transform and the z-Transform.
The Fourier Transform
Introduction
The Fourier Transform (\(t \rightarrow \omega\)) is defined by
while the Inverse Fourier Transform (\(\omega \rightarrow t\)) is given by
There are different conventions in use for the Fourier Transform. The conventions differ in which transform (forward vs. reverse) has the positive sign in the exponent, and which transform is scaled by \(\frac{1}{2\pi}\). Some authors prefer to scale each transform by \(\frac{1}{\sqrt{2\pi}}\) instead. What is important is that forward and reverse transforms must have exponents that are opposite in sign, and the product of the scale factors must equal \(\frac{1}{2\pi}\).
Discrete Time Fourier Transform (DTFT)
In the Fourier transform pair above, both time (\(t\)) and frequency (\(\omega\)) are continuous parameters. In contrast, for signals sampled discretely in time, we may define the related Discrete Time Fourier Transform (DTFT) as
where \(n\) is the discrete sample number, and \(\omega\) is still continuous.
Discrete Fourier Transform (DFT)
And finally, when both time and frequency are discrete, we define the Discrete Fourier Transform (DFT) pair by
Note that the popular Fast Fourier Transform (FFT) is a particular implementation of the DFT.
The Laplace Transform
Introduction
The Laplace Transform is defined by
If we make the substitution, \(s=\sigma + j\omega\), this becomes
Each point in the complex s-plane is associated with a frequency, \(\omega\) and an exponent \(\sigma\). Thus, each point in the s-plane describes a sinusoid of frequency \(\omega\) that is either exponentially growing (\(\sigma>0\)) or exponentially decaying (\(\sigma<0\)) with time.
Note that the Laplace transform evaluated along the imaginary axis (where the attenuation parameter, \(\sigma=0\)), reduces to the complex Fourier transform, \(X(\omega)\).
The Laplace transform at point \(s\) is a measure of the similarity between the input signal, \(x(t)\), and the corresponding exponentially growing/decaying sinusoid. A large value of \(X(s)\) corresponds to a strong similarity between the input signal and the sinusoid \(e^{-(\sigma + j\omega)t}\), indicating a strong presence of the sinusoid in the input signal.
In practice, we are often only interested in causal signals that begin at \(t=0\). Using the unit step function,
we may ensure causality by writing \(x(t)=u(t)x(t)\) , so that the Laplace Transform becomes
Poles and Zeros
Suppose we have a data processing system (e.g., analog sensor + datalogger) that can be characterized by the linear differential equation,
where \(x(t)\) is the input signal (e.g., the ground motion), \(y(t)\) is the output signal (the signal recorded) and \(a_{k}\) and \(b_{k}\) are constant (time-invariant) coefficients. If we assume the system is causal, so that the signals + derivatives are all 0 for \(t<0\) , then the Laplace Transform of the equation gives
or
From this we can write the system transfer function relating the output to the input as
or more generally,
This is the coefficient representation of the transfer function. It represents the transfer function as the ratio of two polynomials. The roots of the numerator polynomial are called ‘zeros’, while the roots of the denominator polynomial are called ‘poles’.
Often, for analog stages, it is more convenient to factor the transfer function in terms of these poles and zeros:
where \(z_{k}\) are the M zeros of the system, and \(p_{k}\) are the N poles.
Because the coefficients of the numerator and denominator polynomials are real, the corresponding roots (poles and zeros) must occur in complex conjugate pairs.
Thus, the poles and zeros are either real or form pairs that are symmetric with respect to the real axis in the complex \(s\)-plane. In addition, it can be shown that for systems that are stable and causal, the poles all have real parts \(\le 0\).
Recall that the Laplace transform variable is given by \(s=\sigma+j\omega\). Along the imaginary axis, \(\sigma=0\) and hence \(s=j\omega\). Thus, we may express the complex frequency response of the analog stage by calculating its polezero expansion
where \(s=j2\pi f\) [rad/s] or \(s=jf\) [Hz].
Thus, given the poles and zeros of an analog stage, in order to properly calculate the stage frequency response, we must know the units of \(s\) used to calculate the poles and zeros.
In StationXML, these units are specified by the PzTransferFunctionType element within the PolesZerosType response stage:
<Stage number="1"> <PolesZeros> ... </OutputUnits> <PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType> <NormalizationFactor>1.0</NormalizationFactor> <NormalizationFrequency unit="HERTZ">1.0</NormalizationFrequency>
where the possible values for PzTransferfunctionType are:
“LAPLACE (RADIANS/SECOND)”
“LAPLACE (HERTZ)”
“DIGITAL (Z-TRANSFORM)” (Discussed in next section)
Note also the <NormalizationFrequency> with unit “HERTZ”. These units are distinct from those used to identify \(s\) above. The <NormalizationFrequency> specifies the frequency (in Hz) at which the polezero transfer function is normalized. The recommended practice is to choose a value of normalization factor, \(A_0\), that normalizes the polezero expansion to unity at the specified normalization frequency, \(f_n\):
The z-Transform
Introduction
The z-Transform is defined by
where
Notice that on the unit circle, where \(|z|\equiv |r|=1\) and \(z=e^{j\omega}\) , the z-transform reduces to the discrete Fourier transform (DTFT):
The z-transform measures the similarity between the input signal \(x[n]\) and the signal \(z^{-n}\).
\(z^{-n}\) represents exponentially increasing (for r < 1) or decreasing (r > 1) sinusoids. e.g., \(e^{-j\omega n}\) is a sinusoid with angular frequency \(\omega\) [radians/sample] that expands with sample number n.
Thus, the location (value) of \(z\) in the complex plane controls what \(z^{-n}\) looks like.
The fractional or angular frequency, \(\omega\) [radians/sample] is related to the linear frequency of the sinusoid through
so the number of samples/cycle is given by
and this corresponds to a period of \(T=N\Delta t\) [seconds],
where \(\Delta t\) is the sampling interval (secs) and is related to the sampling rate by: \(f_{s}=\frac{1}{\Delta t}\). Then the frequency of oscillation is given by \(f=\frac{1}{T}=\frac{1}{N\Delta t}=\frac{f_{s}}{N}\) [Hz]
In other words, as the angle in the complex z-plane goes from \(\omega=0\) to \(\omega=\pi\), the linear frequency goes from \(f=0\) to \(f=f_{Nyq}\) [Hz], where the Nyquist frequency, \(f_{Nyq}=\frac{f_s}{2}\) [Hz].
Thus, in implementing the frequency response of the z-transform (e.g., when calculating the response of a FIR filter), it is common to write it in a way that removes the dependency on the actual sample rate, or
Difference Equations
z-transforms of linear time-invariant (LTI) systems described by difference equations play an important role in signal processing.
The general form of a difference equation is:.
where \(a_{0}\ne0\) (the coefficient of y[n] can’t be zero)
Taking the z-transform of both sides,
or
From this we can write the system transfer function
The transfer function is the z-transform of the system impulse response, \(h[n]\), or
The transfer function can also be factored in terms of poles and zeros (for \(b_{0}\ne0\))
where \(c_{k}\) are the M zeros of the system, and \(d_{k}\) are the N poles.
For a system to be both stable and causal, its poles must lie inside the unit circle, or \(|d_{k}|<1\) for \(k=1,N\).
z-Transform Frequency Response
How does the location of the poles and zeros of the z-transform influence the complex frequency response, \(H(f)\) ?
We start by only considering the magnitude response, \(|H(f)|\).
The z-transform only exists within a region of the complex z-plane where the infinite sum converges. We call this region the Radius of Convergence (ROC) of the system.
If our system, described by difference equations, is stable, then the ROC must include the unit circle, \(|z|=1\) where
The magnitude of the product is equal to the product of the magnitude, thus
In other words, as we traverse the unit circle through circular ‘frequency’, \(\omega\), from \(0-2\pi\), the magnitude of the response depends on the distance between the point on the unit circle, \(e^{j\omega}\), and the zeros, \(|e^{j\omega}-c_k|\), as well as the distance between the point and the poles, \(|e^{j\omega}-d_k|\), or
Thus, \(|H(e^{j\omega})|\) is small when \(e^{j\omega}\) is near the zeros and it is large when \(e^{j\omega}\) is near the poles.
Examples
Consider a system with zeros at \(z=1,-1\) and poles at \(z=0.95e^{\pm j\pi/4}\), with response function


Poles near the unit circle push the magnitude response up at those frequencies, while zeros near the unit circle pull it down; if the zero is actually on the unit circle, then it forces the magnitude response to be exactly 0 at that frequency.
Here’s an example pass-band filter comprised of 8 poles and 8 zeros. We can predict from the position of the poles and zeros that the frequency response will be 0 at \(\omega=0\) and will be maximum near \(\omega=\frac{\pi}{2}\).

FIR-IIR Filters
Introduction
As we’ll see in the next section, each of the multiple stages that comprise an instrument response can be thought of as a filter that modifies the amplitude and phase of the original signal (e.g., ground motion) in some way.
In fact, to truly understand instrument response and data processing in general, it is necessary to have some familiarity with digital signal processing.
There are two categories of discrete-time filters that we routinely encounter in seismology:
FIR filters (Finite Impulse Response)
IIR filters (Infinite Impulse Response)
Both filters can be constructed using difference equations, hence, they are often represented in terms of their z-transforms.
FIR filters can be written as:
while IIR filters can be written as:
FIR filters can be thought of as a sum of weighted values of past inputs, \(x[n-k]\) (the so called moving average filter). IIR filters have this same moving average component, but also offer the possibility of feedback, since the current output \(y[n]\) can also depend on a weighted combination of past outputs, \(y[n-k]\).
For a finite input impulse, the subsequent impulse response of a FIR filter is finite. However, because of the dependence on past outputs, the impulse response of the IIR filter is, at least in theory, infinite; it continues long after the input signal has finished.
In the FIR case, the system function, found by taking the z-transform of the difference equation, can be written
while for the IIR case, the system function is
where \(a_0=1\).
The system functions can be factored in terms of their poles and zeros as
Thus, the FIR filter has arbitrary zeros, but only has poles at the origin (\(z=0\)). However, poles (or zeros for that matter) at the origin don’t affect the frequency response since they are located a fixed distance (\(|z|=1\)) from the unit circle.
In contrast, the IIR filter may have both zeros and poles at arbitrary locations, making them especially flexible.
The corresponding impulse responses are found by taking the inverse z-transform of the system functions,
Thus the FIR impulse response is given by the difference equation coefficients, \(b_k\), themselves, and the impulse response dies after \(M\) terms.
The impulse response of the causal parts of the IIR filter can be written as
where \(u[n]\) is the unit step function (\(u[n]=1,n\ge 0\)).
Because of the geometric series \(d_k^{n}\), the IIR impulse response decays but never actually reaches zero.
FIR vs IIR
The primary distinguishing factor between FIR and IIR filters is this:
FIR filters are guaranteed to have a linear phase response, which is much easier to deal with, while IIR filters have non-linear phase response.
Some pros and cons of each filter type is summarized below.
FIR Filters:
- Pros
Can be designed using optimization techniques to match a desired magnitude/phase response
Allow for arbitrary magnitude/phase response
Allow for linear or zero phase response (no distortion)
Are always stable
- Cons
Can require a large number of coefficients (e.g., \(M\approx 100\)) to achieve desired accuracy, particularly for steep filters.
IIR Filters:
- Pros
Can be implemented very efficiently - fewer coefficients than FIR for comparable frequency selective filter accuracy (e.g., \(M\approx N\approx 8\))
Filtering is fast
- Cons
Generally can’t use optimization techniques to design
Better approach is to start from a well-known analog filter design and transform it to discrete-time filter.
Limited to frequency selective filters (e.g., bandpass, high-pass, etc)
Phase is nonlinear (will always cause phase distortion within the passband)
Zero phase filters are impossible to implement exactly (you can get this by filtering forward + backward, but this can’t be implemented in real-time!)
In spite of the cons listed above, there are some instances where IIR filters are preferred. For instance, for implementing maximally flat selective filters (e.g., Butterworth bandpass filters) or for modeling the behavior of systems with feedback.
Nevertheless, the vast majority of filters encountered in seismic metadata are anti-alias filters used at each decimation stage of the digitizer, and the digital anti-alias filters most commonly used are linear phase FIR filters that produce a constant time shift.
Hence, in what follows we will concentrate on FIR filters.
Classification of FIR Filters
FIR filter frequency response can be written
where in the last expression, we identify the filter coefficients \(b_{k}\) as the impulse response values: \(h[k]=b_k\) to show that the output of the FIR filter is the convolution of the input signal \(x[n]\) with the filter impulse response.
It can be shown that the FIR filter response has generalized linear phase of the form,
where \(A(e^{j\omega})\) describes the real amplitude, \(\beta\) is a constant phase factor, and \(\alpha\) is the constant group delay.
A consequence of this constant group delay (also called phase delay) is that the shape of the input waveform is not changed; all frequencies are delayed the right amount so that they add together in the same way to form the output signal. The resulting output signal has the same shape as the input signal but is delayed in time.
- Some general observations about FIR filters are:
FIR filters contain as many poles as they have zeros.
The number of zeros (poles), \(M\), is called the order of the FIR filter
All the poles are located at the origin (inside the unit circle), hence FIR filters are said to be stable.
These poles don’t affect the magnitude of the frequency response, only the phase.
Note that a filter of order M has length M+1.
FIR filters with generalized linear phase are often divided into 4 types depending on whether the order M is even or odd, so that the number of points is either odd or even, and whether the impulse response (=FIR coefficients) exhibits even or odd symmetry about the middle point.
FIR filters with symmetrical impulse response are often called two-sided or acausal. As a consequence of the symmetry of the filter impulse response, the onsets of very impulsive signals (with energy at frequencies near the Nyquist cut-off for the FIR filter), may be contaminated by precursory (=acausal) oscillations.
Type I: M even
M even + even symmetry about the midpoint M/2
Note that in this case, there will be M+1 (odd) points in the filter and M/2 will fall on an index right in the middle:
\[h[k]=h[M-k],0\le k\le M\]We can write out the frequency response and use symmetry to simplify,
\begin{eqnarray} H(e^{j\omega})&=&\sum_{k=0}^{M}h[k]e^{-j\omega k} \\ &=&h[0]+h[1]e^{-j\omega\cdot1}+h[2]e^{-j\omega\cdot2}+...+h[M-1]e^{-j\omega\cdot(M-1)}+h[M]e^{-j\omega\cdot M} \\ &=&e^{-j\omega\frac{M}{2}}\Big[h[0]e^{+j\omega\frac{M}{2}}+h[1]e^{-j\omega\cdot1}e^{+j\omega\frac{M}{2}}+...+h[M-1]e^{-j\omega\cdot(\frac{M}{2}-1)}+h[M]e^{-j\omega\frac{M}{2}}\Big] \\ &=&e^{-j\omega\frac{M}{2}}\Big[h[0]e^{+j\omega\frac{M}{2}}+h[M]e^{-j\omega\frac{M}{2}}+h[1]e^{-j\omega\cdot1}e^{+j\omega\frac{M}{2}}+...+h[M/2+1]e^{-j\omega\cdot1}+h[M/2]\Big] \\ &=&e^{-j\omega\frac{M}{2}}\Big[h[0](e^{+j\omega\frac{M}{2}}+e^{-j\omega\frac{M}{2}})+h[1](e^{+j\omega(\frac{M}{2}-1)}+e^{-j\omega(\frac{M}{2}-1)})+...+h[M/2-1](e^{+j\omega}+e^{-j\omega})+h[M/2]\Big] \\ &=&e^{-j\omega\frac{M}{2}}\Big[h[0]2cos(\frac{M}{2}\omega)+h[1]2cos((\frac{M}{2}-1)\omega)+...+h[M/2-1]2cos(\omega)+h[M/2]\Big] \\ H(e^{j\omega})&=&e^{-j\omega\frac{M}{2}}\sum_{k=0}^{M/2}a[k]cos(\omega k) \end{eqnarray}where \(a[0]=h[M/2],a[1]=2h[M/2-1],...,a[M/2]=2h[0]\).
In general, \(a[0]=h[\frac{M}{2}]\), and \(a[k]=2h[\frac{M}{2}-k],k=1,...,\frac{M}{2}\).
The \(a[k]\) coefficients are real, hence the sum is real, and the response satisfies the generalized linear phase property:
\[H(e^{j\omega})=A(e^{j\omega})e^{-j(\omega\alpha+\beta)}\]Hence for Type I, the amp is: \(A(e^{j\omega})=\sum_{k=0}^{M/2}a[k]cos(\omega k)\), while the phase term is: \(e^{-j\omega\frac{M}{2}}\) and the corresponding group delay is: \(\alpha=\frac{M}{2}\).
Type II: M odd
M odd + even symmetry about the midpoint M/2
Note that in this case, there will be M+1 (even) points in the filter, hence the symmetry mid-point falls between two sample points.
\[h[k]=h[M-k],0\le k\le M\]By similar algebra as above, we can write the frequency response as
\[H(e^{j\omega})=e^{-j\omega\frac{M}{2}}\sum_{k=1}^{\frac{(M+1)}{2}}b[k]cos(\omega(k-\frac{1}{2}))\]where \(b[k]=2h[(\frac{(M+1)}{2}-k],k=1,...,\frac{(M+1)}{2}\).
Thus, this system also has group delay \(\alpha=\frac{M}{2}\).
Type III/IV anti-symmetric
Type III (M even) and Type IV (M odd) FIR filters exhibit anti-symmetry about the midpoint: \(h[k]=-h[M-k]\).
As a result, their expansions reduce to summation of sine functions and can’t be used to implement low-pass filters, hence they are not used for anti-alias filtering.
Practical Concerns
Thus, we normally use FIR filters of type I or II for anti-alias filtering. Because of their symmetry, only half the coefficients need to be stored in the metadata.
In StationXML, a FIR filter can be represented using a FIR response stage, with sub-element indicating the symmetry (ODD/EVEN/NONE). Note that here, both ODD and EVEN symmetry refer to a symmetric FIR filter (there is no flag to indicate an asymmetric filter), with the ODD symmetry indicating the total number of FIR coefficients, M, is odd (so that the point of symmetry corresponds to index (M-1)/2 in the coefficient array. This is also referred to as a “Type I” FIR filter in digital signal processing literature and is often used in seismic datalogger downsampling sequences. In contrast, a symmetric FIR filter with EVEN symmetry has a total number of FIR coefficients, M, that is even. As a result, there is no actual index at the point of symmetry. This is also referred to as a “Type II” FIR filter.
The purpose of the Symmetry element is to obviate the need to enter the entire M FIR coefficients when the filter is symmetric (ODD or EVEN). In the case of EVEN symmetry, only the unique M/2 coefficients need to be supplied, while in the case of ODD symmetry, the number of unique coefficients is M/2 + 1. In the case of EVEN symmetry (an even total number of coefficients), there will be an even number of unique coefficients. However, importantly, in the case of ODD symmetry (an odd total number of coefficients), the number of unique coefficients specified in the StationXML may be either odd or even.
This simple example illustrate when to use ODD or EVEN :
<FIR> <Symmetry>ODD</Symmetry> <NumeratorCoefficient i="1">0.1</NumeratorCoefficient> <NumeratorCoefficient i="2">0.4</NumeratorCoefficient> <NumeratorCoefficient i="3">0.5</NumeratorCoefficient> </FIR>
which expands to be equivalent to:
<FIR> <Symmetry>NONE</Symmetry> <NumeratorCoefficient i="1">0.1</NumeratorCoefficient> <NumeratorCoefficient i="2">0.4</NumeratorCoefficient> <NumeratorCoefficient i="3">0.5</NumeratorCoefficient> <NumeratorCoefficient i="4">0.4</NumeratorCoefficient> <NumeratorCoefficient i="5">0.1</NumeratorCoefficient> </FIR>
and also
<FIR> <Symmetry>EVEN</Symmetry> <NumeratorCoefficient i="1">0.1</NumeratorCoefficient> <NumeratorCoefficient i="2">0.4</NumeratorCoefficient> <NumeratorCoefficient i="3">0.5</NumeratorCoefficient> </FIR>
which expands to be equivalent to:
<FIR> <Symmetry>NONE</Symmetry> <NumeratorCoefficient i="1">0.1</NumeratorCoefficient> <NumeratorCoefficient i="2">0.4</NumeratorCoefficient> <NumeratorCoefficient i="3">0.5</NumeratorCoefficient> <NumeratorCoefficient i="4">0.5</NumeratorCoefficient> <NumeratorCoefficient i="5">0.4</NumeratorCoefficient> <NumeratorCoefficient i="6">0.1</NumeratorCoefficient> </FIR>
Note that one cannot tell the “symmetry” (ODD/EVEN/NONE) just by looking at the (possibly reduced) number of coefficients in the StationXML FIR element.
When in doubt, simply enter all of the FIR coefficients with Symmetry = None, so that no assumptions will be made when calculating the frequency response of the filter.
In practice, even symmetric FIR filter coefficients are often stored in a Coefficients response stage.
This is how the FIR response is calculated in ObsPy, which uses the venerable evalresp C code underneath the hood.
Note that in evalresp, this type of filter is termed FIR_ASYM, meaning it can handle both symmetric (about the mid-point) and non-symmetric FIR coefficients. All of the coefficients are used in the expansion to calculate the filter response.
In contrast, IIR filter coefficients can’t be stored in a FIR response stage, since it only allows for numerator coefficients. IIR filter coefficients can be stored in a Coefficients response stage. However, IIR responses are very sensitive to round-off errors in the values of the stored coefficients and can become unstable. Therefore, many IIR filters are instead stored as a PolesZeros response stage of type ‘D’ (digital) and are expanded in terms of the poles and zeros of the z-transform as discussed above.
Convolution
Introduction
As we’ll see in the next sections, a geophysical sensor (e.g., seismometer) connected to a datalogger that digitizes and records the input signal (e.g., ground motion), represents a linear time-invariant (LTI) system. We can thus model the overall effect of the instrumentation on the input signal as a linear combination of stages representing each component of the instrumentation. The stages are connected sequentially so that the output of stage 1, representing the sensor, forms the input of stage 2, which might represent either a preamplifier or a digitizer. As the input signal passes through each stage, we say that it is “convolved” with the impulse response of that stage, to form the output signal that then becomes the input signal for the subsequent stage.
Convolution is a mathematical operation between two functions. For instance, if function \(f(t)\) represents the input signal to a stage, and function \(g(t)\) represents the impulse response of the stage, then the output of the stage is the convolution between \(f(t)\) and \(g(t)\).
Given two functions \(f(t)\) and \(g(t)\) defined for all \(t\ge 0\), their convolution at time \(t\) is defined by:
where \(*\) represents the convolution operator.
Suppose that f and g are piecewise continuous and of exponential order. Then
Where \(L\) is the Laplace Transform operator.
Proof
If we extend the functions \(f\) and \(g\) to be 0 for \(t<0\), then the integral above is the same as
i.e., for \(\tau>t\), \((t-\tau)<0\) and \(f(t-\tau)=0\).
So we can write the Laplace Transform as
Interchanging the order of integration gives
Substitute \(u=t-\tau,du=dt\),
or
In other words, the Laplace Transform of the convolution of \(f\) and \(g\), is equal to the product of the Laplace Transform of \(f\) times the Laplace Transform of \(g\). This holds true for all of the “frequency” transforms (Fourier, Laplace, z).
It is for this reason that most instrument response calculations are performed in the frequency domain, by multiplying the frequency response of subsequent stages (or filters) together.
References
Haykin, S. and B. Van Veen. Signals And Systems. Wiley, Somerset, New Jersey, 2002.
Oppenheim, A.V. and R.W. Schafer. Discrete-Time Signal Processing. Prentice Hall, Englewood Cliffs, New Jersey, 1989.
Ringler, A. T. and P. Bastien (2020). A brief introduction to seismic instrumentation: Where does my data come from?, Seis. Res. Lett., 91 (2A), 1074-1083
Ringler, A. T. and J. R. Evans (2015). A quick SEED tutorial, Seis. Res. Lett., 86 (6), 1717-1725.
Scherbaum, F. Of Poles and Zeros: Fundamentals of Digital Seismology. Kluwer Academic. 2nd Edition. 2001.
Steim, J.M. Theory and Observations - Instrumentation for Global and Regional Seismology. In: Gerald Schubert (editor-in-chief) Treatise on Geophysics, 2nd edition, Vol 1. Oxford: Elsevier; 2015. p. 29-78.
Practical Instrument Response
Introduction
Geophysical data are recorded by an instrument that imparts its own signature onto the data. When the data are later analyzed, one of the first steps is to remove the effect of the instrumentation used to record it, the so-called instrument response. This is typically done in the frequency domain, by dividing the complex Fourier Transform of the data by the complex Fourier Transform of the instrument response.
where \(X(f)\) is the Fourier Transform of the recorded time series, \(I(f)\) is the Fourier Transform of the instrument response, and \(Z(f)\) is the Fourier Transform of the data with the instrument response removed.
So how does one obtain the Fourier Transform of the instrument response? Very often, this is calculated by combining the information describing each stage of the instrument response in specific formats.
Sensor Response as a Linear Sequence of Stages

A recording system (sensor + datalogger) represents a linear, time-invariant system. As such, the total response of the system (= the instrument response) can be calculated by linearly combining the response of each individual stage in the system. In the time domain, the operator that represents linear combination in this way is convolution, however, it’s difficult to visualize the result of convolving several stages together. Fortunately, in the frequency domain, the operator that links the individual stage responses together is multiplication, and it’s trivial to combine stage responses together.
The schematic shown in the figure above represents a generic ideal of the instrument response as a sequence of stages. Where each stage is implemented in the hardware, e.g., whether it physically resides in the sensor or the datalogger (or whether these are integrated into a single unit) is not specified.
A more specific description of instrument response particular to most seismic instrumentation is this: The ground motion (typically velocity or acceleration) is “input” to the seismic sensor which outputs continuous voltage (an analog signal) proportional to the input in some way. This continuous voltage could then be amplified, either by an external preamplifier (+ filter possibly) or, more commonly, by circuitry within the datalogger itself. Next, the continuous signal is sampled by the ADC (analog-to-digital conversion) circuit of the datalogger, resulting in discrete data samples.
Typically, the sampling is done over a sequence of stages where the first stage highly oversamples the input data. Each subsequent stage is a combination of low-pass filter, typically implemented using a FIR filter, followed by decimation of the data stream by some decimation factor. This anti-alias FIR filter is necessary at each decimation step to avoid aliasing of energy above the Nyquist frequency, which would contaminate the signal of interest. This cascade of filter/decimate stages begins at the high sample rate (e.g., 102400 samples per second for the Reftek RT130) and continues, with typical integer decimation factors (2,4,5,8,10,16 etc) at each step, until the final desired output sample rate is reached. Thus, the input units of the first sensor stage is the ground motion (e.g., m/s), while the input units of the first datalogger stage is Volts. After the ADC, the input/output units for each subsequent stage is Counts.
Stage 1: The Analog Sensor
The first stage of the response often represents the effect of an analog sensor (e.g., seismometer, microphone, etc), which takes as input a physical quantity (e.g., ground motion in \(\mu ms^{-1}\), air pressure in \(Pa\), temperature in \(^{\circ}C\), etc.) and outputs Volts.
We need some way to represent how this sensor stage works and what distortion, if any, it applies to the underlying time series (the input physical quantity).
Commonly, the analog sensor stage is stored as a sequence of poles and zeros of the Laplace Transform (see Laplace Transform description above) along with associated scale factors.
Recall that the Laplace transform variable is given by \(s=\sigma+j\omega\). Along the imaginary axis, \(\sigma=0\) and hence \(s=j\omega\). Thus, we may express the complex frequency response of the analog stage by calculating its polezero expansion
where \(s=j2\pi f\) [rad/s] or \(s=jf\) [Hz] , \(z_k\) are the \(M\) zeros and \(p_k\) are the \(N\) poles. \(A_0\) is the normalization factor, typically chosen so that \(|H(f_n)|=1.0\) where \(f_n\) is the normalization frequency.
Thus, given the poles and zeros of an analog stage, in order to properly calculate the stage frequency response, we must know the units of \(s\) (Hz or rad/s) used to calculate the poles and zeros using the expansion above.
With the normalization factor \(A_0\), the polezero expansion results in a complex frequency response with magnitude = 1.0 at the normalization frequency. For seismometers whose response is flat to ground velocity, the normalization frequency is typically chosen somewhere within the flat part of the response spectrum. For broadband sensors, it is also considered good practice to select a normalization frequency lower than two times the lowest sampling frequency. For example, if you are sampling VHZ data at 0.1 sps, then you want to describe \(A_0\) at a frequency \(\lt 0.05\) Hz.
Thus, the poles and zeros give the shape of the sensor response, but not the gain (see Fig. X below).
Analog polezero examples
Below are the poles and zeros for two broadband seismometers (STS-1 and STS-2) and a short-period sensor (L-22D). All have a response that is flat to velocity within some frequency band, which is controlled by the location of the poles and zeros in the \(s\)-plane.
Sensor: Streckeisen STS-2 (3rd Generation) |
|||
---|---|---|---|
Gain: |
1500 [V/m/s] |
Freq of gain: |
1.0 [Hz] |
A0 normalization: |
3.4684E+17 |
Freq of normalization: |
1.0 [Hz] |
Poles: |
Zeros: |
||
real (rad/s) |
imag (rad/s) |
real (rad/s) |
imag (rad/s) |
-0.037 |
-0.037 |
0.0 |
0.0 |
-0.037 |
+0.037 |
0.0 |
0.0 |
-15.54 |
0.0 |
15.15 |
0.0 |
-97.34 |
-400.7 |
-176.6 |
0.0 |
-374.8 |
0.0 |
-463.1 |
-430.5 |
-97.34 |
+400.7 |
-463.1 |
+430.5 |
-520.3 |
0.0 |
||
-10530.0 |
-10050.0 |
||
-10530.0 |
+10050.0 |
||
-13300.0 |
0.0 |
||
-255.097 |
0.0 |
Sensor: Streckeisen STS-1 |
|||
---|---|---|---|
Gain: |
2400 [V/m/s] |
Freq of gain: |
0.02 [Hz] |
A0 normalization: |
3.94858E+03 |
Freq of normalization: |
0.02 [Hz] |
Poles: |
Zeros: |
||
real (rad/s) |
imag (rad/s) |
real (rad/s) |
imag (rad/s) |
-0.01234 |
+0.01234 |
0.0 |
0.0 |
-0.01234 |
-0.01234 |
0.0 |
0.0 |
-39.18 |
+49.12 |
||
-39.18 |
-49.12 |
Sensor: Sercel L-22D |
|||
---|---|---|---|
Gain: |
87.9 [V/m/s] |
Freq of gain: |
10.0 [Hz] |
A0 normalization: |
1.0 |
Freq of normalization: |
10.0 [Hz] |
Poles: |
Zeros: |
||
real (rad/s) |
imag (rad/s) |
real (rad/s) |
imag (rad/s) |
-8.884 |
+8.887 |
0.0 |
0.0 |
-8.884 |
-8.887 |
0.0 |
0.0 |
Notice from the table above that the poles always appear in complex conjugate pairs (in the degenerate case this is represented by a single real pole). This will always be the case, since the poles and zeros ultimately relate to a polynomial expression with real coefficients that describes the seismometer response. In addition, notice that all of the poles have a negative real part. This is required for stability reasons as discussed in the theory section above.
The poles and zeros have units in the complex s-plane. For the examples given (and for most analog stages), <PzTransferFunctionType> is “LAPLACE (RADIANS/SECOND)”, hence the poles and zeros have units of rad/s.
When viewing the total instrument response as a plot of amplitude and phase versus frequency, most of the shape is controlled by the polezero expansion of the analog sensor stage.

Fig. X Plot of polezero expansion of analog sensor for Streckeisen STS-2 (green) and Sercel L-22D (red) [see table for polezero values used].
In the figure above we plot the analog stage polezero expansion for a broadband seismometer (STS-2) and a short-period seismometer (L-22D). In both cases, the A0 normalization frequency, \(f_n\) is located within the flat part of the spectrum, and each response has a corner frequency, \(f_c\) below which the magnitude response rolls off. The corner frequency is the frequency at which the response magnitude is -3dB below the flat part of the spectrum.
Given the poles and zeros, one can determine the low-frequency corner frequency, \(f_c\), from the magnitude of the lowest frequency pole in the s-plane.
For instance, for the STS-2 example shown, the lowest frequency pole is at \(-.037 \pm .037j\) in the complex s-plane, and the corresponding corner frequency is:
As expected, the STS-2 sensor has a corner period of 120 s.
By similar reasoning, the corner frequency of the short-period L-22D sensor is
For many applications the exact instrument response is not needed and it is sufficient to calculate a single scale factor to convert from recorded COUNTS to ground motion (e.g, M/S). For instance, if the signal of interest only contains energy within the flat part of the spectrum (e.g., band-limited signal), then we might be able to ignore the polezero shape altogether and compute and overall scale factor (to go from COUNTS to M/S) for the sensor + datalogger.
For instance, if the STS-2 sensor discussed above were connected to a generic Reftek RT-130 datalogger, we can calculate an approximate forward scale factor:
While this is often done to do a quick conversion to ground velocity, several caveats must be mentioned.
Very few signals are truly bandlimited this way and we’re essentially applying the wrong correction factor to the signals outside the bandwidth
Often, the frequency at which the sensor response is normalized, is not the same as the frequency at which the datalogger response is normalized. For instance, the Reftek RT-130 is normalized at 0.05 Hz, while the STS-2 is normalized at 1.0 Hz. This matters because the amplitude response of the datalogger filters are not perfectly flat, hence to compute the overall instrument response (sensor + datalogger), the datalogger gain often has to be recalculated at the frequency of the sensor normalization.
It ignores the phase response, which can be very important for modeling waveforms, etc.
Alternatively, when simple scaling is insufficient, it is necessary to use all of the response stages to compute the exact instrument response. When the datalogger normalization frequency is different from the sensor normalization frequency, the datalogger response is recalculated at the sensor normalization frequency and the new sensitivity, equal to the product of each stage amplitude response at this normalization frequency, is stored in the StationXML <InstrumentSensitivity> element.
Converting s = rad/s to/from Hz
Recall the polezero expansion of the Laplace Transform of the transfer function,
Consider a system with 1 zero and 2 poles (forming a complex conjugate pair) in the complex \(s\)-plane (rad/s). Say \(z_{1}=z_{r}+jz_{i}\), \(p_{1}=p_{r}+jp_{i}\) and \(p_2=\bar{p_1}\), where each term \(z_r, z_i, p_r, p_i\) has units of rad/s.
Then
where the primed quantities equal the unprimed quantities divide by \(2\pi\), e.g., \(z_r^{'}=\frac{z_r}{2\pi}\)
We can write this as
where \(A_{0}^{'}=\frac{2\pi}{(2\pi)^{2}}A_0\).
In general, we can write
where \(A_{0}^{'}=A_{0}\cdot(2\pi)^{M-N}\) and where \(M\) is the number of zeros and \(N\) is the number of poles.
Thus, if we are given a polezero stage with units of rad/s (\(\omega\)), we can convert this stage to units of Hz and maintain the proper normalization by first dividing each pole and zero by \(2\pi\), and then scaling the normalization factor \(A_{0}\) by \((2\pi)^{M-N}\).
Conversely, if we are given a polezero stage with units of Hz (\(f\)), we can convert it to units of rad/s by first multiplying the each pole and zero by \(2\pi\), and then scaling the given normalization factor \(A_{0}^{'}\) by \((2\pi)^{N-M}\).
For example, the poles and zeros of the Streckeisen STS-I sensor are shown in the table below for units = Hz (<PzTransferFunctionType>LAPLACE (HERTZ)</PzTransferFunctionType>)
Sensor: Streckeisen STS-1 poles and zeros given in Hz |
|||
---|---|---|---|
Gain: |
2400 [V/m/s] |
Freq of gain: |
0.02 [Hz] |
A0 normalization: |
1.0001869E+02 |
Freq of normalization: |
0.02 [Hz] |
Poles: |
Zeros: |
||
real (Hz) |
imag (Hz) |
real (Hz) |
imag (Hz) |
-0.0019639 |
+0.0019639 |
0.0 |
0.0 |
-0.0019639 |
-0.0019639 |
0.0 |
0.0 |
-6.2357 |
+7.8177 |
||
-6.2357 |
-7.8177 |
Stage 2: The Preamplifier
Not all response sequences have a preamplifier. When present, it may be implemented using an analog circuit (V->V) or it may be a digital circuit integrated within the analog-to-digital (datalogger) recorder itself.
For example, an analog preamplifier stage with a gain of 8 would be represented as:
<Stage number="2">
<StageGain>
<Value>8</Value>
<Frequency>1</Frequency>
</StageGain>
</Stage>
where the <Frequency> is normally chosen to be the same as the normalization frequency, \(f_n\) in stage 1.
An external preamplifier stage could have an associated filter, either implemented using a polezero or coefficient representation.
Often, the preamplifier is integrated with the datalogger and merely adds a uniform scale factor to the instrument response.
Warning
Using place-holder preamplifiers at stage 2 may not be good practice.
Some entities (e.g., the Nominal Response Library or NRL) always include a preamplifier at stage 2 in order to standardize the numbering of response stages (e.g., so that the datalogger response always begins at stage 3). If no preamplifier was actually present, then a place-holder stage with gain=1 is used.
However, there is disagreement about whether all responses should have such a place-holder stage or whether it is better practice to have the response stages more faithfully correspond to the equipment that is actually used.
Stage 2+: The Datalogger
The datalogger, or analog-to-digital converter (ADC) has two main functions: 1. To digitize the analog signal (Volts) coming from the sensor and 2. To output the digitized signal (digital counts) at the desired sample rate(s).
These functions are typically achieved by first highly oversampling the analog signal, and then passing it through a sequence of filter/decimate steps to achieve the desired output sample rate(s).
Each filter/decimate step is represented by a stage in the StationXML response, representing the effects of low-pass filtering (typically implemented with an anti-alias FIR filter) and decimation to a lower sample rate.
FIR anti-alias filter
The recommended practice for storing FIR filters is to normalize the filter response at a specified frequency:
where \(b_k\) are the FIR coefficients, \(M\) is the filter order, \(\Delta t\) is the sample rate [seconds], and \(f_s\) is the frequency at which the filter is normalized to have a gain of \(S_d\).
The Quanterra QDP380/QDP680 family of dataloggers employ the 64-element FIR filter described in Table X as a digital anti-alias filter in the stage 4 decimation from 40Hz down to 20 Hz.
The FIR coefficients, \(b_k\) are plotted in Fig. X

Fig. X Plot of filter coefficients for Qx80 FIR filter
The FIR filter has 64 coefficients (order M = 64-1 = 63) and is symmetric about the midpoint (which lies in between samples 32 and 33). Hence it is a FIR Type II symmetric filter.
Decimation
In the normal process by which the datalogger holds and samples information, followed by decimation, a time delay is often introduced into the recorded trace (see Fig. X). This delay, if known, can be stored in the <Delay> element. For example, a delay of 1.0 seconds would be stored as:
<Response>
<Stage>
<Decimation>
<Delay>1.0</Delay>
</Decimation>
</Stage>
</Response>
while any applied time correction, e.g., to cancel out the delay, can be stored in:
<Response>
<Stage>
<Decimation>
<Correction>1.0</Correction>
</Decimation>
</Stage>
</Response>
An anti-alias FIR filter normally introduces a positive delay into the recorded trace as indicated in the figure. If this delay is removed from the data, e.g., by introducing a negative offset -x prior to recording, then the positive value +x is stored in the <Correction> element.

StationXML Response Examples
Broadband sensor
3rd generation Streckeisen STS-2 sensor + Reftek RT130 datalogger
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?> <FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd" schemaVersion="1.2"> <Source>isti</Source> <Created>2020-06-05T21:58:37.500208Z</Created> <Network code="XX"> <Station code="ABCD"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Site> <Name>Nowhere</Name> </Site> <Channel code="BHZ" locationCode="10"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Depth>0.0</Depth> <Azimuth>0.0</Azimuth> <Dip>-90.0</Dip> <SampleRate>40.0</SampleRate> <Sensor><Description>STS-2</Description></Sensor> <DataLogger><Description>Reftek RT130</Description></DataLogger> <Response> <InstrumentSensitivity> <Value>941864732.693</Value> <Frequency>1.0</Frequency> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> </InstrumentSensitivity> <Stage number="1"> <PolesZeros> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>V</Name> <Description>Volts</Description> </OutputUnits> <PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType> <NormalizationFactor>3.4684e+17</NormalizationFactor> <NormalizationFrequency unit="HERTZ">1.0</NormalizationFrequency> <Zero number="0"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Zero number="1"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Zero number="2"> <Real>-15.15</Real> <Imaginary>0.0</Imaginary> </Zero> <Zero number="3"> <Real>-176.6</Real> <Imaginary>0.0</Imaginary> </Zero> <Zero number="4"> <Real>-463.1</Real> <Imaginary>-430.5</Imaginary> </Zero> <Zero number="5"> <Real>-463.1</Real> <Imaginary>430.5</Imaginary> </Zero> <Pole number="0"> <Real>-0.037</Real> <Imaginary>-0.037</Imaginary> </Pole> <Pole number="1"> <Real>-0.037</Real> <Imaginary>0.037</Imaginary> </Pole> <Pole number="2"> <Real>-15.64</Real> <Imaginary>0.0</Imaginary> </Pole> <Pole number="3"> <Real>-97.34</Real> <Imaginary>-400.7</Imaginary> </Pole> <Pole number="4"> <Real>-97.34</Real> <Imaginary>400.7</Imaginary> </Pole> <Pole number="5"> <Real>-374.8</Real> <Imaginary>0.0</Imaginary> </Pole> <Pole number="6"> <Real>-520.3</Real> <Imaginary>0.0</Imaginary> </Pole> <Pole number="7"> <Real>-10530.0</Real> <Imaginary>-10050.0</Imaginary> </Pole> <Pole number="8"> <Real>-10530.0</Real> <Imaginary>10050.0</Imaginary> </Pole> <Pole number="9"> <Real>-13300.0</Real> <Imaginary>0.0</Imaginary> </Pole> <Pole number="10"> <Real>-255.097</Real> <Imaginary>0.0</Imaginary> </Pole> </PolesZeros> <StageGain> <Value>1500.0</Value> <Frequency>1.0</Frequency> </StageGain> </Stage> <Stage number="2"> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="3"> <Coefficients> <InputUnits> <Name>V</Name> <Description>Volts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>1.0</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">102400.0</InputSampleRate> <Factor>1</Factor> <Offset>0</Offset> <Delay>0.0</Delay> <Correction>0.0</Correction> </Decimation> <StageGain> <Value>629129.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="4"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000244141</Numerator> <Numerator>0.000976562</Numerator> <Numerator>0.00244141</Numerator> <Numerator>0.00488281</Numerator> <Numerator>0.00854492</Numerator> <Numerator>0.0136719</Numerator> <Numerator>0.0205078</Numerator> <Numerator>0.0292969</Numerator> <Numerator>0.0393066</Numerator> <Numerator>0.0498047</Numerator> <Numerator>0.0600586</Numerator> <Numerator>0.0693359</Numerator> <Numerator>0.0769043</Numerator> <Numerator>0.0820312</Numerator> <Numerator>0.0839844</Numerator> <Numerator>0.0820312</Numerator> <Numerator>0.0769043</Numerator> <Numerator>0.0693359</Numerator> <Numerator>0.0600586</Numerator> <Numerator>0.0498047</Numerator> <Numerator>0.0393066</Numerator> <Numerator>0.0292969</Numerator> <Numerator>0.0205078</Numerator> <Numerator>0.0136719</Numerator> <Numerator>0.00854492</Numerator> <Numerator>0.00488281</Numerator> <Numerator>0.00244141</Numerator> <Numerator>0.000976562</Numerator> <Numerator>0.000244141</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">102400.0</InputSampleRate> <Factor>8</Factor> <Offset>0</Offset> <Delay>0.00013672</Delay> <Correction>0.00013672</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="5"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000244141</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.225586</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.000244141</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">12800.0</InputSampleRate> <Factor>2</Factor> <Offset>0</Offset> <Delay>0.00046875</Delay> <Correction>0.00046875</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="6"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000244141</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.225586</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.000244141</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">6400.0</InputSampleRate> <Factor>2</Factor> <Offset>0</Offset> <Delay>0.0009375</Delay> <Correction>0.0009375</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="7"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000244141</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.225586</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.000244141</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">3200.0</InputSampleRate> <Factor>2</Factor> <Offset>0</Offset> <Delay>0.001875</Delay> <Correction>0.001875</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="8"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000244141</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.225586</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.000244141</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">1600.0</InputSampleRate> <Factor>2</Factor> <Offset>0</Offset> <Delay>0.00375</Delay> <Correction>0.00375</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="9"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000244141</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.225586</Numerator> <Numerator>0.193359</Numerator> <Numerator>0.12085</Numerator> <Numerator>0.0537109</Numerator> <Numerator>0.0161133</Numerator> <Numerator>0.00292969</Numerator> <Numerator>0.000244141</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">800.0</InputSampleRate> <Factor>2</Factor> <Offset>0</Offset> <Delay>0.0075</Delay> <Correction>0.0075</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="10"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>-7.15032e-07</Numerator> <Numerator>-5.60109e-06</Numerator> <Numerator>-2.62179e-06</Numerator> <Numerator>-4.31403e-05</Numerator> <Numerator>-4.64771e-06</Numerator> <Numerator>1.43006e-06</Numerator> <Numerator>2.34769e-05</Numerator> <Numerator>1.43006e-06</Numerator> <Numerator>-5.27932e-05</Numerator> <Numerator>-0.000366692</Numerator> <Numerator>0.000376107</Numerator> <Numerator>0.000854226</Numerator> <Numerator>3.05081e-05</Numerator> <Numerator>-0.00127621</Numerator> <Numerator>-0.000910951</Numerator> <Numerator>0.00127669</Numerator> <Numerator>0.00215165</Numerator> <Numerator>-0.000461554</Numerator> <Numerator>-0.00333765</Numerator> <Numerator>-0.00140933</Numerator> <Numerator>0.00377072</Numerator> <Numerator>0.00419414</Numerator> <Numerator>-0.00264288</Numerator> <Numerator>-0.00720121</Numerator> <Numerator>-0.000644006</Numerator> <Numerator>0.009184</Numerator> <Numerator>0.00608445</Numerator> <Numerator>-0.00857824</Numerator> <Numerator>-0.0127401</Numerator> <Numerator>0.00398225</Numerator> <Numerator>0.0186261</Numerator> <Numerator>0.0052052</Numerator> <Numerator>-0.0209407</Numerator> <Numerator>-0.0181629</Numerator> <Numerator>0.0166669</Numerator> <Numerator>0.0322447</Numerator> <Numerator>-0.00346588</Numerator> <Numerator>-0.0429528</Numerator> <Numerator>-0.0193265</Numerator> <Numerator>0.044309</Numerator> <Numerator>0.0497909</Numerator> <Numerator>-0.0294164</Numerator> <Numerator>-0.0826078</Numerator> <Numerator>-0.00934166</Numerator> <Numerator>0.107552</Numerator> <Numerator>0.0816604</Numerator> <Numerator>-0.10311</Numerator> <Numerator>-0.204208</Numerator> <Numerator>-3.12231e-05</Numerator> <Numerator>0.390432</Numerator> <Numerator>0.589958</Numerator> <Numerator>0.390432</Numerator> <Numerator>-3.12231e-05</Numerator> <Numerator>-0.204208</Numerator> <Numerator>-0.10311</Numerator> <Numerator>0.0816604</Numerator> <Numerator>0.107552</Numerator> <Numerator>-0.00934166</Numerator> <Numerator>-0.0826078</Numerator> <Numerator>-0.0294164</Numerator> <Numerator>0.0497909</Numerator> <Numerator>0.044309</Numerator> <Numerator>-0.0193265</Numerator> <Numerator>-0.0429528</Numerator> <Numerator>-0.00346588</Numerator> <Numerator>0.0322447</Numerator> <Numerator>0.0166669</Numerator> <Numerator>-0.0181629</Numerator> <Numerator>-0.0209407</Numerator> <Numerator>0.0052052</Numerator> <Numerator>0.0186261</Numerator> <Numerator>0.00398225</Numerator> <Numerator>-0.0127401</Numerator> <Numerator>-0.00857824</Numerator> <Numerator>0.00608445</Numerator> <Numerator>0.009184</Numerator> <Numerator>-0.000644006</Numerator> <Numerator>-0.00720121</Numerator> <Numerator>-0.00264288</Numerator> <Numerator>0.00419414</Numerator> <Numerator>0.00377072</Numerator> <Numerator>-0.00140933</Numerator> <Numerator>-0.00333765</Numerator> <Numerator>-0.000461554</Numerator> <Numerator>0.00215165</Numerator> <Numerator>0.00127669</Numerator> <Numerator>-0.000910951</Numerator> <Numerator>-0.00127621</Numerator> <Numerator>3.05081e-05</Numerator> <Numerator>0.000854226</Numerator> <Numerator>0.000376107</Numerator> <Numerator>-0.000366692</Numerator> <Numerator>-0.00041031</Numerator> <Numerator>2.52645e-05</Numerator> <Numerator>0.000261821</Numerator> <Numerator>0.000120602</Numerator> <Numerator>-9.99854e-05</Numerator> <Numerator>-0.000162312</Numerator> <Numerator>-9.79595e-05</Numerator> <Numerator>-2.94355e-05</Numerator> <Numerator>-3.09847e-06</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">400.0</InputSampleRate> <Factor>2</Factor> <Offset>0</Offset> <Delay>0.125</Delay> <Correction>0.125</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="11"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>-1.09889e-05</Numerator> <Numerator>-1.99798e-05</Numerator> <Numerator>-3.29668e-05</Numerator> <Numerator>-4.39561e-05</Numerator> <Numerator>-4.79522e-05</Numerator> <Numerator>-4.09589e-05</Numerator> <Numerator>-1.8981e-05</Numerator> <Numerator>1.8981e-05</Numerator> <Numerator>6.7932e-05</Numerator> <Numerator>0.000118881</Numerator> <Numerator>0.000158842</Numerator> <Numerator>0.000174826</Numerator> <Numerator>0.000157843</Numerator> <Numerator>0.000104895</Numerator> <Numerator>2.49751e-05</Numerator> <Numerator>-6.49352e-05</Numerator> <Numerator>-0.00014086</Numerator> <Numerator>-0.000178822</Numerator> <Numerator>-0.00016084</Numerator> <Numerator>-8.59142e-05</Numerator> <Numerator>3.29668e-05</Numerator> <Numerator>0.000163837</Numerator> <Numerator>0.000268733</Numerator> <Numerator>0.000310691</Numerator> <Numerator>0.000263737</Numerator> <Numerator>0.00013087</Numerator> <Numerator>-6.09391e-05</Numerator> <Numerator>-0.00026074</Numerator> <Numerator>-0.000408593</Numerator> <Numerator>-0.000448554</Numerator> <Numerator>-0.000353648</Numerator> <Numerator>-0.000135864</Numerator> <Numerator>0.000155845</Numerator> <Numerator>0.000438563</Numerator> <Numerator>0.000623379</Numerator> <Numerator>0.000638365</Numerator> <Numerator>0.000456546</Numerator> <Numerator>0.000108891</Numerator> <Numerator>-0.000315686</Numerator> <Numerator>-0.000694309</Numerator> <Numerator>-0.000903101</Numerator> <Numerator>-0.00085415</Numerator> <Numerator>-0.000533469</Numerator> <Numerator>-7.99164e-06</Numerator> <Numerator>0.000581421</Numerator> <Numerator>0.00105695</Numerator> <Numerator>0.00125675</Numerator> <Numerator>0.00108792</Numerator> <Numerator>0.000559443</Numerator> <Numerator>-0.000201799</Numerator> <Numerator>-0.000983021</Numerator> <Numerator>-0.00154047</Numerator> <Numerator>-0.00167733</Numerator> <Numerator>-0.0013037</Numerator> <Numerator>-0.000484518</Numerator> <Numerator>0.000571431</Numerator> <Numerator>0.00155645</Numerator> <Numerator>0.00215685</Numerator> <Numerator>0.00214287</Numerator> <Numerator>0.00145855</Numerator> <Numerator>0.00025075</Numerator> <Numerator>-0.00115385</Numerator> <Numerator>-0.00233568</Numerator> <Numerator>-0.00290311</Numerator> <Numerator>-0.0026174</Numerator> <Numerator>-0.00148752</Numerator> <Numerator>0.000215785</Numerator> <Numerator>0.002014</Numerator> <Numerator>0.00335166</Numerator> <Numerator>0.00376825</Numerator> <Numerator>0.00304597</Numerator> <Numerator>0.0013037</Numerator> <Numerator>-0.001009</Numerator> <Numerator>-0.0032208</Numerator> <Numerator>-0.00463139</Numerator> <Numerator>-0.0047233</Numerator> <Numerator>-0.00334667</Numerator> <Numerator>-0.000793211</Numerator> <Numerator>0.00224477</Numerator> <Numerator>0.00486516</Numerator> <Numerator>0.00620583</Numerator> <Numerator>0.0057273</Numerator> <Numerator>0.00340861</Numerator> <Numerator>-0.000199801</Numerator> <Numerator>-0.00409193</Numerator> <Numerator>-0.00707596</Numerator> <Numerator>-0.00812791</Numerator> <Numerator>-0.00672831</Numerator> <Numerator>-0.00307194</Numerator> <Numerator>0.00192309</Numerator> <Numerator>0.00682721</Numerator> <Numerator>0.010091</Numerator> <Numerator>0.0105175</Numerator> <Numerator>0.00766437</Numerator> <Numerator>0.00206594</Numerator> <Numerator>-0.00483219</Numerator> <Numerator>-0.01101</Numerator> <Numerator>-0.0144376</Numerator> <Numerator>-0.0136934</Numerator> <Numerator>-0.00847457</Numerator> <Numerator>0.000173827</Numerator> <Numerator>0.010004</Numerator> <Numerator>0.018085</Numerator> <Numerator>0.0215935</Numerator> <Numerator>0.0186664</Numerator> <Numerator>0.00910094</Numerator> <Numerator>-0.0053287</Numerator> <Numerator>-0.0210541</Numerator> <Numerator>-0.0333958</Numerator> <Numerator>-0.0376226</Numerator> <Numerator>-0.030137</Numerator> <Numerator>-0.00949755</Numerator> <Numerator>0.0229931</Numerator> <Numerator>0.063304</Numerator> <Numerator>0.10534</Numerator> <Numerator>0.142124</Numerator> <Numerator>0.167226</Numerator> <Numerator>0.176134</Numerator> <Numerator>0.167226</Numerator> <Numerator>0.142124</Numerator> <Numerator>0.10534</Numerator> <Numerator>0.063304</Numerator> <Numerator>0.0229931</Numerator> <Numerator>-0.00949755</Numerator> <Numerator>-0.030137</Numerator> <Numerator>-0.0376226</Numerator> <Numerator>-0.0333958</Numerator> <Numerator>-0.0210541</Numerator> <Numerator>-0.0053287</Numerator> <Numerator>0.00910094</Numerator> <Numerator>0.0186664</Numerator> <Numerator>0.0215935</Numerator> <Numerator>0.018085</Numerator> <Numerator>0.010004</Numerator> <Numerator>0.000173827</Numerator> <Numerator>-0.00847457</Numerator> <Numerator>-0.0136934</Numerator> <Numerator>-0.0144376</Numerator> <Numerator>-0.01101</Numerator> <Numerator>-0.00483219</Numerator> <Numerator>0.00206594</Numerator> <Numerator>0.00766437</Numerator> <Numerator>0.0105175</Numerator> <Numerator>0.010091</Numerator> <Numerator>0.00682721</Numerator> <Numerator>0.00192309</Numerator> <Numerator>-0.00307194</Numerator> <Numerator>-0.00672831</Numerator> <Numerator>-0.00812791</Numerator> <Numerator>-0.00707596</Numerator> <Numerator>-0.00409193</Numerator> <Numerator>-0.000199801</Numerator> <Numerator>0.00340861</Numerator> <Numerator>0.0057273</Numerator> <Numerator>0.00620583</Numerator> <Numerator>0.00486516</Numerator> <Numerator>0.00224477</Numerator> <Numerator>-0.000793211</Numerator> <Numerator>-0.00334667</Numerator> <Numerator>-0.0047233</Numerator> <Numerator>-0.00463139</Numerator> <Numerator>-0.0032208</Numerator> <Numerator>-0.001009</Numerator> <Numerator>0.0013037</Numerator> <Numerator>0.00304597</Numerator> <Numerator>0.00376825</Numerator> <Numerator>0.00335166</Numerator> <Numerator>0.002014</Numerator> <Numerator>0.000215785</Numerator> <Numerator>-0.00148752</Numerator> <Numerator>-0.0026174</Numerator> <Numerator>-0.00290311</Numerator> <Numerator>-0.00233568</Numerator> <Numerator>-0.00115385</Numerator> <Numerator>0.00025075</Numerator> <Numerator>0.00145855</Numerator> <Numerator>0.00214287</Numerator> <Numerator>0.00215685</Numerator> <Numerator>0.00155645</Numerator> <Numerator>0.000571431</Numerator> <Numerator>-0.000484518</Numerator> <Numerator>-0.0013037</Numerator> <Numerator>-0.00167733</Numerator> <Numerator>-0.00154047</Numerator> <Numerator>-0.000983021</Numerator> <Numerator>-0.000201799</Numerator> <Numerator>0.000559443</Numerator> <Numerator>0.00108792</Numerator> <Numerator>0.00125675</Numerator> <Numerator>0.00105695</Numerator> <Numerator>0.000581421</Numerator> <Numerator>-7.99164e-06</Numerator> <Numerator>-0.000533469</Numerator> <Numerator>-0.00085415</Numerator> <Numerator>-0.000903101</Numerator> <Numerator>-0.000694309</Numerator> <Numerator>-0.000315686</Numerator> <Numerator>0.000108891</Numerator> <Numerator>0.000456546</Numerator> <Numerator>0.000638365</Numerator> <Numerator>0.000623379</Numerator> <Numerator>0.000438563</Numerator> <Numerator>0.000155845</Numerator> <Numerator>-0.000135864</Numerator> <Numerator>-0.000353648</Numerator> <Numerator>-0.000448554</Numerator> <Numerator>-0.000408593</Numerator> <Numerator>-0.00026074</Numerator> <Numerator>-6.09391e-05</Numerator> <Numerator>0.00013087</Numerator> <Numerator>0.000263737</Numerator> <Numerator>0.000310691</Numerator> <Numerator>0.000268733</Numerator> <Numerator>0.000163837</Numerator> <Numerator>3.29668e-05</Numerator> <Numerator>-8.59142e-05</Numerator> <Numerator>-0.00016084</Numerator> <Numerator>-0.000178822</Numerator> <Numerator>-0.00014086</Numerator> <Numerator>-6.49352e-05</Numerator> <Numerator>2.49751e-05</Numerator> <Numerator>0.000104895</Numerator> <Numerator>0.000157843</Numerator> <Numerator>0.000174826</Numerator> <Numerator>0.000158842</Numerator> <Numerator>0.000118881</Numerator> <Numerator>6.7932e-05</Numerator> <Numerator>1.8981e-05</Numerator> <Numerator>-1.8981e-05</Numerator> <Numerator>-4.09589e-05</Numerator> <Numerator>-4.79522e-05</Numerator> <Numerator>-4.39561e-05</Numerator> <Numerator>-3.29668e-05</Numerator> <Numerator>-1.99798e-05</Numerator> <Numerator>-1.09889e-05</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">200.0</InputSampleRate> <Factor>5</Factor> <Offset>0</Offset> <Delay>0.585</Delay> <Correction>0.585</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> </Response> </Channel> </Station> </Network> </FDSNStationXML>![]()
Broadband sensor
Streckeisen STS-1 sensor (360 s) + Quanterra Qx80 datalogger (80)
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?> <FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd" schemaVersion="1.2"> <Source>isti</Source> <Created>2020-06-06T01:19:15.736834Z</Created> <Network code="XX"> <Station code="ABCD"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Site> <Name>Nowhere</Name> </Site> <Channel code="BHZ" locationCode="10"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Depth>0.0</Depth> <Azimuth>0.0</Azimuth> <Dip>-90.0</Dip> <SampleRate>80.0</SampleRate> <Sensor><Description>Streckeisen STS-1</Description></Sensor> <DataLogger><Description>Quanterra Qx80</Description></DataLogger> <Response> <InstrumentSensitivity> <Value>966938797.852</Value> <Frequency>0.02</Frequency> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> </InstrumentSensitivity> <Stage number="1"> <PolesZeros> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>V</Name> <Description>Volts</Description> </OutputUnits> <PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType> <NormalizationFactor>3948.58</NormalizationFactor> <NormalizationFrequency unit="HERTZ">0.02</NormalizationFrequency> <Zero number="0"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Zero number="1"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Pole number="0"> <Real>-0.01234</Real> <Imaginary>0.01234</Imaginary> </Pole> <Pole number="1"> <Real>-0.01234</Real> <Imaginary>-0.01234</Imaginary> </Pole> <Pole number="2"> <Real>-39.18</Real> <Imaginary>49.12</Imaginary> </Pole> <Pole number="3"> <Real>-39.18</Real> <Imaginary>-49.12</Imaginary> </Pole> </PolesZeros> <StageGain> <Value>2400.0</Value> <Frequency>0.02</Frequency> </StageGain> </Stage> <Stage number="2"> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="3"> <Coefficients> <InputUnits> <Name>V</Name> <Description>Volts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>1.0</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">5120.0</InputSampleRate> <Factor>1</Factor> <Offset>0</Offset> <Delay>0.0</Delay> <Correction>0.0</Correction> </Decimation> <StageGain> <Value>400000.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="4"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>-0.00111328</Numerator> <Numerator>-0.001008</Numerator> <Numerator>-0.00135286</Numerator> <Numerator>-0.00173045</Numerator> <Numerator>-0.00208418</Numerator> <Numerator>-0.00238538</Numerator> <Numerator>-0.00260956</Numerator> <Numerator>-0.00273352</Numerator> <Numerator>-0.00273316</Numerator> <Numerator>-0.00258472</Numerator> <Numerator>-0.00226412</Numerator> <Numerator>-0.00174847</Numerator> <Numerator>-0.00101403</Numerator> <Numerator>-3.51682e-05</Numerator> <Numerator>0.00123782</Numerator> <Numerator>0.00315983</Numerator> <Numerator>0.00699945</Numerator> <Numerator>0.0090996</Numerator> <Numerator>0.0125424</Numerator> <Numerator>0.0163123</Numerator> <Numerator>0.0202632</Numerator> <Numerator>0.0243173</Numerator> <Numerator>0.0284051</Numerator> <Numerator>0.0324604</Numerator> <Numerator>0.0364143</Numerator> <Numerator>0.0401987</Numerator> <Numerator>0.043745</Numerator> <Numerator>0.0469873</Numerator> <Numerator>0.0498573</Numerator> <Numerator>0.0522796</Numerator> <Numerator>0.054114</Numerator> <Numerator>0.0543903</Numerator> <Numerator>0.0543903</Numerator> <Numerator>0.054114</Numerator> <Numerator>0.0522796</Numerator> <Numerator>0.0498573</Numerator> <Numerator>0.0469873</Numerator> <Numerator>0.043745</Numerator> <Numerator>0.0401987</Numerator> <Numerator>0.0364143</Numerator> <Numerator>0.0324604</Numerator> <Numerator>0.0284051</Numerator> <Numerator>0.0243173</Numerator> <Numerator>0.0202632</Numerator> <Numerator>0.0163123</Numerator> <Numerator>0.0125424</Numerator> <Numerator>0.0090996</Numerator> <Numerator>0.00699945</Numerator> <Numerator>0.00315983</Numerator> <Numerator>0.00123782</Numerator> <Numerator>-3.51682e-05</Numerator> <Numerator>-0.00101403</Numerator> <Numerator>-0.00174847</Numerator> <Numerator>-0.00226412</Numerator> <Numerator>-0.00258472</Numerator> <Numerator>-0.00273316</Numerator> <Numerator>-0.00273352</Numerator> <Numerator>-0.00260956</Numerator> <Numerator>-0.00238538</Numerator> <Numerator>-0.00208418</Numerator> <Numerator>-0.00173045</Numerator> <Numerator>-0.00135286</Numerator> <Numerator>-0.001008</Numerator> <Numerator>-0.00111328</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">5120.0</InputSampleRate> <Factor>16</Factor> <Offset>0</Offset> <Delay>0.006152344</Delay> <Correction>0.006</Correction> </Decimation> <StageGain> <Value>1.014774</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="5"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000150487</Numerator> <Numerator>0.000305924</Numerator> <Numerator>0.000442949</Numerator> <Numerator>0.000387117</Numerator> <Numerator>-4.73787e-05</Numerator> <Numerator>-0.000970772</Numerator> <Numerator>-0.00230317</Numerator> <Numerator>-0.00370638</Numerator> <Numerator>-0.00462505</Numerator> <Numerator>-0.0044648</Numerator> <Numerator>-0.00286984</Numerator> <Numerator>7.00861e-06</Numerator> <Numerator>0.0033852</Numerator> <Numerator>0.00600353</Numerator> <Numerator>0.00655094</Numerator> <Numerator>0.00425995</Numerator> <Numerator>-0.000576024</Numerator> <Numerator>-0.00643416</Numerator> <Numerator>-0.0109214</Numerator> <Numerator>-0.0116364</Numerator> <Numerator>-0.00726515</Numerator> <Numerator>0.00153727</Numerator> <Numerator>0.0119331</Numerator> <Numerator>0.0196157</Numerator> <Numerator>0.0203516</Numerator> <Numerator>0.011868</Numerator> <Numerator>-0.00464369</Numerator> <Numerator>-0.0241125</Numerator> <Numerator>-0.0386383</Numerator> <Numerator>-0.0398499</Numerator> <Numerator>-0.0218684</Numerator> <Numerator>0.0161612</Numerator> <Numerator>0.0689624</Numerator> <Numerator>0.126003</Numerator> <Numerator>0.174229</Numerator> <Numerator>0.201834</Numerator> <Numerator>0.201834</Numerator> <Numerator>0.174229</Numerator> <Numerator>0.126003</Numerator> <Numerator>0.0689624</Numerator> <Numerator>0.0161612</Numerator> <Numerator>-0.0218684</Numerator> <Numerator>-0.0398499</Numerator> <Numerator>-0.0386383</Numerator> <Numerator>-0.0241125</Numerator> <Numerator>-0.00464369</Numerator> <Numerator>0.011868</Numerator> <Numerator>0.0203516</Numerator> <Numerator>0.0196157</Numerator> <Numerator>0.0119331</Numerator> <Numerator>0.00153727</Numerator> <Numerator>-0.00726515</Numerator> <Numerator>-0.0116364</Numerator> <Numerator>-0.0109214</Numerator> <Numerator>-0.00643416</Numerator> <Numerator>-0.000576024</Numerator> <Numerator>0.00425995</Numerator> <Numerator>0.00655094</Numerator> <Numerator>0.00600353</Numerator> <Numerator>0.0033852</Numerator> <Numerator>7.00861e-06</Numerator> <Numerator>-0.00286984</Numerator> <Numerator>-0.0044648</Numerator> <Numerator>-0.00462505</Numerator> <Numerator>-0.00370638</Numerator> <Numerator>-0.00230317</Numerator> <Numerator>-0.000970772</Numerator> <Numerator>-4.73787e-05</Numerator> <Numerator>0.000387117</Numerator> <Numerator>0.000442949</Numerator> <Numerator>0.000305924</Numerator> <Numerator>0.000150487</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">320.0</InputSampleRate> <Factor>4</Factor> <Offset>0</Offset> <Delay>0.1109375</Delay> <Correction>0.083</Correction> </Decimation> <StageGain> <Value>0.9781118</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> </Response> </Channel> </Station> </Network> </FDSNStationXML>![]()
Short-period sensor
Geotech GS-13 short-period sensor + Quanterra Quanterra Qx80 datalogger
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?> <FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd" schemaVersion="1.2"> <Source>isti</Source> <Created>2020-06-05T21:59:22.232797Z</Created> <Network code="XX"> <Station code="ABCD"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Site> <Name>Nowhere</Name> </Site> <Channel code="BHZ" locationCode="10"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Depth>0.0</Depth> <Azimuth>0.0</Azimuth> <Dip>-90.0</Dip> <SampleRate>80.0</SampleRate> <Sensor><Description>Geotech GS-13</Description></Sensor> <DataLogger><Description>Quanterra Qx80</Description></DataLogger> <Response> <InstrumentSensitivity> <Value>264268099.805</Value> <Frequency>5.0</Frequency> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> </InstrumentSensitivity> <Stage number="1"> <PolesZeros> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>V</Name> <Description>Volts</Description> </OutputUnits> <PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType> <NormalizationFactor>1.0</NormalizationFactor> <NormalizationFrequency unit="HERTZ">5.0</NormalizationFrequency> <Zero number="0"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Zero number="1"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Pole number="0"> <Real>-4.443</Real> <Imaginary>4.443</Imaginary> </Pole> <Pole number="1"> <Real>-4.443</Real> <Imaginary>-4.443</Imaginary> </Pole> </PolesZeros> <StageGain> <Value>629.0</Value> <Frequency>5.0</Frequency> </StageGain> </Stage> <Stage number="2"> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="3"> <Coefficients> <InputUnits> <Name>V</Name> <Description>Volts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>1.0</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">5120.0</InputSampleRate> <Factor>1</Factor> <Offset>0</Offset> <Delay>0.0</Delay> <Correction>0.0</Correction> </Decimation> <StageGain> <Value>400000.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="4"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>-0.00111328</Numerator> <Numerator>-0.001008</Numerator> <Numerator>-0.00135286</Numerator> <Numerator>-0.00173045</Numerator> <Numerator>-0.00208418</Numerator> <Numerator>-0.00238538</Numerator> <Numerator>-0.00260956</Numerator> <Numerator>-0.00273352</Numerator> <Numerator>-0.00273316</Numerator> <Numerator>-0.00258472</Numerator> <Numerator>-0.00226412</Numerator> <Numerator>-0.00174847</Numerator> <Numerator>-0.00101403</Numerator> <Numerator>-3.51682e-05</Numerator> <Numerator>0.00123782</Numerator> <Numerator>0.00315983</Numerator> <Numerator>0.00699945</Numerator> <Numerator>0.0090996</Numerator> <Numerator>0.0125424</Numerator> <Numerator>0.0163123</Numerator> <Numerator>0.0202632</Numerator> <Numerator>0.0243173</Numerator> <Numerator>0.0284051</Numerator> <Numerator>0.0324604</Numerator> <Numerator>0.0364143</Numerator> <Numerator>0.0401987</Numerator> <Numerator>0.043745</Numerator> <Numerator>0.0469873</Numerator> <Numerator>0.0498573</Numerator> <Numerator>0.0522796</Numerator> <Numerator>0.054114</Numerator> <Numerator>0.0543903</Numerator> <Numerator>0.0543903</Numerator> <Numerator>0.054114</Numerator> <Numerator>0.0522796</Numerator> <Numerator>0.0498573</Numerator> <Numerator>0.0469873</Numerator> <Numerator>0.043745</Numerator> <Numerator>0.0401987</Numerator> <Numerator>0.0364143</Numerator> <Numerator>0.0324604</Numerator> <Numerator>0.0284051</Numerator> <Numerator>0.0243173</Numerator> <Numerator>0.0202632</Numerator> <Numerator>0.0163123</Numerator> <Numerator>0.0125424</Numerator> <Numerator>0.0090996</Numerator> <Numerator>0.00699945</Numerator> <Numerator>0.00315983</Numerator> <Numerator>0.00123782</Numerator> <Numerator>-3.51682e-05</Numerator> <Numerator>-0.00101403</Numerator> <Numerator>-0.00174847</Numerator> <Numerator>-0.00226412</Numerator> <Numerator>-0.00258472</Numerator> <Numerator>-0.00273316</Numerator> <Numerator>-0.00273352</Numerator> <Numerator>-0.00260956</Numerator> <Numerator>-0.00238538</Numerator> <Numerator>-0.00208418</Numerator> <Numerator>-0.00173045</Numerator> <Numerator>-0.00135286</Numerator> <Numerator>-0.001008</Numerator> <Numerator>-0.00111328</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">5120.0</InputSampleRate> <Factor>16</Factor> <Offset>0</Offset> <Delay>0.006152344</Delay> <Correction>0.006</Correction> </Decimation> <StageGain> <Value>1.014774</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="5"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>0.000150487</Numerator> <Numerator>0.000305924</Numerator> <Numerator>0.000442949</Numerator> <Numerator>0.000387117</Numerator> <Numerator>-4.73787e-05</Numerator> <Numerator>-0.000970772</Numerator> <Numerator>-0.00230317</Numerator> <Numerator>-0.00370638</Numerator> <Numerator>-0.00462505</Numerator> <Numerator>-0.0044648</Numerator> <Numerator>-0.00286984</Numerator> <Numerator>7.00861e-06</Numerator> <Numerator>0.0033852</Numerator> <Numerator>0.00600353</Numerator> <Numerator>0.00655094</Numerator> <Numerator>0.00425995</Numerator> <Numerator>-0.000576024</Numerator> <Numerator>-0.00643416</Numerator> <Numerator>-0.0109214</Numerator> <Numerator>-0.0116364</Numerator> <Numerator>-0.00726515</Numerator> <Numerator>0.00153727</Numerator> <Numerator>0.0119331</Numerator> <Numerator>0.0196157</Numerator> <Numerator>0.0203516</Numerator> <Numerator>0.011868</Numerator> <Numerator>-0.00464369</Numerator> <Numerator>-0.0241125</Numerator> <Numerator>-0.0386383</Numerator> <Numerator>-0.0398499</Numerator> <Numerator>-0.0218684</Numerator> <Numerator>0.0161612</Numerator> <Numerator>0.0689624</Numerator> <Numerator>0.126003</Numerator> <Numerator>0.174229</Numerator> <Numerator>0.201834</Numerator> <Numerator>0.201834</Numerator> <Numerator>0.174229</Numerator> <Numerator>0.126003</Numerator> <Numerator>0.0689624</Numerator> <Numerator>0.0161612</Numerator> <Numerator>-0.0218684</Numerator> <Numerator>-0.0398499</Numerator> <Numerator>-0.0386383</Numerator> <Numerator>-0.0241125</Numerator> <Numerator>-0.00464369</Numerator> <Numerator>0.011868</Numerator> <Numerator>0.0203516</Numerator> <Numerator>0.0196157</Numerator> <Numerator>0.0119331</Numerator> <Numerator>0.00153727</Numerator> <Numerator>-0.00726515</Numerator> <Numerator>-0.0116364</Numerator> <Numerator>-0.0109214</Numerator> <Numerator>-0.00643416</Numerator> <Numerator>-0.000576024</Numerator> <Numerator>0.00425995</Numerator> <Numerator>0.00655094</Numerator> <Numerator>0.00600353</Numerator> <Numerator>0.0033852</Numerator> <Numerator>7.00861e-06</Numerator> <Numerator>-0.00286984</Numerator> <Numerator>-0.0044648</Numerator> <Numerator>-0.00462505</Numerator> <Numerator>-0.00370638</Numerator> <Numerator>-0.00230317</Numerator> <Numerator>-0.000970772</Numerator> <Numerator>-4.73787e-05</Numerator> <Numerator>0.000387117</Numerator> <Numerator>0.000442949</Numerator> <Numerator>0.000305924</Numerator> <Numerator>0.000150487</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">320.0</InputSampleRate> <Factor>4</Factor> <Offset>0</Offset> <Delay>0.1109375</Delay> <Correction>0.083</Correction> </Decimation> <StageGain> <Value>0.9781118</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> </Response> </Channel> </Station> </Network> </FDSNStationXML>![]()
Short-period sensor
Sercel L-22D short-period sensor (Rc=5470 Ohms, Rs=20000 Ohms) + Reftek RT72A-08 24-bit datalogger, 1 stream, 100 Hz, gain 32
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?> <FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd" schemaVersion="1.2"> <Source>isti</Source> <Created>2020-06-06T01:01:14.188519Z</Created> <Network code="XX"> <Station code="ABCD"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Site> <Name>Nowhere</Name> </Site> <Channel code="BHZ" locationCode="10"> <Latitude>0.0</Latitude> <Longitude>0.0</Longitude> <Elevation>10.0</Elevation> <Depth>0.0</Depth> <Azimuth>0.0</Azimuth> <Dip>-90.0</Dip> <SampleRate>100.0</SampleRate> <Sensor><Description>L-22d</Description></Sensor> <DataLogger><Description>Reftek RT72A-08</Description></DataLogger> <Response> <InstrumentSensitivity> <Value>1488803226.82</Value> <Frequency>10.0</Frequency> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> </InstrumentSensitivity> <Stage number="1"> <PolesZeros> <InputUnits> <Name>m/s</Name> <Description>Velocity in Meters per Second</Description> </InputUnits> <OutputUnits> <Name>V</Name> <Description>Volts</Description> </OutputUnits> <PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType> <NormalizationFactor>1.0</NormalizationFactor> <NormalizationFrequency unit="HERTZ">10.0</NormalizationFrequency> <Zero number="0"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Zero number="1"> <Real>0.0</Real> <Imaginary>0.0</Imaginary> </Zero> <Pole number="0"> <Real>-8.884</Real> <Imaginary>8.887</Imaginary> </Pole> <Pole number="1"> <Real>-8.884</Real> <Imaginary>-8.887</Imaginary> </Pole> </PolesZeros> <StageGain> <Value>87.9</Value> <Frequency>10.0</Frequency> </StageGain> </Stage> <Stage number="2"> <StageGain> <Value>32.2</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="3"> <Coefficients> <InputUnits> <Name>V</Name> <Description>Volts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>1.0</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">1000.0</InputSampleRate> <Factor>1</Factor> <Offset>0</Offset> <Delay>0.0</Delay> <Correction>0.0</Correction> </Decimation> <StageGain> <Value>524384.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="4"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>1.00095e-05</Numerator> <Numerator>1.60155e-05</Numerator> <Numerator>2.10207e-05</Numerator> <Numerator>1.70167e-05</Numerator> <Numerator>-5.00475e-06</Numerator> <Numerator>-5.60554e-05</Numerator> <Numerator>-0.000139138</Numerator> <Numerator>-0.000252249</Numerator> <Numerator>-0.000379375</Numerator> <Numerator>-0.000490485</Numerator> <Numerator>-0.000544538</Numerator> <Numerator>-0.00049549</Numerator> <Numerator>-0.000305302</Numerator> <Numerator>4.00394e-05</Numerator> <Numerator>0.000519514</Numerator> <Numerator>0.00106605</Numerator> <Numerator>0.00156655</Numerator> <Numerator>0.00187986</Numerator> <Numerator>0.00185884</Numerator> <Numerator>0.00139438</Numerator> <Numerator>0.000452447</Numerator> <Numerator>-0.000891882</Numerator> <Numerator>-0.00244041</Numerator> <Numerator>-0.00388684</Numerator> <Numerator>-0.0048568</Numerator> <Numerator>-0.00498693</Numerator> <Numerator>-0.00401297</Numerator> <Numerator>-0.00186484</Numerator> <Numerator>0.00127226</Numerator> <Numerator>0.00493088</Numerator> <Numerator>0.00840631</Numerator> <Numerator>0.0108557</Numerator> <Numerator>0.0114653</Numerator> <Numerator>0.00963653</Numerator> <Numerator>0.00517011</Numerator> <Numerator>-0.00159358</Numerator> <Numerator>-0.00973062</Numerator> <Numerator>-0.0177896</Numerator> <Numerator>-0.0239687</Numerator> <Numerator>-0.0263971</Numerator> <Numerator>-0.0234562</Numerator> <Numerator>-0.014115</Numerator> <Numerator>0.00180478</Numerator> <Numerator>0.0234952</Numerator> <Numerator>0.0491706</Numerator> <Numerator>0.0762664</Numerator> <Numerator>0.101771</Numerator> <Numerator>0.122659</Numerator> <Numerator>0.136353</Numerator> <Numerator>0.141121</Numerator> <Numerator>0.136353</Numerator> <Numerator>0.122659</Numerator> <Numerator>0.101771</Numerator> <Numerator>0.0762664</Numerator> <Numerator>0.0491706</Numerator> <Numerator>0.0234952</Numerator> <Numerator>0.00180478</Numerator> <Numerator>-0.014115</Numerator> <Numerator>-0.0234562</Numerator> <Numerator>-0.0263971</Numerator> <Numerator>-0.0239687</Numerator> <Numerator>-0.0177896</Numerator> <Numerator>-0.00973062</Numerator> <Numerator>-0.00159358</Numerator> <Numerator>0.00517011</Numerator> <Numerator>0.00963653</Numerator> <Numerator>0.0114653</Numerator> <Numerator>0.0108557</Numerator> <Numerator>0.00840631</Numerator> <Numerator>0.00493088</Numerator> <Numerator>0.00127226</Numerator> <Numerator>-0.00186484</Numerator> <Numerator>-0.00401297</Numerator> <Numerator>-0.00498693</Numerator> <Numerator>-0.0048568</Numerator> <Numerator>-0.00388684</Numerator> <Numerator>-0.00244041</Numerator> <Numerator>-0.000891882</Numerator> <Numerator>0.000452447</Numerator> <Numerator>0.00139438</Numerator> <Numerator>0.00185884</Numerator> <Numerator>0.00187986</Numerator> <Numerator>0.00156655</Numerator> <Numerator>0.00106605</Numerator> <Numerator>0.000519514</Numerator> <Numerator>4.00394e-05</Numerator> <Numerator>-0.000305302</Numerator> <Numerator>-0.00049549</Numerator> <Numerator>-0.000544538</Numerator> <Numerator>-0.000490485</Numerator> <Numerator>-0.000379375</Numerator> <Numerator>-0.000252249</Numerator> <Numerator>-0.000139138</Numerator> <Numerator>-5.60554e-05</Numerator> <Numerator>-5.00475e-06</Numerator> <Numerator>1.70167e-05</Numerator> <Numerator>2.10207e-05</Numerator> <Numerator>1.60155e-05</Numerator> <Numerator>1.00095e-05</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">1000.0</InputSampleRate> <Factor>5</Factor> <Offset>0</Offset> <Delay>0.049</Delay> <Correction>0.049</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> <Stage number="5"> <Coefficients> <InputUnits> <Name>count</Name> <Description>Digital Counts</Description> </InputUnits> <OutputUnits> <Name>count</Name> <Description>Digital Counts</Description> </OutputUnits> <CfTransferFunctionType>DIGITAL</CfTransferFunctionType> <Numerator>-4.7042e-05</Numerator> <Numerator>-0.000186167</Numerator> <Numerator>-0.000292263</Numerator> <Numerator>-0.000145131</Numerator> <Numerator>0.000212191</Numerator> <Numerator>0.000310279</Numerator> <Numerator>-0.000124111</Numerator> <Numerator>-0.000523471</Numerator> <Numerator>-0.000114103</Numerator> <Numerator>0.000692624</Numerator> <Numerator>0.000534481</Numerator> <Numerator>-0.000695627</Numerator> <Numerator>-0.00109999</Numerator> <Numerator>0.000406366</Numerator> <Numerator>0.00169853</Numerator> <Numerator>0.000273246</Numerator> <Numerator>-0.00213993</Numerator> <Numerator>-0.00136523</Numerator> <Numerator>0.00218096</Numerator> <Numerator>0.0027785</Numerator> <Numerator>-0.00156841</Numerator> <Numerator>-0.00427885</Numerator> <Numerator>0.000108097</Numerator> <Numerator>0.00549495</Numerator> <Numerator>0.00226304</Numerator> <Numerator>-0.00595036</Numerator> <Numerator>-0.00541087</Numerator> <Numerator>0.00513563</Numerator> <Numerator>0.00895507</Numerator> <Numerator>-0.00260134</Numerator> <Numerator>-0.0122651</Numerator> <Numerator>-0.00193975</Numerator> <Numerator>0.014478</Numerator> <Numerator>0.00851968</Numerator> <Numerator>-0.0145601</Numerator> <Numerator>-0.0168652</Numerator> <Numerator>0.0113402</Numerator> <Numerator>0.0263838</Numerator> <Numerator>-0.0034461</Numerator> <Numerator>-0.0362236</Numerator> <Numerator>-0.011103</Numerator> <Numerator>0.0453779</Numerator> <Numerator>0.03664</Numerator> <Numerator>-0.0528236</Numerator> <Numerator>-0.0888721</Numerator> <Numerator>0.057688</Numerator> <Numerator>0.312634</Numerator> <Numerator>0.441072</Numerator> <Numerator>0.312634</Numerator> <Numerator>0.057688</Numerator> <Numerator>-0.0888721</Numerator> <Numerator>-0.0528236</Numerator> <Numerator>0.03664</Numerator> <Numerator>0.0453779</Numerator> <Numerator>-0.011103</Numerator> <Numerator>-0.0362236</Numerator> <Numerator>-0.0034461</Numerator> <Numerator>0.0263838</Numerator> <Numerator>0.0113402</Numerator> <Numerator>-0.0168652</Numerator> <Numerator>-0.0145601</Numerator> <Numerator>0.00851968</Numerator> <Numerator>0.014478</Numerator> <Numerator>-0.00193975</Numerator> <Numerator>-0.0122651</Numerator> <Numerator>-0.00260134</Numerator> <Numerator>0.00895507</Numerator> <Numerator>0.00513563</Numerator> <Numerator>-0.00541087</Numerator> <Numerator>-0.00595036</Numerator> <Numerator>0.00226304</Numerator> <Numerator>0.00549495</Numerator> <Numerator>0.000108097</Numerator> <Numerator>-0.00427885</Numerator> <Numerator>-0.00156841</Numerator> <Numerator>0.0027785</Numerator> <Numerator>0.00218096</Numerator> <Numerator>-0.00136523</Numerator> <Numerator>-0.00213993</Numerator> <Numerator>0.000273246</Numerator> <Numerator>0.00169853</Numerator> <Numerator>0.000406366</Numerator> <Numerator>-0.00109999</Numerator> <Numerator>-0.000695627</Numerator> <Numerator>0.000534481</Numerator> <Numerator>0.000692624</Numerator> <Numerator>-0.000114103</Numerator> <Numerator>-0.000523471</Numerator> <Numerator>-0.000124111</Numerator> <Numerator>0.000310279</Numerator> <Numerator>0.000212191</Numerator> <Numerator>-0.000145131</Numerator> <Numerator>-0.000292263</Numerator> <Numerator>-0.000186167</Numerator> <Numerator>-4.7042e-05</Numerator> </Coefficients> <Decimation> <InputSampleRate unit="HERTZ">200.0</InputSampleRate> <Factor>2</Factor> <Offset>0</Offset> <Delay>0.235</Delay> <Correction>0.235</Correction> </Decimation> <StageGain> <Value>1.0</Value> <Frequency>0.05</Frequency> </StageGain> </Stage> </Response> </Channel> </Station> </Network> </FDSNStationXML>![]()
Accelerometer
Kinemetrics FBA-3 + Kinemetrics Etna
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?>
<FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd"
schemaVersion="1.2">
<Source>isti</Source>
<Created>2020-06-05T21:54:34.921819Z</Created>
<Network code="XX">
<Station code="ABCD">
<Latitude>0.0</Latitude>
<Longitude>0.0</Longitude>
<Elevation>10.0</Elevation>
<Site>
<Name>Nowhere</Name>
</Site>
<Channel code="BHZ" locationCode="10">
<Latitude>0.0</Latitude>
<Longitude>0.0</Longitude>
<Elevation>10.0</Elevation>
<Depth>0.0</Depth>
<Azimuth>0.0</Azimuth>
<Dip>-90.0</Dip>
<SampleRate>200.0</SampleRate>
<Sensor><Description>Kinemetrics FBA-3</Description></Sensor>
<DataLogger><Description>Kinemetrics Etna</Description></DataLogger>
<Response>
<InstrumentSensitivity>
<Value>213920.152837</Value>
<Frequency>0.15</Frequency>
<InputUnits>
<Name>m/s**2</Name>
<Description>Acceleration in Meters Per Second Per Second</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
</InstrumentSensitivity>
<Stage number="1">
<PolesZeros>
<InputUnits>
<Name>m/s**2</Name>
<Description>Acceleration in Meters Per Second Per Second</Description>
</InputUnits>
<OutputUnits>
<Name>V</Name>
<Description>Volts</Description>
</OutputUnits>
<PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType>
<NormalizationFactor>147985000.0</NormalizationFactor>
<NormalizationFrequency unit="HERTZ">0.15</NormalizationFrequency>
<Pole number="0">
<Real>-222.1</Real>
<Imaginary>222.1</Imaginary>
</Pole>
<Pole number="1">
<Real>-222.1</Real>
<Imaginary>-222.1</Imaginary>
</Pole>
<Pole number="2">
<Real>-1500.0</Real>
<Imaginary>0.0</Imaginary>
</Pole>
</PolesZeros>
<StageGain>
<Value>0.0637</Value>
<Frequency>0.15</Frequency>
</StageGain>
</Stage>
<Stage number="2">
<StageGain>
<Value>1.0</Value>
<Frequency>1.0</Frequency>
</StageGain>
</Stage>
<Stage number="3">
<Coefficients>
<InputUnits>
<Name>V</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>1.0</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">2000.0</InputSampleRate>
<Factor>1</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>3360000.0</Value>
<Frequency>1.0</Frequency>
</StageGain>
</Stage>
<Stage number="4">
<Coefficients>
<InputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>1.2e-07</Numerator>
<Numerator>-6e-07</Numerator>
<Numerator>-7.27e-06</Numerator>
<Numerator>-3.278e-05</Numerator>
<Numerator>-9.894e-05</Numerator>
<Numerator>-0.00023174</Numerator>
<Numerator>-0.00044167</Numerator>
<Numerator>-0.00069332</Numerator>
<Numerator>-0.00087345</Numerator>
<Numerator>-0.0007838</Numerator>
<Numerator>-0.00018537</Numerator>
<Numerator>0.00108707</Numerator>
<Numerator>0.00296128</Numerator>
<Numerator>0.0049758</Numerator>
<Numerator>0.00624192</Numerator>
<Numerator>0.00561416</Numerator>
<Numerator>0.00210238</Numerator>
<Numerator>-0.00455022</Numerator>
<Numerator>-0.0133232</Numerator>
<Numerator>-0.0216756</Numerator>
<Numerator>-0.0258368</Numerator>
<Numerator>-0.0217012</Numerator>
<Numerator>-0.00615335</Numerator>
<Numerator>0.0215797</Numerator>
<Numerator>0.0590637</Numerator>
<Numerator>0.100701</Numerator>
<Numerator>0.13883</Numerator>
<Numerator>0.165634</Numerator>
<Numerator>0.175286</Numerator>
<Numerator>0.165634</Numerator>
<Numerator>0.13883</Numerator>
<Numerator>0.100701</Numerator>
<Numerator>0.0590637</Numerator>
<Numerator>0.0215797</Numerator>
<Numerator>-0.00615335</Numerator>
<Numerator>-0.0217012</Numerator>
<Numerator>-0.0258368</Numerator>
<Numerator>-0.0216756</Numerator>
<Numerator>-0.0133232</Numerator>
<Numerator>-0.00455022</Numerator>
<Numerator>0.00210238</Numerator>
<Numerator>0.00561416</Numerator>
<Numerator>0.00624192</Numerator>
<Numerator>0.0049758</Numerator>
<Numerator>0.00296128</Numerator>
<Numerator>0.00108707</Numerator>
<Numerator>-0.00018537</Numerator>
<Numerator>-0.0007838</Numerator>
<Numerator>-0.00087345</Numerator>
<Numerator>-0.00069332</Numerator>
<Numerator>-0.00044167</Numerator>
<Numerator>-0.00023174</Numerator>
<Numerator>-9.894e-05</Numerator>
<Numerator>-3.278e-05</Numerator>
<Numerator>-7.27e-06</Numerator>
<Numerator>-6e-07</Numerator>
<Numerator>1.2e-07</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">2000.0</InputSampleRate>
<Factor>5</Factor>
<Offset>0</Offset>
<Delay>0.014</Delay>
<Correction>0.014</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>1.0</Frequency>
</StageGain>
</Stage>
<Stage number="5">
<Coefficients>
<InputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>6e-07</Numerator>
<Numerator>1.55e-06</Numerator>
<Numerator>-2.26e-06</Numerator>
<Numerator>-1.681e-05</Numerator>
<Numerator>-3.362e-05</Numerator>
<Numerator>-2.73e-05</Numerator>
<Numerator>1.156e-05</Numerator>
<Numerator>4.172e-05</Numerator>
<Numerator>9.78e-06</Numerator>
<Numerator>-5.686e-05</Numerator>
<Numerator>-5.186e-05</Numerator>
<Numerator>5.221e-05</Numerator>
<Numerator>0.00010896</Numerator>
<Numerator>-1.156e-05</Numerator>
<Numerator>-0.00016463</Numerator>
<Numerator>-7.641e-05</Numerator>
<Numerator>0.00019097</Numerator>
<Numerator>0.00021076</Numerator>
<Numerator>-0.00015306</Numerator>
<Numerator>-0.00036979</Numerator>
<Numerator>1.884e-05</Numerator>
<Numerator>0.00050938</Numerator>
<Numerator>0.00022852</Numerator>
<Numerator>-0.00056541</Numerator>
<Numerator>-0.00057662</Numerator>
<Numerator>0.00046456</Numerator>
<Numerator>0.00097203</Numerator>
<Numerator>-0.00014412</Numerator>
<Numerator>-0.00131798</Numerator>
<Numerator>-0.00042439</Numerator>
<Numerator>0.00148249</Numerator>
<Numerator>0.00121105</Numerator>
<Numerator>-0.0013206</Numerator>
<Numerator>-0.00210965</Numerator>
<Numerator>0.00070846</Numerator>
<Numerator>0.00293458</Numerator>
<Numerator>0.00041425</Numerator>
<Numerator>-0.00343633</Numerator>
<Numerator>-0.00200474</Numerator>
<Numerator>0.00333858</Numerator>
<Numerator>0.00388706</Numerator>
<Numerator>-0.00239384</Numerator>
<Numerator>-0.00574386</Numerator>
<Numerator>0.00045073</Numerator>
<Numerator>0.00713658</Numerator>
<Numerator>0.00248027</Numerator>
<Numerator>-0.00755632</Numerator>
<Numerator>-0.00617528</Numerator>
<Numerator>0.00650048</Numerator>
<Numerator>0.0101701</Numerator>
<Numerator>-0.00356448</Numerator>
<Numerator>-0.0137692</Numerator>
<Numerator>-0.00146592</Numerator>
<Numerator>0.0160844</Numerator>
<Numerator>0.00854254</Numerator>
<Numerator>-0.016091</Numerator>
<Numerator>-0.0173173</Numerator>
<Numerator>0.0126604</Numerator>
<Numerator>0.0271523</Numerator>
<Numerator>-0.00448489</Numerator>
<Numerator>-0.0371805</Numerator>
<Numerator>-0.0103546</Numerator>
<Numerator>0.046411</Numerator>
<Numerator>0.0361366</Numerator>
<Numerator>-0.0538626</Numerator>
<Numerator>-0.0885348</Numerator>
<Numerator>0.0587055</Numerator>
<Numerator>0.312242</Numerator>
<Numerator>0.439562</Numerator>
<Numerator>0.312242</Numerator>
<Numerator>0.0587055</Numerator>
<Numerator>-0.0885348</Numerator>
<Numerator>-0.0538626</Numerator>
<Numerator>0.0361366</Numerator>
<Numerator>0.046411</Numerator>
<Numerator>-0.0103546</Numerator>
<Numerator>-0.0371805</Numerator>
<Numerator>-0.00448489</Numerator>
<Numerator>0.0271523</Numerator>
<Numerator>0.0126604</Numerator>
<Numerator>-0.0173173</Numerator>
<Numerator>-0.016091</Numerator>
<Numerator>0.00854254</Numerator>
<Numerator>0.0160844</Numerator>
<Numerator>-0.00146592</Numerator>
<Numerator>-0.0137692</Numerator>
<Numerator>-0.00356448</Numerator>
<Numerator>0.0101701</Numerator>
<Numerator>0.00650048</Numerator>
<Numerator>-0.00617528</Numerator>
<Numerator>-0.00755632</Numerator>
<Numerator>0.00248027</Numerator>
<Numerator>0.00713658</Numerator>
<Numerator>0.00045073</Numerator>
<Numerator>-0.00574386</Numerator>
<Numerator>-0.00239384</Numerator>
<Numerator>0.00388706</Numerator>
<Numerator>0.00333858</Numerator>
<Numerator>-0.00200474</Numerator>
<Numerator>-0.00343633</Numerator>
<Numerator>0.00041425</Numerator>
<Numerator>0.00293458</Numerator>
<Numerator>0.00070846</Numerator>
<Numerator>-0.00210965</Numerator>
<Numerator>-0.0013206</Numerator>
<Numerator>0.00121105</Numerator>
<Numerator>0.00148249</Numerator>
<Numerator>-0.00042439</Numerator>
<Numerator>-0.00131798</Numerator>
<Numerator>-0.00014412</Numerator>
<Numerator>0.00097203</Numerator>
<Numerator>0.00046456</Numerator>
<Numerator>-0.00057662</Numerator>
<Numerator>-0.00056541</Numerator>
<Numerator>0.00022852</Numerator>
<Numerator>0.00050938</Numerator>
<Numerator>1.884e-05</Numerator>
<Numerator>-0.00036979</Numerator>
<Numerator>-0.00015306</Numerator>
<Numerator>0.00021076</Numerator>
<Numerator>0.00019097</Numerator>
<Numerator>-7.641e-05</Numerator>
<Numerator>-0.00016463</Numerator>
<Numerator>-1.156e-05</Numerator>
<Numerator>0.00010896</Numerator>
<Numerator>5.221e-05</Numerator>
<Numerator>-5.186e-05</Numerator>
<Numerator>-5.686e-05</Numerator>
<Numerator>9.78e-06</Numerator>
<Numerator>4.172e-05</Numerator>
<Numerator>1.156e-05</Numerator>
<Numerator>-2.73e-05</Numerator>
<Numerator>-3.362e-05</Numerator>
<Numerator>-1.681e-05</Numerator>
<Numerator>-2.26e-06</Numerator>
<Numerator>1.55e-06</Numerator>
<Numerator>6e-07</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">400.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.17</Delay>
<Correction>0.17</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>1.0</Frequency>
</StageGain>
</Stage>
</Response>
</Channel>
</Station>
</Network>
</FDSNStationXML>

YSI 44031 thermistor
The Berkeley Digital Seismic Network (BDSN) seismometers, use a Yellow Springs Instrument Co. (YSI) 44031 thermistor to monitor the temperature of the seismometer. The thermistor response has been determined by measuring its voltage output as a function of input temperature. It has been calibrated within a range of temperatures from -5C to 68.59C.
The resistance of the thermistor is a non-linear function of the temperature and its response can be described by a polynomial.
In order to model the response within 0.2 degrees C accuracy, a MacLaurin polynomial with 11 coefficients:
The coefficients are given in Table 1.
\(a_n\) |
value |
---|---|
\(a_0\) |
0.12505E+02 |
\(a_1\) |
0.13824E+02 |
\(a_2\) |
0.41039E+01 |
\(a_3\) |
0.12932E+01 |
\(a_4\) |
0.18741E+01 |
\(a_5\) |
0.17250E+01 |
\(a_6\) |
-0.61021E+00 |
\(a_7\) |
-0.10540E+01 |
\(a_8\) |
0.13974E+00 |
\(a_9\) |
0.39061E+00 |
\(a_{10}\) |
0.95345E-01 |
Because this is a polynomial response, the corresponding StationXML looks a little different than the usual responses (e.g., for seismometers). Instead of a InstrumentSensitivity element, there is an InstrumentPolynomial element. In addition the analog stage is represented by a Polynomial stage. The Polynomial stage and the InstrumentPolynomial stage both contain all of the MacLaurin coefficients, however, in the InstrumentPolynomial stage, those coefficients have been scaled by the datalogger sensitivity to give units of Counts instead of Volts.
How the InstrumentPolynomial was calculated
The InstrumentPolynomial stage looks a lot like the Polynomial stage except that the overall system gain has been incorporated into the polynomial coefficients.
The overall system gain is just the product of the individual stage gains for the remaining stages:
where \(g_0\) is the system gain. Note that the Polynomial stage cannot have a StageGain element, and so the gain for that stage is unity.
Then the \(n^{th}\) coefficient of the MacLaurin series is scaled by the inverse \(n^{th}\) power of the system gain:
For the example shown, the system gain is \(g_0=838860.80\) so that the scaled coefficients are:
coefficient |
value |
---|---|
\(a^{\prime}_0\) |
0.12505E+02 |
\(a^{\prime}_1\) |
1.64795e-05 |
\(a^{\prime}_2\) |
5.83199e-12 |
\(a^{\prime}_3\) |
2.19077e-18 |
\(a^{\prime}_4\) |
3.78471e-24 |
\(a^{\prime}_5\) |
4.15279e-30 |
\(a^{\prime}_6\) |
-1.75122e-36 |
\(a^{\prime}_7\) |
-3.60588e-42 |
\(a^{\prime}_8\) |
5.69904e-49 |
\(a^{\prime}_9\) |
1.89904e-54 |
\(a^{\prime}_{10}\) |
5.52585e-61 |
A complete StationXML Response element is shown below for the YSI-44301 thermistor attached to a Reftek RT130 datalogger sampling at 40Hz.
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?>
<FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd"
schemaVersion="1.2">
<Source>isti</Source>
<Created>2020-06-10T13:25:01.910728Z</Created>
<Network code="XX">
<Station code="ABCD">
<Latitude>0.0</Latitude>
<Longitude>0.0</Longitude>
<Elevation>10.0</Elevation>
<Site>
<Name>Nowhere</Name>
</Site>
<Channel code="BKD" locationCode="10">
<Latitude>0.0</Latitude>
<Longitude>0.0</Longitude>
<Elevation>10.0</Elevation>
<Depth>0.0</Depth>
<Azimuth>0.0</Azimuth>
<Dip>-90.0</Dip>
<SampleRate>40.0</SampleRate>
<Sensor><Description>YSI 44301 temperature</Description></Sensor>
<DataLogger><Description>Reftek RT130</Description></DataLogger>
<Response>
<InstrumentPolynomial name="InstrumentPolynomial">
<Description>None</Description>
<InputUnits>
<Name>degC</Name>
<Description>TEMPERATURE in Celsius</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<ApproximationType>MACLAURIN</ApproximationType>
<FrequencyLowerBound unit="HERTZ">0.0</FrequencyLowerBound>
<FrequencyUpperBound unit="HERTZ">0.01</FrequencyUpperBound>
<ApproximationLowerBound>-5.02</ApproximationLowerBound>
<ApproximationUpperBound>68.59</ApproximationUpperBound>
<MaximumError>0.072</MaximumError>
<Coefficient>12.505</Coefficient>
<Coefficient>1.64794921875e-05</Coefficient>
<Coefficient>5.83199266657175e-12</Coefficient>
<Coefficient>2.1907660147785217e-18</Coefficient>
<Coefficient>3.784714809535227e-24</Coefficient>
<Coefficient>4.1527864425849766e-30</Coefficient>
<Coefficient>-1.7512168159552436e-36</Coefficient>
<Coefficient>-3.605880325679582e-42</Coefficient>
<Coefficient>5.699037789738209e-49</Coefficient>
<Coefficient>1.8990406231916714e-54</Coefficient>
<Coefficient>5.525847819332687e-61</Coefficient>
</InstrumentPolynomial>
<Stage number="1">
<Polynomial name=" SENSOR RESPONSE ">
<InputUnits>
<Name>degC</Name>
<Description>TEMPERATURE in Celsius</Description>
</InputUnits>
<OutputUnits>
<Name>V</Name>
<Description>Volts</Description>
</OutputUnits>
<ApproximationType>MACLAURIN</ApproximationType>
<FrequencyLowerBound unit="HERTZ">0.0</FrequencyLowerBound>
<FrequencyUpperBound unit="HERTZ">0.01</FrequencyUpperBound>
<ApproximationLowerBound>-5.02</ApproximationLowerBound>
<ApproximationUpperBound>68.59</ApproximationUpperBound>
<MaximumError>0.072</MaximumError>
<Coefficient>12.505</Coefficient>
<Coefficient>13.824</Coefficient>
<Coefficient>4.1039</Coefficient>
<Coefficient>1.2932</Coefficient>
<Coefficient>1.8741</Coefficient>
<Coefficient>1.725</Coefficient>
<Coefficient>-0.61021</Coefficient>
<Coefficient>-1.054</Coefficient>
<Coefficient>0.13974</Coefficient>
<Coefficient>0.39061</Coefficient>
<Coefficient>0.095345</Coefficient>
</Polynomial>
</Stage>
<Stage number="2">
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="3">
<Coefficients name=" DIGITIZER">
<InputUnits>
<Name>V</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>1.0</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">102400.0</InputSampleRate>
<Factor>1</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>838860.8</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="4">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.000976562</Numerator>
<Numerator>0.00244141</Numerator>
<Numerator>0.00488281</Numerator>
<Numerator>0.00854492</Numerator>
<Numerator>0.0136719</Numerator>
<Numerator>0.0205078</Numerator>
<Numerator>0.0292969</Numerator>
<Numerator>0.0393066</Numerator>
<Numerator>0.0498047</Numerator>
<Numerator>0.0600586</Numerator>
<Numerator>0.0693359</Numerator>
<Numerator>0.0769043</Numerator>
<Numerator>0.0820312</Numerator>
<Numerator>0.0839844</Numerator>
<Numerator>0.0820312</Numerator>
<Numerator>0.0769043</Numerator>
<Numerator>0.0693359</Numerator>
<Numerator>0.0600586</Numerator>
<Numerator>0.0498047</Numerator>
<Numerator>0.0393066</Numerator>
<Numerator>0.0292969</Numerator>
<Numerator>0.0205078</Numerator>
<Numerator>0.0136719</Numerator>
<Numerator>0.00854492</Numerator>
<Numerator>0.00488281</Numerator>
<Numerator>0.00244141</Numerator>
<Numerator>0.000976562</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">102400.0</InputSampleRate>
<Factor>8</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="5">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">12800.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="6">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">6400.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="7">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">3200.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="8">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">1600.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="9">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">800.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="10">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>-7.15032e-07</Numerator>
<Numerator>-5.60109e-06</Numerator>
<Numerator>-2.62179e-06</Numerator>
<Numerator>-4.31403e-05</Numerator>
<Numerator>-4.64771e-06</Numerator>
<Numerator>1.43006e-06</Numerator>
<Numerator>2.34769e-05</Numerator>
<Numerator>1.43006e-06</Numerator>
<Numerator>-5.27932e-05</Numerator>
<Numerator>-0.000366692</Numerator>
<Numerator>0.000376107</Numerator>
<Numerator>0.000854226</Numerator>
<Numerator>3.05081e-05</Numerator>
<Numerator>-0.00127621</Numerator>
<Numerator>-0.000910951</Numerator>
<Numerator>0.00127669</Numerator>
<Numerator>0.00215165</Numerator>
<Numerator>-0.000461554</Numerator>
<Numerator>-0.00333765</Numerator>
<Numerator>-0.00140933</Numerator>
<Numerator>0.00377072</Numerator>
<Numerator>0.00419414</Numerator>
<Numerator>-0.00264288</Numerator>
<Numerator>-0.00720121</Numerator>
<Numerator>-0.000644006</Numerator>
<Numerator>0.009184</Numerator>
<Numerator>0.00608445</Numerator>
<Numerator>-0.00857824</Numerator>
<Numerator>-0.0127401</Numerator>
<Numerator>0.00398225</Numerator>
<Numerator>0.0186261</Numerator>
<Numerator>0.0052052</Numerator>
<Numerator>-0.0209407</Numerator>
<Numerator>-0.0181629</Numerator>
<Numerator>0.0166669</Numerator>
<Numerator>0.0322447</Numerator>
<Numerator>-0.00346588</Numerator>
<Numerator>-0.0429528</Numerator>
<Numerator>-0.0193265</Numerator>
<Numerator>0.044309</Numerator>
<Numerator>0.0497909</Numerator>
<Numerator>-0.0294164</Numerator>
<Numerator>-0.0826078</Numerator>
<Numerator>-0.00934166</Numerator>
<Numerator>0.107552</Numerator>
<Numerator>0.0816604</Numerator>
<Numerator>-0.10311</Numerator>
<Numerator>-0.204208</Numerator>
<Numerator>-3.12231e-05</Numerator>
<Numerator>0.390432</Numerator>
<Numerator>0.589958</Numerator>
<Numerator>0.390432</Numerator>
<Numerator>-3.12231e-05</Numerator>
<Numerator>-0.204208</Numerator>
<Numerator>-0.10311</Numerator>
<Numerator>0.0816604</Numerator>
<Numerator>0.107552</Numerator>
<Numerator>-0.00934166</Numerator>
<Numerator>-0.0826078</Numerator>
<Numerator>-0.0294164</Numerator>
<Numerator>0.0497909</Numerator>
<Numerator>0.044309</Numerator>
<Numerator>-0.0193265</Numerator>
<Numerator>-0.0429528</Numerator>
<Numerator>-0.00346588</Numerator>
<Numerator>0.0322447</Numerator>
<Numerator>0.0166669</Numerator>
<Numerator>-0.0181629</Numerator>
<Numerator>-0.0209407</Numerator>
<Numerator>0.0052052</Numerator>
<Numerator>0.0186261</Numerator>
<Numerator>0.00398225</Numerator>
<Numerator>-0.0127401</Numerator>
<Numerator>-0.00857824</Numerator>
<Numerator>0.00608445</Numerator>
<Numerator>0.009184</Numerator>
<Numerator>-0.000644006</Numerator>
<Numerator>-0.00720121</Numerator>
<Numerator>-0.00264288</Numerator>
<Numerator>0.00419414</Numerator>
<Numerator>0.00377072</Numerator>
<Numerator>-0.00140933</Numerator>
<Numerator>-0.00333765</Numerator>
<Numerator>-0.000461554</Numerator>
<Numerator>0.00215165</Numerator>
<Numerator>0.00127669</Numerator>
<Numerator>-0.000910951</Numerator>
<Numerator>-0.00127621</Numerator>
<Numerator>3.05081e-05</Numerator>
<Numerator>0.000854226</Numerator>
<Numerator>0.000376107</Numerator>
<Numerator>-0.000366692</Numerator>
<Numerator>-0.00041031</Numerator>
<Numerator>2.52645e-05</Numerator>
<Numerator>0.000261821</Numerator>
<Numerator>0.000120602</Numerator>
<Numerator>-9.99854e-05</Numerator>
<Numerator>-0.000162312</Numerator>
<Numerator>-9.79595e-05</Numerator>
<Numerator>-2.94355e-05</Numerator>
<Numerator>-3.09847e-06</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">400.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="11">
<Coefficients name=" DECIMATION">
<InputUnits>
<Name>count</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>-1.09889e-05</Numerator>
<Numerator>-1.99798e-05</Numerator>
<Numerator>-3.29668e-05</Numerator>
<Numerator>-4.39561e-05</Numerator>
<Numerator>-4.79522e-05</Numerator>
<Numerator>-4.09589e-05</Numerator>
<Numerator>-1.8981e-05</Numerator>
<Numerator>1.8981e-05</Numerator>
<Numerator>6.7932e-05</Numerator>
<Numerator>0.000118881</Numerator>
<Numerator>0.000158842</Numerator>
<Numerator>0.000174826</Numerator>
<Numerator>0.000157843</Numerator>
<Numerator>0.000104895</Numerator>
<Numerator>2.49751e-05</Numerator>
<Numerator>-6.49352e-05</Numerator>
<Numerator>-0.00014086</Numerator>
<Numerator>-0.000178822</Numerator>
<Numerator>-0.00016084</Numerator>
<Numerator>-8.59142e-05</Numerator>
<Numerator>3.29668e-05</Numerator>
<Numerator>0.000163837</Numerator>
<Numerator>0.000268733</Numerator>
<Numerator>0.000310691</Numerator>
<Numerator>0.000263737</Numerator>
<Numerator>0.00013087</Numerator>
<Numerator>-6.09391e-05</Numerator>
<Numerator>-0.00026074</Numerator>
<Numerator>-0.000408593</Numerator>
<Numerator>-0.000448554</Numerator>
<Numerator>-0.000353648</Numerator>
<Numerator>-0.000135864</Numerator>
<Numerator>0.000155845</Numerator>
<Numerator>0.000438563</Numerator>
<Numerator>0.000623379</Numerator>
<Numerator>0.000638365</Numerator>
<Numerator>0.000456546</Numerator>
<Numerator>0.000108891</Numerator>
<Numerator>-0.000315686</Numerator>
<Numerator>-0.000694309</Numerator>
<Numerator>-0.000903101</Numerator>
<Numerator>-0.00085415</Numerator>
<Numerator>-0.000533469</Numerator>
<Numerator>-7.99164e-06</Numerator>
<Numerator>0.000581421</Numerator>
<Numerator>0.00105695</Numerator>
<Numerator>0.00125675</Numerator>
<Numerator>0.00108792</Numerator>
<Numerator>0.000559443</Numerator>
<Numerator>-0.000201799</Numerator>
<Numerator>-0.000983021</Numerator>
<Numerator>-0.00154047</Numerator>
<Numerator>-0.00167733</Numerator>
<Numerator>-0.0013037</Numerator>
<Numerator>-0.000484518</Numerator>
<Numerator>0.000571431</Numerator>
<Numerator>0.00155645</Numerator>
<Numerator>0.00215685</Numerator>
<Numerator>0.00214287</Numerator>
<Numerator>0.00145855</Numerator>
<Numerator>0.00025075</Numerator>
<Numerator>-0.00115385</Numerator>
<Numerator>-0.00233568</Numerator>
<Numerator>-0.00290311</Numerator>
<Numerator>-0.0026174</Numerator>
<Numerator>-0.00148752</Numerator>
<Numerator>0.000215785</Numerator>
<Numerator>0.002014</Numerator>
<Numerator>0.00335166</Numerator>
<Numerator>0.00376825</Numerator>
<Numerator>0.00304597</Numerator>
<Numerator>0.0013037</Numerator>
<Numerator>-0.001009</Numerator>
<Numerator>-0.0032208</Numerator>
<Numerator>-0.00463139</Numerator>
<Numerator>-0.0047233</Numerator>
<Numerator>-0.00334667</Numerator>
<Numerator>-0.000793211</Numerator>
<Numerator>0.00224477</Numerator>
<Numerator>0.00486516</Numerator>
<Numerator>0.00620583</Numerator>
<Numerator>0.0057273</Numerator>
<Numerator>0.00340861</Numerator>
<Numerator>-0.000199801</Numerator>
<Numerator>-0.00409193</Numerator>
<Numerator>-0.00707596</Numerator>
<Numerator>-0.00812791</Numerator>
<Numerator>-0.00672831</Numerator>
<Numerator>-0.00307194</Numerator>
<Numerator>0.00192309</Numerator>
<Numerator>0.00682721</Numerator>
<Numerator>0.010091</Numerator>
<Numerator>0.0105175</Numerator>
<Numerator>0.00766437</Numerator>
<Numerator>0.00206594</Numerator>
<Numerator>-0.00483219</Numerator>
<Numerator>-0.01101</Numerator>
<Numerator>-0.0144376</Numerator>
<Numerator>-0.0136934</Numerator>
<Numerator>-0.00847457</Numerator>
<Numerator>0.000173827</Numerator>
<Numerator>0.010004</Numerator>
<Numerator>0.018085</Numerator>
<Numerator>0.0215935</Numerator>
<Numerator>0.0186664</Numerator>
<Numerator>0.00910094</Numerator>
<Numerator>-0.0053287</Numerator>
<Numerator>-0.0210541</Numerator>
<Numerator>-0.0333958</Numerator>
<Numerator>-0.0376226</Numerator>
<Numerator>-0.030137</Numerator>
<Numerator>-0.00949755</Numerator>
<Numerator>0.0229931</Numerator>
<Numerator>0.063304</Numerator>
<Numerator>0.10534</Numerator>
<Numerator>0.142124</Numerator>
<Numerator>0.167226</Numerator>
<Numerator>0.176134</Numerator>
<Numerator>0.167226</Numerator>
<Numerator>0.142124</Numerator>
<Numerator>0.10534</Numerator>
<Numerator>0.063304</Numerator>
<Numerator>0.0229931</Numerator>
<Numerator>-0.00949755</Numerator>
<Numerator>-0.030137</Numerator>
<Numerator>-0.0376226</Numerator>
<Numerator>-0.0333958</Numerator>
<Numerator>-0.0210541</Numerator>
<Numerator>-0.0053287</Numerator>
<Numerator>0.00910094</Numerator>
<Numerator>0.0186664</Numerator>
<Numerator>0.0215935</Numerator>
<Numerator>0.018085</Numerator>
<Numerator>0.010004</Numerator>
<Numerator>0.000173827</Numerator>
<Numerator>-0.00847457</Numerator>
<Numerator>-0.0136934</Numerator>
<Numerator>-0.0144376</Numerator>
<Numerator>-0.01101</Numerator>
<Numerator>-0.00483219</Numerator>
<Numerator>0.00206594</Numerator>
<Numerator>0.00766437</Numerator>
<Numerator>0.0105175</Numerator>
<Numerator>0.010091</Numerator>
<Numerator>0.00682721</Numerator>
<Numerator>0.00192309</Numerator>
<Numerator>-0.00307194</Numerator>
<Numerator>-0.00672831</Numerator>
<Numerator>-0.00812791</Numerator>
<Numerator>-0.00707596</Numerator>
<Numerator>-0.00409193</Numerator>
<Numerator>-0.000199801</Numerator>
<Numerator>0.00340861</Numerator>
<Numerator>0.0057273</Numerator>
<Numerator>0.00620583</Numerator>
<Numerator>0.00486516</Numerator>
<Numerator>0.00224477</Numerator>
<Numerator>-0.000793211</Numerator>
<Numerator>-0.00334667</Numerator>
<Numerator>-0.0047233</Numerator>
<Numerator>-0.00463139</Numerator>
<Numerator>-0.0032208</Numerator>
<Numerator>-0.001009</Numerator>
<Numerator>0.0013037</Numerator>
<Numerator>0.00304597</Numerator>
<Numerator>0.00376825</Numerator>
<Numerator>0.00335166</Numerator>
<Numerator>0.002014</Numerator>
<Numerator>0.000215785</Numerator>
<Numerator>-0.00148752</Numerator>
<Numerator>-0.0026174</Numerator>
<Numerator>-0.00290311</Numerator>
<Numerator>-0.00233568</Numerator>
<Numerator>-0.00115385</Numerator>
<Numerator>0.00025075</Numerator>
<Numerator>0.00145855</Numerator>
<Numerator>0.00214287</Numerator>
<Numerator>0.00215685</Numerator>
<Numerator>0.00155645</Numerator>
<Numerator>0.000571431</Numerator>
<Numerator>-0.000484518</Numerator>
<Numerator>-0.0013037</Numerator>
<Numerator>-0.00167733</Numerator>
<Numerator>-0.00154047</Numerator>
<Numerator>-0.000983021</Numerator>
<Numerator>-0.000201799</Numerator>
<Numerator>0.000559443</Numerator>
<Numerator>0.00108792</Numerator>
<Numerator>0.00125675</Numerator>
<Numerator>0.00105695</Numerator>
<Numerator>0.000581421</Numerator>
<Numerator>-7.99164e-06</Numerator>
<Numerator>-0.000533469</Numerator>
<Numerator>-0.00085415</Numerator>
<Numerator>-0.000903101</Numerator>
<Numerator>-0.000694309</Numerator>
<Numerator>-0.000315686</Numerator>
<Numerator>0.000108891</Numerator>
<Numerator>0.000456546</Numerator>
<Numerator>0.000638365</Numerator>
<Numerator>0.000623379</Numerator>
<Numerator>0.000438563</Numerator>
<Numerator>0.000155845</Numerator>
<Numerator>-0.000135864</Numerator>
<Numerator>-0.000353648</Numerator>
<Numerator>-0.000448554</Numerator>
<Numerator>-0.000408593</Numerator>
<Numerator>-0.00026074</Numerator>
<Numerator>-6.09391e-05</Numerator>
<Numerator>0.00013087</Numerator>
<Numerator>0.000263737</Numerator>
<Numerator>0.000310691</Numerator>
<Numerator>0.000268733</Numerator>
<Numerator>0.000163837</Numerator>
<Numerator>3.29668e-05</Numerator>
<Numerator>-8.59142e-05</Numerator>
<Numerator>-0.00016084</Numerator>
<Numerator>-0.000178822</Numerator>
<Numerator>-0.00014086</Numerator>
<Numerator>-6.49352e-05</Numerator>
<Numerator>2.49751e-05</Numerator>
<Numerator>0.000104895</Numerator>
<Numerator>0.000157843</Numerator>
<Numerator>0.000174826</Numerator>
<Numerator>0.000158842</Numerator>
<Numerator>0.000118881</Numerator>
<Numerator>6.7932e-05</Numerator>
<Numerator>1.8981e-05</Numerator>
<Numerator>-1.8981e-05</Numerator>
<Numerator>-4.09589e-05</Numerator>
<Numerator>-4.79522e-05</Numerator>
<Numerator>-4.39561e-05</Numerator>
<Numerator>-3.29668e-05</Numerator>
<Numerator>-1.99798e-05</Numerator>
<Numerator>-1.09889e-05</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">200.0</InputSampleRate>
<Factor>5</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
</Response>
</Channel>
</Station>
</Network>
</FDSNStationXML>

Setra 270
Setra 270 Pressure Transducer
This example was lifted from [62] Response [Polynomial] Blockette section (p.85) of the SEED manual (v.2.4).
The Setra Model 270 Pressure Transducer response is given as a polynomial response with 2 coefficients, valid for input pressure between 600-1100 mbar.
where \(a_0=600\) and \(a_1=100\), e.g., over this voltage range (0-5V), the input (mbar of pressure) is a linear function of the output (Volts).
Bound Values for polynomial: Lower 600 mbar Upper 1100 mbar
Volts |
mbar |
---|---|
0.0 |
600 |
1.0 |
700 |
2.0 |
800 |
3.0 |
900 |
4.0 |
1000 |
5.0 |
1100 |
How the InstrumentPolynomial was calculated
Assume we use an 8 bit digitizer where 0 counts = 0 volts and 255 counts = 5 volts. This translates to a digitizer gain of 51 Counts/volt.
This provides the following conversion from counts to pressure:
Counts |
Volts (V) = gain*counts |
Pressure (mbar) = p(volts) |
---|---|---|
0 |
0.0 |
600 |
51 |
1.0 |
700 |
102 |
2.0 |
800 |
153 |
3.0 |
900 |
204 |
4.0 |
1000 |
255 |
5.0 |
1100 |
Just as in the previous example for the YSI 44031, the InstrumentPolynomial stage looks a lot like the Polynomial stage except that the overall system gain has been incorporated into the polynomial coefficients. In this case, because it is linear, only the \(a_1\) term is affected.
where \(g_0 = 51\) is the overall gain, giving coefficients for the InstrumentPolynomial of \(a_0=600\) and \(a_1=1.96\). This yields an overall InstrumentPolynomial, where pressure is a function of the recorded counts, of:
A complete StationXML Response element is shown below for the Setra 270 sensor attached to a generic 51 count per volt datalogger sampling at 1Hz.
StationXML Show/Hide
<?xml version="1.0" encoding="UTF-8"?>
<FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fdsn.org/xml/station/1 http://www.fdsn.org/xml/station/fdsn-station-1.2.xsd"
schemaVersion="1.2">
<Source>isti</Source>
<Created>2020-06-06T01:19:15.736834Z</Created>
<Network code="XX">
<Station code="ABCD">
<Latitude>0.0</Latitude>
<Longitude>0.0</Longitude>
<Elevation>10.0</Elevation>
<Site>
<Name>Nowhere</Name>
</Site>
<Channel code="BDO" locationCode="10">
<Latitude>0.0</Latitude>
<Longitude>0.0</Longitude>
<Elevation>10.0</Elevation>
<Depth>0.0</Depth>
<Azimuth>0.0</Azimuth>
<Dip>-90.0</Dip>
<SampleRate>40.0</SampleRate>
<Sensor><Description>Setra 270 pressure transducer</Description></Sensor>
<Response>
<InstrumentPolynomial name="InstrumentPolynomial">
<InputUnits>
<Name>mbar</Name>
<Description>Pressure in mbar</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<ApproximationType>MACLAURIN</ApproximationType>
<FrequencyLowerBound unit="HERTZ">0.0</FrequencyLowerBound>
<FrequencyUpperBound unit="HERTZ">0.0</FrequencyUpperBound>
<ApproximationLowerBound>600</ApproximationLowerBound>
<ApproximationUpperBound>1100</ApproximationUpperBound>
<MaximumError>0.0</MaximumError>
<Coefficient>600</Coefficient>
<Coefficient>1.96</Coefficient>
</InstrumentPolynomial>
<Stage number="1">
<Polynomial name=" SENSOR RESPONSE ">
<InputUnits>
<Name>mbar</Name>
<Description>Pressure in mbar</Description>
</InputUnits>
<OutputUnits>
<Name>V</Name>
<Description>Volts</Description>
</OutputUnits>
<ApproximationType>MACLAURIN</ApproximationType>
<FrequencyLowerBound unit="HERTZ">0.0</FrequencyLowerBound>
<FrequencyUpperBound unit="HERTZ">0.0</FrequencyUpperBound>
<ApproximationLowerBound>600</ApproximationLowerBound>
<ApproximationUpperBound>1100</ApproximationUpperBound>
<MaximumError>0.0</MaximumError>
<Coefficient>600</Coefficient>
<Coefficient>100</Coefficient>
</Polynomial>
</Stage>
<Stage number="2">
<StageGain>
<Value>1.0</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
<Stage number="3">
<Coefficients name=" DIGITIZER">
<InputUnits>
<Name>V</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>count</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>1.0</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">1.0</InputSampleRate>
<Factor>1</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>51</Value>
<Frequency>0.0</Frequency>
</StageGain>
</Stage>
</Response>
</Channel>
</Station>
</Network>
</FDSNStationXML>
StationXML Tools
As StationXML files are ordinary text files, they may be edited with any text editor (e.g., vi/VIM, TextWrangler, Notepad/Wordpad, etc)
However, StationXML files can become very large and unwieldy as more stations and channels are added. For instance a regional seismic network can generate a StationXML file of size > 30Mb on disk (>400,000 lines).
Fortunately, several tools exist that allow creation and editing of StationXML files.
ObsPy + NRL
ObsPy contains a number of very useful modules for working with StationXML. In particular, ObsPy contain a module able to connect to the IRIS Nominal Resource Library (NRL) and download full responses (sensor + datalogger) for various combinations of sensor + datalogger contained within the NRL.
The excerpts below provide examples of how to work with ObsPy and the NRL.
from obspy.clients.nrl import NRL
from obspy.core.inventory import Inventory, Network, Station, Channel, Site
from obspy.core import UTCDateTime
#from lib.valid import stationxml_validator
def do_plot():
nrl = NRL('http://ds.iris.edu/NRL/')
datalogger_keys = ['REF TEK', 'RT 130 & 130-SMA', '1', '40']
sensor_keys = ['Streckeisen', 'STS-2', '1500', '3 - installed 04/97 to present']
response = nrl.get_response(sensor_keys=sensor_keys, datalogger_keys=datalogger_keys)
response.plot(min_freq=.001, outfile="sts2-rt130.png")
for stage in response.response_stages:
print(stage)
if __name__ == '__main__':
do_plot()
The resulting response plot looks like

Output for the response stages Show/Hide Stages
Response type: PolesZerosResponseStage, Stage Sequence Number: 1
From M/S (Velocity in Meters per Second) to V (Volts)
Stage gain: 1500.0, defined at 1.00 Hz
Transfer function type: LAPLACE (RADIANS/SECOND)
Normalization factor: 3.4684e+17, Normalization frequency: 1.00 Hz
Poles: (-0.037-0.037j), (-0.037+0.037j), (-15.64+0j), (-97.34-400.7j), (-97.34+400.7j), (-374.8+0j), (-520.3+0j), (-10530-10050j), (-10530+10050j), (-13300+0j), (-255.097+0j)
Zeros: 0j, 0j, (-15.15+0j), (-176.6+0j), (-463.1-430.5j), (-463.1+430.5j)
Response type: ResponseStage, Stage Sequence Number: 2
From V to V
Stage gain: 1.0, defined at 0.05 Hz
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 3
From V (Volts) to COUNTS (Digital Counts)
Stage gain: 629129.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 102400.00 Hz
Decimation Factor: 1
Decimation Offset: 0
Decimation Delay: 0.00
Decimation Correction: 0.00
Transfer function type: DIGITAL
Contains 1 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 4
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 102400.00 Hz
Decimation Factor: 8
Decimation Offset: 0
Decimation Delay: 0.00
Decimation Correction: 0.00
Transfer function type: DIGITAL
Contains 29 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 5
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 12800.00 Hz
Decimation Factor: 2
Decimation Offset: 0
Decimation Delay: 0.00
Decimation Correction: 0.00
Transfer function type: DIGITAL
Contains 13 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 6
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 6400.00 Hz
Decimation Factor: 2
Decimation Offset: 0
Decimation Delay: 0.00
Decimation Correction: 0.00
Transfer function type: DIGITAL
Contains 13 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 7
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 3200.00 Hz
Decimation Factor: 2
Decimation Offset: 0
Decimation Delay: 0.00
Decimation Correction: 0.00
Transfer function type: DIGITAL
Contains 13 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 8
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 1600.00 Hz
Decimation Factor: 2
Decimation Offset: 0
Decimation Delay: 0.00
Decimation Correction: 0.00
Transfer function type: DIGITAL
Contains 13 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 9
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 800.00 Hz
Decimation Factor: 2
Decimation Offset: 0
Decimation Delay: 0.01
Decimation Correction: 0.01
Transfer function type: DIGITAL
Contains 13 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 10
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 400.00 Hz
Decimation Factor: 2
Decimation Offset: 0
Decimation Delay: 0.12
Decimation Correction: 0.12
Transfer function type: DIGITAL
Contains 101 numerators and 0 denominators
Response type: CoefficientsTypeResponseStage, Stage Sequence Number: 11
From COUNTS (Digital Counts) to COUNTS (Digital Counts)
Stage gain: 1.0, defined at 0.05 Hz
Decimation:
Input Sample Rate: 200.00 Hz
Decimation Factor: 5
Decimation Offset: 0
Decimation Delay: 0.58
Decimation Correction: 0.58
Transfer function type: DIGITAL
Contains 235 numerators and 0 denominators
Up until now we have been examining the response in ObsPy format, that is, as an instance of type obspy.core.inventory.response.Response.
We can also examine this as part of a StationXML file, however, StationXML does not allow children to exist without parents. Thus, a response must be contained within a <Channel> element, which itself must be contained within a <Station> element, which must be contained within a <Network> element, etc.
The excerpt below creates a generic structure to contain our Response object, exports this to StationXML, and validates it against the StationXML schema. Note at the time of this writing, ObsPy outputs StationXML 1.1 and does not follow all of the recommendations in StationXML 1.2.
from obspy.clients.nrl import NRL
from obspy.core.inventory import Inventory, Network, Station, Channel, Site
from obspy.core import UTCDateTime
def do_xml():
nrl = NRL('http://ds.iris.edu/NRL/')
datalogger_keys = ['REF TEK', 'RT 130 & 130-SMA', '1', '40']
sensor_keys = ['Streckeisen', 'STS-2', '1500', '3 - installed 04/97 to present']
response = nrl.get_response(sensor_keys=sensor_keys, datalogger_keys=datalogger_keys)
channel = Channel(code='BHZ',
location_code='10', # required
latitude=0, # required
longitude=0, # required
elevation=0.0, # required
depth=0., # required
)
channel.response = response
station = Station(code='ABCD',
latitude=0,
longitude=0,
elevation=0.0,
creation_date=UTCDateTime(1970, 1, 1), # required
site=Site(name='Fake Site'), # required
channels=[channel],
)
network = Network(code='XX',
stations=[station])
inventory = Inventory(networks=[network], source="demo")
inventory.write("Test.xml", format="stationxml", validate=True)
if __name__ == '__main__':
do_xml()
The output StationXML file looks like:
<?xml version='1.0' encoding='UTF-8'?>
<FDSNStationXML xmlns="http://www.fdsn.org/xml/station/1" schemaVersion="1.1">
<Source>demo</Source>
<Module>ObsPy 1.2.2</Module>
<ModuleURI>https://www.obspy.org</ModuleURI>
<Created>2022-02-25T15:04:30.276150Z</Created>
<Network code="XX">
<Station code="ABCD">
<Latitude unit="DEGREES">0.0</Latitude>
<Longitude unit="DEGREES">0.0</Longitude>
<Elevation unit="METERS">0.0</Elevation>
<Site>
<Name>Fake Site</Name>
</Site>
<CreationDate>1970-01-01T00:00:00.000000Z</CreationDate>
<Channel code="BHZ" locationCode="10">
<Latitude unit="DEGREES">0.0</Latitude>
<Longitude unit="DEGREES">0.0</Longitude>
<Elevation unit="METERS">0.0</Elevation>
<Depth unit="METERS">0.0</Depth>
<Response>
<InstrumentSensitivity>
<Value>941864732.693</Value>
<Frequency>1.0</Frequency>
<InputUnits>
<Name>M/S</Name>
<Description>Velocity in Meters per Second</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
</InstrumentSensitivity>
<Stage number="1">
<PolesZeros>
<InputUnits>
<Name>M/S</Name>
<Description>Velocity in Meters per Second</Description>
</InputUnits>
<OutputUnits>
<Name>V</Name>
<Description>Volts</Description>
</OutputUnits>
<PzTransferFunctionType>LAPLACE (RADIANS/SECOND)</PzTransferFunctionType>
<NormalizationFactor>3.4684e+17</NormalizationFactor>
<NormalizationFrequency unit="HERTZ">1.0</NormalizationFrequency>
<Zero number="0">
<Real minusError="0.0" plusError="0.0">0.0</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Zero>
<Zero number="1">
<Real minusError="0.0" plusError="0.0">0.0</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Zero>
<Zero number="2">
<Real minusError="-15.15" plusError="-15.15">-15.15</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Zero>
<Zero number="3">
<Real minusError="-176.6" plusError="-176.6">-176.6</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Zero>
<Zero number="4">
<Real minusError="-463.1" plusError="-463.1">-463.1</Real>
<Imaginary minusError="-430.5" plusError="-430.5">-430.5</Imaginary>
</Zero>
<Zero number="5">
<Real minusError="-463.1" plusError="-463.1">-463.1</Real>
<Imaginary minusError="430.5" plusError="430.5">430.5</Imaginary>
</Zero>
<Pole number="0">
<Real minusError="-0.037" plusError="-0.037">-0.037</Real>
<Imaginary minusError="-0.037" plusError="-0.037">-0.037</Imaginary>
</Pole>
<Pole number="1">
<Real minusError="-0.037" plusError="-0.037">-0.037</Real>
<Imaginary minusError="0.037" plusError="0.037">0.037</Imaginary>
</Pole>
<Pole number="2">
<Real minusError="-15.64" plusError="-15.64">-15.64</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Pole>
<Pole number="3">
<Real minusError="-97.34" plusError="-97.34">-97.34</Real>
<Imaginary minusError="-400.7" plusError="-400.7">-400.7</Imaginary>
</Pole>
<Pole number="4">
<Real minusError="-97.34" plusError="-97.34">-97.34</Real>
<Imaginary minusError="400.7" plusError="400.7">400.7</Imaginary>
</Pole>
<Pole number="5">
<Real minusError="-374.8" plusError="-374.8">-374.8</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Pole>
<Pole number="6">
<Real minusError="-520.3" plusError="-520.3">-520.3</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Pole>
<Pole number="7">
<Real minusError="-10530.0" plusError="-10530.0">-10530.0</Real>
<Imaginary minusError="-10050.0" plusError="-10050.0">-10050.0</Imaginary>
</Pole>
<Pole number="8">
<Real minusError="-10530.0" plusError="-10530.0">-10530.0</Real>
<Imaginary minusError="10050.0" plusError="10050.0">10050.0</Imaginary>
</Pole>
<Pole number="9">
<Real minusError="-13300.0" plusError="-13300.0">-13300.0</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Pole>
<Pole number="10">
<Real minusError="-255.097" plusError="-255.097">-255.097</Real>
<Imaginary minusError="0.0" plusError="0.0">0.0</Imaginary>
</Pole>
</PolesZeros>
<StageGain>
<Value>1500.0</Value>
<Frequency>1.0</Frequency>
</StageGain>
</Stage>
<Stage number="2">
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="3">
<Coefficients>
<InputUnits>
<Name>V</Name>
<Description>Volts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>1.0</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">102400.0</InputSampleRate>
<Factor>1</Factor>
<Offset>0</Offset>
<Delay>0.0</Delay>
<Correction>0.0</Correction>
</Decimation>
<StageGain>
<Value>629129.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="4">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.000976562</Numerator>
<Numerator>0.00244141</Numerator>
<Numerator>0.00488281</Numerator>
<Numerator>0.00854492</Numerator>
<Numerator>0.0136719</Numerator>
<Numerator>0.0205078</Numerator>
<Numerator>0.0292969</Numerator>
<Numerator>0.0393066</Numerator>
<Numerator>0.0498047</Numerator>
<Numerator>0.0600586</Numerator>
<Numerator>0.0693359</Numerator>
<Numerator>0.0769043</Numerator>
<Numerator>0.0820312</Numerator>
<Numerator>0.0839844</Numerator>
<Numerator>0.0820312</Numerator>
<Numerator>0.0769043</Numerator>
<Numerator>0.0693359</Numerator>
<Numerator>0.0600586</Numerator>
<Numerator>0.0498047</Numerator>
<Numerator>0.0393066</Numerator>
<Numerator>0.0292969</Numerator>
<Numerator>0.0205078</Numerator>
<Numerator>0.0136719</Numerator>
<Numerator>0.00854492</Numerator>
<Numerator>0.00488281</Numerator>
<Numerator>0.00244141</Numerator>
<Numerator>0.000976562</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">102400.0</InputSampleRate>
<Factor>8</Factor>
<Offset>0</Offset>
<Delay>0.00013672</Delay>
<Correction>0.00013672</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="5">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">12800.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.00046875</Delay>
<Correction>0.00046875</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="6">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">6400.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0009375</Delay>
<Correction>0.0009375</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="7">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">3200.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.001875</Delay>
<Correction>0.001875</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="8">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">1600.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.00375</Delay>
<Correction>0.00375</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="9">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>0.000244141</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.225586</Numerator>
<Numerator>0.193359</Numerator>
<Numerator>0.12085</Numerator>
<Numerator>0.0537109</Numerator>
<Numerator>0.0161133</Numerator>
<Numerator>0.00292969</Numerator>
<Numerator>0.000244141</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">800.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.0075</Delay>
<Correction>0.0075</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="10">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>-7.15032e-07</Numerator>
<Numerator>-5.60109e-06</Numerator>
<Numerator>-2.62179e-06</Numerator>
<Numerator>-4.31403e-05</Numerator>
<Numerator>-4.64771e-06</Numerator>
<Numerator>1.43006e-06</Numerator>
<Numerator>2.34769e-05</Numerator>
<Numerator>1.43006e-06</Numerator>
<Numerator>-5.27932e-05</Numerator>
<Numerator>-0.000366692</Numerator>
<Numerator>0.000376107</Numerator>
<Numerator>0.000854226</Numerator>
<Numerator>3.05081e-05</Numerator>
<Numerator>-0.00127621</Numerator>
<Numerator>-0.000910951</Numerator>
<Numerator>0.00127669</Numerator>
<Numerator>0.00215165</Numerator>
<Numerator>-0.000461554</Numerator>
<Numerator>-0.00333765</Numerator>
<Numerator>-0.00140933</Numerator>
<Numerator>0.00377072</Numerator>
<Numerator>0.00419414</Numerator>
<Numerator>-0.00264288</Numerator>
<Numerator>-0.00720121</Numerator>
<Numerator>-0.000644006</Numerator>
<Numerator>0.009184</Numerator>
<Numerator>0.00608445</Numerator>
<Numerator>-0.00857824</Numerator>
<Numerator>-0.0127401</Numerator>
<Numerator>0.00398225</Numerator>
<Numerator>0.0186261</Numerator>
<Numerator>0.0052052</Numerator>
<Numerator>-0.0209407</Numerator>
<Numerator>-0.0181629</Numerator>
<Numerator>0.0166669</Numerator>
<Numerator>0.0322447</Numerator>
<Numerator>-0.00346588</Numerator>
<Numerator>-0.0429528</Numerator>
<Numerator>-0.0193265</Numerator>
<Numerator>0.044309</Numerator>
<Numerator>0.0497909</Numerator>
<Numerator>-0.0294164</Numerator>
<Numerator>-0.0826078</Numerator>
<Numerator>-0.00934166</Numerator>
<Numerator>0.107552</Numerator>
<Numerator>0.0816604</Numerator>
<Numerator>-0.10311</Numerator>
<Numerator>-0.204208</Numerator>
<Numerator>-3.12231e-05</Numerator>
<Numerator>0.390432</Numerator>
<Numerator>0.589958</Numerator>
<Numerator>0.390432</Numerator>
<Numerator>-3.12231e-05</Numerator>
<Numerator>-0.204208</Numerator>
<Numerator>-0.10311</Numerator>
<Numerator>0.0816604</Numerator>
<Numerator>0.107552</Numerator>
<Numerator>-0.00934166</Numerator>
<Numerator>-0.0826078</Numerator>
<Numerator>-0.0294164</Numerator>
<Numerator>0.0497909</Numerator>
<Numerator>0.044309</Numerator>
<Numerator>-0.0193265</Numerator>
<Numerator>-0.0429528</Numerator>
<Numerator>-0.00346588</Numerator>
<Numerator>0.0322447</Numerator>
<Numerator>0.0166669</Numerator>
<Numerator>-0.0181629</Numerator>
<Numerator>-0.0209407</Numerator>
<Numerator>0.0052052</Numerator>
<Numerator>0.0186261</Numerator>
<Numerator>0.00398225</Numerator>
<Numerator>-0.0127401</Numerator>
<Numerator>-0.00857824</Numerator>
<Numerator>0.00608445</Numerator>
<Numerator>0.009184</Numerator>
<Numerator>-0.000644006</Numerator>
<Numerator>-0.00720121</Numerator>
<Numerator>-0.00264288</Numerator>
<Numerator>0.00419414</Numerator>
<Numerator>0.00377072</Numerator>
<Numerator>-0.00140933</Numerator>
<Numerator>-0.00333765</Numerator>
<Numerator>-0.000461554</Numerator>
<Numerator>0.00215165</Numerator>
<Numerator>0.00127669</Numerator>
<Numerator>-0.000910951</Numerator>
<Numerator>-0.00127621</Numerator>
<Numerator>3.05081e-05</Numerator>
<Numerator>0.000854226</Numerator>
<Numerator>0.000376107</Numerator>
<Numerator>-0.000366692</Numerator>
<Numerator>-0.00041031</Numerator>
<Numerator>2.52645e-05</Numerator>
<Numerator>0.000261821</Numerator>
<Numerator>0.000120602</Numerator>
<Numerator>-9.99854e-05</Numerator>
<Numerator>-0.000162312</Numerator>
<Numerator>-9.79595e-05</Numerator>
<Numerator>-2.94355e-05</Numerator>
<Numerator>-3.09847e-06</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">400.0</InputSampleRate>
<Factor>2</Factor>
<Offset>0</Offset>
<Delay>0.125</Delay>
<Correction>0.125</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
<Stage number="11">
<Coefficients>
<InputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</InputUnits>
<OutputUnits>
<Name>COUNTS</Name>
<Description>Digital Counts</Description>
</OutputUnits>
<CfTransferFunctionType>DIGITAL</CfTransferFunctionType>
<Numerator>-1.09889e-05</Numerator>
<Numerator>-1.99798e-05</Numerator>
<Numerator>-3.29668e-05</Numerator>
<Numerator>-4.39561e-05</Numerator>
<Numerator>-4.79522e-05</Numerator>
<Numerator>-4.09589e-05</Numerator>
<Numerator>-1.8981e-05</Numerator>
<Numerator>1.8981e-05</Numerator>
<Numerator>6.7932e-05</Numerator>
<Numerator>0.000118881</Numerator>
<Numerator>0.000158842</Numerator>
<Numerator>0.000174826</Numerator>
<Numerator>0.000157843</Numerator>
<Numerator>0.000104895</Numerator>
<Numerator>2.49751e-05</Numerator>
<Numerator>-6.49352e-05</Numerator>
<Numerator>-0.00014086</Numerator>
<Numerator>-0.000178822</Numerator>
<Numerator>-0.00016084</Numerator>
<Numerator>-8.59142e-05</Numerator>
<Numerator>3.29668e-05</Numerator>
<Numerator>0.000163837</Numerator>
<Numerator>0.000268733</Numerator>
<Numerator>0.000310691</Numerator>
<Numerator>0.000263737</Numerator>
<Numerator>0.00013087</Numerator>
<Numerator>-6.09391e-05</Numerator>
<Numerator>-0.00026074</Numerator>
<Numerator>-0.000408593</Numerator>
<Numerator>-0.000448554</Numerator>
<Numerator>-0.000353648</Numerator>
<Numerator>-0.000135864</Numerator>
<Numerator>0.000155845</Numerator>
<Numerator>0.000438563</Numerator>
<Numerator>0.000623379</Numerator>
<Numerator>0.000638365</Numerator>
<Numerator>0.000456546</Numerator>
<Numerator>0.000108891</Numerator>
<Numerator>-0.000315686</Numerator>
<Numerator>-0.000694309</Numerator>
<Numerator>-0.000903101</Numerator>
<Numerator>-0.00085415</Numerator>
<Numerator>-0.000533469</Numerator>
<Numerator>-7.99164e-06</Numerator>
<Numerator>0.000581421</Numerator>
<Numerator>0.00105695</Numerator>
<Numerator>0.00125675</Numerator>
<Numerator>0.00108792</Numerator>
<Numerator>0.000559443</Numerator>
<Numerator>-0.000201799</Numerator>
<Numerator>-0.000983021</Numerator>
<Numerator>-0.00154047</Numerator>
<Numerator>-0.00167733</Numerator>
<Numerator>-0.0013037</Numerator>
<Numerator>-0.000484518</Numerator>
<Numerator>0.000571431</Numerator>
<Numerator>0.00155645</Numerator>
<Numerator>0.00215685</Numerator>
<Numerator>0.00214287</Numerator>
<Numerator>0.00145855</Numerator>
<Numerator>0.00025075</Numerator>
<Numerator>-0.00115385</Numerator>
<Numerator>-0.00233568</Numerator>
<Numerator>-0.00290311</Numerator>
<Numerator>-0.0026174</Numerator>
<Numerator>-0.00148752</Numerator>
<Numerator>0.000215785</Numerator>
<Numerator>0.002014</Numerator>
<Numerator>0.00335166</Numerator>
<Numerator>0.00376825</Numerator>
<Numerator>0.00304597</Numerator>
<Numerator>0.0013037</Numerator>
<Numerator>-0.001009</Numerator>
<Numerator>-0.0032208</Numerator>
<Numerator>-0.00463139</Numerator>
<Numerator>-0.0047233</Numerator>
<Numerator>-0.00334667</Numerator>
<Numerator>-0.000793211</Numerator>
<Numerator>0.00224477</Numerator>
<Numerator>0.00486516</Numerator>
<Numerator>0.00620583</Numerator>
<Numerator>0.0057273</Numerator>
<Numerator>0.00340861</Numerator>
<Numerator>-0.000199801</Numerator>
<Numerator>-0.00409193</Numerator>
<Numerator>-0.00707596</Numerator>
<Numerator>-0.00812791</Numerator>
<Numerator>-0.00672831</Numerator>
<Numerator>-0.00307194</Numerator>
<Numerator>0.00192309</Numerator>
<Numerator>0.00682721</Numerator>
<Numerator>0.010091</Numerator>
<Numerator>0.0105175</Numerator>
<Numerator>0.00766437</Numerator>
<Numerator>0.00206594</Numerator>
<Numerator>-0.00483219</Numerator>
<Numerator>-0.01101</Numerator>
<Numerator>-0.0144376</Numerator>
<Numerator>-0.0136934</Numerator>
<Numerator>-0.00847457</Numerator>
<Numerator>0.000173827</Numerator>
<Numerator>0.010004</Numerator>
<Numerator>0.018085</Numerator>
<Numerator>0.0215935</Numerator>
<Numerator>0.0186664</Numerator>
<Numerator>0.00910094</Numerator>
<Numerator>-0.0053287</Numerator>
<Numerator>-0.0210541</Numerator>
<Numerator>-0.0333958</Numerator>
<Numerator>-0.0376226</Numerator>
<Numerator>-0.030137</Numerator>
<Numerator>-0.00949755</Numerator>
<Numerator>0.0229931</Numerator>
<Numerator>0.063304</Numerator>
<Numerator>0.10534</Numerator>
<Numerator>0.142124</Numerator>
<Numerator>0.167226</Numerator>
<Numerator>0.176134</Numerator>
<Numerator>0.167226</Numerator>
<Numerator>0.142124</Numerator>
<Numerator>0.10534</Numerator>
<Numerator>0.063304</Numerator>
<Numerator>0.0229931</Numerator>
<Numerator>-0.00949755</Numerator>
<Numerator>-0.030137</Numerator>
<Numerator>-0.0376226</Numerator>
<Numerator>-0.0333958</Numerator>
<Numerator>-0.0210541</Numerator>
<Numerator>-0.0053287</Numerator>
<Numerator>0.00910094</Numerator>
<Numerator>0.0186664</Numerator>
<Numerator>0.0215935</Numerator>
<Numerator>0.018085</Numerator>
<Numerator>0.010004</Numerator>
<Numerator>0.000173827</Numerator>
<Numerator>-0.00847457</Numerator>
<Numerator>-0.0136934</Numerator>
<Numerator>-0.0144376</Numerator>
<Numerator>-0.01101</Numerator>
<Numerator>-0.00483219</Numerator>
<Numerator>0.00206594</Numerator>
<Numerator>0.00766437</Numerator>
<Numerator>0.0105175</Numerator>
<Numerator>0.010091</Numerator>
<Numerator>0.00682721</Numerator>
<Numerator>0.00192309</Numerator>
<Numerator>-0.00307194</Numerator>
<Numerator>-0.00672831</Numerator>
<Numerator>-0.00812791</Numerator>
<Numerator>-0.00707596</Numerator>
<Numerator>-0.00409193</Numerator>
<Numerator>-0.000199801</Numerator>
<Numerator>0.00340861</Numerator>
<Numerator>0.0057273</Numerator>
<Numerator>0.00620583</Numerator>
<Numerator>0.00486516</Numerator>
<Numerator>0.00224477</Numerator>
<Numerator>-0.000793211</Numerator>
<Numerator>-0.00334667</Numerator>
<Numerator>-0.0047233</Numerator>
<Numerator>-0.00463139</Numerator>
<Numerator>-0.0032208</Numerator>
<Numerator>-0.001009</Numerator>
<Numerator>0.0013037</Numerator>
<Numerator>0.00304597</Numerator>
<Numerator>0.00376825</Numerator>
<Numerator>0.00335166</Numerator>
<Numerator>0.002014</Numerator>
<Numerator>0.000215785</Numerator>
<Numerator>-0.00148752</Numerator>
<Numerator>-0.0026174</Numerator>
<Numerator>-0.00290311</Numerator>
<Numerator>-0.00233568</Numerator>
<Numerator>-0.00115385</Numerator>
<Numerator>0.00025075</Numerator>
<Numerator>0.00145855</Numerator>
<Numerator>0.00214287</Numerator>
<Numerator>0.00215685</Numerator>
<Numerator>0.00155645</Numerator>
<Numerator>0.000571431</Numerator>
<Numerator>-0.000484518</Numerator>
<Numerator>-0.0013037</Numerator>
<Numerator>-0.00167733</Numerator>
<Numerator>-0.00154047</Numerator>
<Numerator>-0.000983021</Numerator>
<Numerator>-0.000201799</Numerator>
<Numerator>0.000559443</Numerator>
<Numerator>0.00108792</Numerator>
<Numerator>0.00125675</Numerator>
<Numerator>0.00105695</Numerator>
<Numerator>0.000581421</Numerator>
<Numerator>-7.99164e-06</Numerator>
<Numerator>-0.000533469</Numerator>
<Numerator>-0.00085415</Numerator>
<Numerator>-0.000903101</Numerator>
<Numerator>-0.000694309</Numerator>
<Numerator>-0.000315686</Numerator>
<Numerator>0.000108891</Numerator>
<Numerator>0.000456546</Numerator>
<Numerator>0.000638365</Numerator>
<Numerator>0.000623379</Numerator>
<Numerator>0.000438563</Numerator>
<Numerator>0.000155845</Numerator>
<Numerator>-0.000135864</Numerator>
<Numerator>-0.000353648</Numerator>
<Numerator>-0.000448554</Numerator>
<Numerator>-0.000408593</Numerator>
<Numerator>-0.00026074</Numerator>
<Numerator>-6.09391e-05</Numerator>
<Numerator>0.00013087</Numerator>
<Numerator>0.000263737</Numerator>
<Numerator>0.000310691</Numerator>
<Numerator>0.000268733</Numerator>
<Numerator>0.000163837</Numerator>
<Numerator>3.29668e-05</Numerator>
<Numerator>-8.59142e-05</Numerator>
<Numerator>-0.00016084</Numerator>
<Numerator>-0.000178822</Numerator>
<Numerator>-0.00014086</Numerator>
<Numerator>-6.49352e-05</Numerator>
<Numerator>2.49751e-05</Numerator>
<Numerator>0.000104895</Numerator>
<Numerator>0.000157843</Numerator>
<Numerator>0.000174826</Numerator>
<Numerator>0.000158842</Numerator>
<Numerator>0.000118881</Numerator>
<Numerator>6.7932e-05</Numerator>
<Numerator>1.8981e-05</Numerator>
<Numerator>-1.8981e-05</Numerator>
<Numerator>-4.09589e-05</Numerator>
<Numerator>-4.79522e-05</Numerator>
<Numerator>-4.39561e-05</Numerator>
<Numerator>-3.29668e-05</Numerator>
<Numerator>-1.99798e-05</Numerator>
<Numerator>-1.09889e-05</Numerator>
</Coefficients>
<Decimation>
<InputSampleRate unit="HERTZ">200.0</InputSampleRate>
<Factor>5</Factor>
<Offset>0</Offset>
<Delay>0.585</Delay>
<Correction>0.585</Correction>
</Decimation>
<StageGain>
<Value>1.0</Value>
<Frequency>0.05</Frequency>
</StageGain>
</Stage>
</Response>
</Channel>
</Station>
</Network>
</FDSNStationXML>
IRIS SEED-StationXML Converter
IRIS maintains a Java-based tool that can convert between dataless SEED and StationXML formats at:
IRIS StationXML Validator
IRIS maintains a Java-based validator for StationXML documents.
Note: this tool validates documents against the official schema in addition to a set of rules that are not possible to represent in the XML Schema language.
Appendices
Mapping SEED blockettes to StationXML
B34 Units Abbreviations
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B034F03 |
Unit Lookup Code |
Multiple Mappings |
||
B034F04 |
Unit Name |
Multiple Mappings |
|
|
B034F05 |
Unit Description |
Multiple Mappings |
B50 Station Identifier
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B050F03 |
Station Call Letters |
code |
||
B050F04 |
Station Latitude |
|||
B050F05 |
Station Longitude |
|||
B050F06 |
Station Elevation |
|||
B050F07 |
Number Of Channels |
|||
B050F08 |
Number Of Station Comments |
|||
B050F09 |
Site Name |
|||
B050F10 |
Network Identifier Code |
No Mapping |
||
B050F11 |
32-bit Word Order |
No Mapping |
||
B050F12 |
16-bit Word Order |
No Mapping |
||
B050F13 |
Start Effective Date |
startDate |
||
B050F14 |
End Effective Date |
endDate |
||
B050F15 |
Update Flag |
No Mapping |
||
B050F16 |
Network Code |
code |
B52 Channel Identifier
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B052F03 |
Location Identifier |
locationCode |
||
B052F04 |
Channel Identifier |
code |
||
B052F05 |
Subchannel Identifier |
No Mapping |
||
B052F06 |
Instrument Identifier |
No Mapping |
||
B052F07 |
Optional Comment |
|||
B052F08 |
Units Of Signal Response |
No Mapping |
||
B052F09 |
Units Of Calibration Input |
|||
B052F10 |
Latitude |
|||
B052F11 |
Longitude |
|||
B052F12 |
Elevation |
|||
B052F13 |
Local Depth |
|||
B052F14 |
Azimuth |
|||
B052F15 |
Dip |
|||
B052F16 |
Data Format Identifier Code |
No Mapping |
||
B052F17 |
Data Record Length |
No Mapping |
||
B052F18 |
Sample Rate |
|||
B052F19 |
Max Clock Drift |
|||
B052F20 |
Number Of Comments |
No Mapping |
||
B052F21 |
Channel Flags |
No Mapping |
||
B052F22 |
Start Date |
startDate |
||
B052F23 |
End Date |
endDate |
||
B052F24 |
Update Flags |
No Mapping |
B53 Response Poles & Zeros
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B053F03 |
Transfer Function Type |
|||
B053F04 |
Stage Sequence Number |
number |
||
B053F05 |
Stage Signal Input Units |
B034F04, B043F06 |
||
B053F06 |
Stage Signal Output Units |
B034F04, B043F07 |
||
B053F07 |
A0 Normalization Factor |
|||
B053F08 |
Normalization Frequency |
|||
B053F09 |
Number Of Complex Zeros |
No Mapping |
||
B053F10 |
Real Zero |
|||
B053F11 |
Imaginary Zero |
|||
B053F12 |
Real Zero Error |
minusError plusError |
||
B053F13 |
Imaginary Zero Error |
minusError plusError |
||
B053F14 |
Number Of Complex Poles |
No Mapping |
||
B053F15 |
Real Pole |
|||
B053F16 |
Imaginary Pole |
|||
B053F17 |
Real Pole Error |
minusError plusError |
||
B053F18 |
Imaginary Pole Error |
minusError plusError |
B55 Response List
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B055F03 |
Stage Sequence Number |
name |
||
B055F04 |
Signal Input Units |
B034F04, B045F05 |
||
B055F05 |
Signal Output Units |
B034F04, B045F06 |
||
B055F06 |
Number Of Responses Listed |
No Mapping |
||
B055F07 |
Frequency |
|||
B055F08 |
Amplitude |
|||
B055F09 |
Amplitude Error |
minusError plusError |
||
B055F10 |
Phase Angle |
|||
B055F11 |
Phase Angle Error |
minusError plusError |
B57 Decimation
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B057F03 |
Stage Sequence Number |
number |
||
B057F04 |
Input Sample Rate |
|||
B057F05 |
Decimation Factor |
|||
B057F06 |
Decimation Offset |
|||
B057F07 |
Estimated Delay |
|||
B057F08 |
Correction Applied |
B58 Channel Sensitivity/Gain
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B058F03 |
Stage Sequence Number |
No Mapping |
||
B058F04 |
Sensitivity/Gain |
|||
B058F05 |
Frequency |
|||
B058F06 |
Number Of History Values |
No Mapping |
||
B058F07 |
Sensitivity For Calibration |
No Mapping |
||
B058F08 |
Frequency Of Calibration |
No Mapping |
||
B058F09 |
Time Of Calibration |
No Mapping |
B61 FIR Response
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B061F03 |
Stage Sequence Number |
number |
||
B061F04 |
Response Name |
name |
||
B061F05 |
Symmetry |
|||
B061F06 |
Signal In Units |
B034F04, B041F06 |
||
B061F07 |
Signal Out Units |
B034F04, B041F07 |
||
B061F08 |
Number of Coefficients |
No Mapping |
||
B061F09 |
FIR Coefficient |
B62 Response Polynomial
Field |
Field Name |
StationXML Element |
Attribute |
Dictionary Field(s) |
---|---|---|---|---|
B062F03 |
Transfer Function Type |
No Mapping |
||
B062F04 |
Stage Sequence Number |
number |
||
B062F05 |
Stage Signal Input Units |
B034F04, B042F06 |
||
B062F06 |
Stage Signal Output Units |
B034F04, B042F07 |
||
B062F07 |
Polynomial Approximation Type |
|||
B062F08 |
Valid Frequency Units |
No Mapping |
||
B062F09 |
Lower Valid Frequency Bound |
|||
B062F10 |
Upper Valid Frequency Bound |
|||
B062F11 |
Lower Bound Of Approximation |
|||
B062F12 |
Upper Bound Of Approximation |
|||
B062F13 |
Maximum Absolute Error |
|||
B062F14 |
Number Of Polynomial Coefficients |
No Mapping |
||
B062F15 |
Polynomial Coefficient Error |
minusError plusError |
Embedded Schema Keywords
The StationXML Reference of this documentation is auto-generated from documentation tags in the StationXML schema document. In this way a single source of documentation is maintained for the purposes of this generated documentation and those reading the XSD schema specification directly.
To allow additional granularity and clarity in the generated documentation, special embedded elements and attributes are parsed from the content of standard documentation tags of XML Schema.
The following elements and attributes are recognized in the standard <documentation> tags:
<example>
<warning>
<levelDesc>
LevelChoice
ElementChoice
These serve the following roles:
<example> - An XML element that contains an example of the relevant element in the StationXML documentation.
For instance, NetworkType element contains 2 documentation tags:
<xs:complexType name="NetworkType"> <xs:annotation> <xs:documentation>The Network container. All station metadata for this network is contained within this element. A Description element may be included with the official network name and other descriptive information. An Identifier element may be included to designate a persistent identifier (e.g. DOI) to use for citation. A Comment element may be included for additional comments. </xs:documentation> <xs:documentation><example><Network code="IU" startDate="2016-01-27T13:00:00" /></example></xs:documentation> </xs:annotation> </xs:complexType>
The first documentation text appears directly beneath the Network element in the StationXML documentation (it is the Network description), while the second is used to create the example beneath the description:
Example: <Network code=”IU” startDate=”2016-01-27T13:00:00” />
Note that for an example attribute, the <example> element should contain just the textual value, not the key or quotes. So within the code attribute on Network, the example would be just:
<xs:documentation><example>IU</example></xs:documentation>
which would produce:
code=”IU”
<warning> - This is used to wrap the text that follows it in an ReStructuredText admonition wrapper.
It is used, for example, to present a caution that a particular element may be deprecated in future versions of the StationXML documentation.
<levelDesc> - An XML element that contains a description of the relevant element in the StationXML documentation at a given level.
This exists as a container to hold the description as text, along with a LevelChoice attribute to specify the level.
LevelChoice=”X” - where X is in {N, S, C}.
When a particular XML element is used more than once in the documentation, this allows us to specify different documentation for different BaseNodeElements. For example, Network, Station and Channel types all inherit code from the BaseNodeElement. By using the LevelChoice attribute on a <levelDesc> or an <example> element, we can specify a unique Description and Example for the Network.code, Station.code and Channel.code.
For example,
<xs:attribute name="code" type="xs:string" use="required"> <xs:annotation> <xs:documentation><levelDesc LevelChoice="N">Name of Network</levelDesc></xs:documentation> <xs:documentation><levelDesc LevelChoice="S">Name of Station</levelDesc></xs:documentation> <xs:documentation><levelDesc LevelChoice="C">Name of Channel</levelDesc></xs:documentation> <xs:documentation><example LevelChoice="N">IU</example></xs:documentation> <xs:documentation><example LevelChoice="S">ANMO</example></xs:documentation> <xs:documentation><example LevelChoice="C">BHZ</example></xs:documentation> </xs:annotation> </xs:attribute>
If LevelChoice is not used (or if no choice is present that matches the Network, Station or Channel element, then the default value is used.
ElementChoice=”X” - Serves a similar function to LevelChoice except that it helps disambiguate StationXML elements that share a common parent type. For example, the unit attribute within FloatType:
<xs:attribute name="unit" type="xs:string" use="optional"> <xs:annotation> <xs:documentation>The unit of measurement. Use *SI* unit names and symbols whenever possible (e.g., 'm' instead of 'METERS').</xs:documentation> <xs:documentation><example>SECONDS</example></xs:documentation> <xs:documentation><example ElementChoice="WaterLevel">m</example></xs:documentation> <xs:documentation><example ElementChoice="Amplitude">m</example></xs:documentation> </xs:annotation> </xs:attribute> Because several elements are of FloatType but may have different units (METERS, SECONDS, etc), we use this to give more specific examples based on the element itself (Waterlevel, Amplitude). Note the default Example has unit=‘SECONDS’.
Identifiers and codes
For information on Network, Station, Location, and Channel codes, in addition to their combination into Source Identifiers, used in StationXML see:
Unit Naming Rules
The FDSN strongly recommends the use of SI unit names whenever possible. For details see the SI brochure at:
Use SI units, base or derivative, and their standard symbols whenever possible. Spell out and avoid abbreviations of non-SI units.
Exponents for powers are specified with **, e.g. s**2.
Multiplication is specified using * while division is specified with /. For example hit/(cm**2*hour).
Use parentheses sparingly, only when FORTRAN-like precedence would not be correct.
Unit definitions are singular, not plural, e.g. use second not seconds.
Unit names should not mix symbols and full names, use one or the other, e.g. use m/s or meter/second but not meter/s or m/second.
Units should be used case sensitively, using the case specified by SI rules.
SI symbols are preferred over names to avoid language differences, for example m/s is preferred over meter/second or metre/second
Singular lowercase count is preferred for digital counts, do not use counts or COUNT
Description is only needed when the unit name is not a well know SI unit or there is need for clarification. Prefer not to use a Description for common units like m/s, m/s**2, count, etc.
In the SEED format all unit names are recommended to be uppercase and SI when possible. For this reason, some unit documentation and required declarations in StationXML are in “uppercase SI” and these remain in order to maintain backward compatibility with the initial schema version. With the next major change to the specification the FDSN will very likely remove these “uppercase SI” unit names in favor of proper SI unit names.
Specifying Dates and Times
Dates and times should be specified using the ISO 8601 specification, limited to the following subtypes:
“YYYY-MM-DDZ” when only a day is needed, for example in Network startDate
“YYYY-MM-DDThh:mm:ssZ” when second precision is sufficient
“YYYY-MM-DDThh:mm:ss.SSSZ” when subsecond precision is required, 3, 6 or 9 decimal digits may be used.
The SEED specification limited times to 4 decimal digit precision, tenth of millisecond, but is recommended that the number of subsecond digits be a multiple of 3, corresponding to SI unit powers.
Note that in ISO 8601 a time without a “Z” appended is generally assumed by most string to time conversion routines to be in local time. Because all times in StationXML should be UTC, the FDSN strongly recommends that dates and times have the “Z” timezone specifier appended to avoid this ambiguity.
For further information see the XML Schema recommendation from W3C at https://www.w3.org/TR/xmlschema-2/#isoformats
Type Glossary
Type |
Type Details |
Examples |
---|---|---|
anyURI |
Represents a Uniform Resource Identifier Reference, which often describes URLs and file paths. |
|
CounterType |
Integers greater than or equal to 0. |
|
dateTime |
W3C/ISO 8601 representation of a date or time. A “Z” should always be appended to a time represent the timezone as UTC. |
|
decimal |
The subset of real numbers |
|
double |
A number between 2.23 × 10^-308 and 8.98 × 10^307 (rounded), along with positive and negative infinity and NaN. |
|
integer |
A decimal number without the period and numbers following it. |
…-2,-1,0,1, 2, … |
RestrictedStatusType |
an NMTOKEN that is either “open”, “closed,” or “partial.”” |
|
string |
A finite sequence of characters. |
foo bar |
NMTOKEN |
a combination of name characters, which include letters, digits, periods, hyphens, underscores, colons. |
|