Python如何使用obspy modu将计数转换为m/s

2024-05-16 18:51:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有单通道跟踪的miniseed文件,并且我假设数据是计数的(如何检查跟踪的单位?)。我需要把它转换成m/s。 我已经检查了obsby教程,我的主要问题是我不知道如何从miniseed文件访问极点和0和放大因子。 另外,我需要校准文件吗?在

这是我的代码:

from obspy.core import *
st=read('/Users/guilhermew/Documents/Projecto/Dados sismicos 1 dia/2012_130_DOC01.mseed')
st.plot()

提前谢谢你, 吉列尔梅

编辑: 我终于明白了如何转换数据。Obspy有不同的方法来实现这一点,但归根结底都是从波形数据中去除仪器响应。 就像@Robert Barsch说的,我需要另一个文件来获取仪器响应元数据。 所以我想出了以下代码:

^{pr2}$

我使用seisSim函数来转换数据。 我现在的问题是输出看起来不对(但我似乎无法发布图像)


Tags: 文件数据代码from单位教程仪器因子
2条回答

这显然是一个应该向地震学界提出的问题,而不是在StackOverflow!你写信给ObsPy user mailinglist怎么样?在

更新:我仍然觉得答案是,他/她应该直接向讨厌的邮件列表发问。然而,为了对实际问题给出一个恰当的答案:MiniSEED是一种只包含数据的格式,它不包含任何元信息,如极点和零或使用的单位。所以是的,你需要另一个文件,如RESP,SAC PAZ,无数据种子,完整种子等,以获得特定于电台的元数据。要应用地震计校正,请阅读http://docs.obspy.org/tutorial/code_snippets/seismometer_correction_simulation.html

要获得真实的单位而不是计数,您需要移除仪器响应。我使用以下代码删除仪器响应:

# Define math defaults
from __future__ import division #allows real devision without rounding

# Retrieve modules needed
from obspy.core import read
import numpy as np
import matplotlib.pyplot as plt

#%% Choose and import data
str1 = read(fileloc)
print(str1) #show imported data
print(str1[0].stats) #show stats for trace

#%% Remove instrument response

# create dictionary of poles and zeros
TrillC = {'gain': 800.0,
        'poles': [complex(-3.691000e-02,3.712000e-02),
                  complex(-3.691000e-02,-3.712000e-02),
                  complex(-3.739000e+02,4.755000e+02),
                  complex(-3.739000e+02,-4.755000e+02),
                  complex(-5.884000e+02,1.508000e+03),
                  complex(-5.884000e+02,-1.508000e+03)],
        'sensitivity': 8.184000E+11,
        'zeros': [0 -4.341E+02]}
str1_remres = str1.copy() #make a copy of data, so original isn't changed
str1_remres.simulate(paz_remove=TrillC, paz_simulate=None, water_level=60.0)
print("Instrument Response Removed")

plt.figure()
str1_remres_m = str1_remres.merge()
plt.plot(str1_remres_m[0].data) #only will plot first trace of the stream

如你所见,我已经手动定义了极点和零点。可能有一种方法可以自动输入,但我发现这是有效的方法。在

记住每种乐器都有不同的极点和零点。在

使用的0数取决于您希望输出的内容。地震仪通常是速度(2个零)

  • 3个零=位移
  • 2个零=速度
  • 1零=加速度

相关问题 更多 >