3

単一チャネル トレースのミニシード ファイルがあり、データがカウント単位であると想定しています (トレースの単位を確認するにはどうすればよいですか?)。これを m/s に変換する必要があります。私はすでにobspyチュートリアルをチェックしましたが、私の主な問題は、ミニシードファイルから極とゼロ、および増幅係数にアクセスする方法がわからないことです。また、これにはキャリブレーション ファイルが必要ですか?

これが私のコードです:

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

前もってありがとう、ギエルメ

EDIT:データを変換する方法をようやく理解しました。Obspy にはこれを実現するさまざまな方法がありますが、最終的には波形データから機器の応答を削除することになります。@Robert Barsch が言ったように、楽器の応答メタデータを取得するには別のファイルが必要でした。そこで、次のコードを思いつきました。

parser=Parser("dir/parser/file")
for tr in stream_aux:
    stream_id=tr.stats.network+'.'+tr.stats.station+ '..' + tr.stats.channel
    paz=parser.getPAZ(stream_id, tr.stats.starttime)
    df = tr.stats.sampling_rate
    tr.data = seisSim(tr.data, df, paz_remove=paz)

seisSim 関数を使用してデータを変換しています。私の問題は、出力が正しく見えないことです(しかし、画像を投稿できないようです)

4

2 に答える 2

2

これは明らかに、StackOverflow ではなく、地震学コミュニティに尋ねるべき質問です。ObsPy user mailinglistに書いてみませんか?

更新:答えは、ObsPy メーリング リストで直接質問する必要があるということです。ただし、実際の質問に対して適切な回答を与えるために: MiniSEED はデータのみの形式であり、極とゼロや使用される単位などのメタ情報は含まれません。したがって、ステーション固有のメタデータを取得するには、RESP、SAC PAZ、Dataless SEED、Full SEED などの別のファイルが必要になります。地震計補正を適用するには、http: //docs.obspy.org/tutorial/code_snippets/seismometer_correction_simulation.html を参照してください。

于 2013-05-01T16:32:06.543 に答える
1

カウントではなく実際の単位で取得するには、機器の応答を削除する必要があります。次のコードを使用して、機器の応答を削除します。

# 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 ゼロ = 加速度
于 2016-02-16T16:36:25.987 に答える