![](/img/trans.png)
[英]How can I map the amplitude of an ECG signal in relation to the time stamp?
[英]In Obspy, how can I get an amplitude value at a specific time?
假設我已經有一個對象 Trace,比如說 trace,並且我想要在 30 秒時有一個幅度數據。
我想我可以像下面那樣做,為了簡單起見,假設開始時間為 0,
delta = trace.stats.delta
count = int(30 / delta)
target_value = trace.data[count]
他們是否准備了一個好的方法來做到這一點? 像……
trace.foo(time=30)
現在我們沒有這樣一個方便的方法,但我同意這將是一個很好的補充。 您可以在我們的 GitHub 問題跟蹤器中提出功能請求: https : //github.com/obspy/obspy/issues/new
同時,您可以將采樣時間便利功能與一些 numpy 混合使用來實現您想要的。
如果您正在尋找相對於跟蹤開始的時間:
from obspy import read
tr = read()[0]
my_time = 4 # 4 seconds after start of trace
times = tr.times()
index = times.searchsorted(my_time)
print(times[index])
print(tr.data[index])
4.0
204.817965896
如果您正在尋找絕對時間:
from obspy import read, UTCDateTime
tr = read()[0]
my_time = UTCDateTime("2009-08-24T00:20:12.0Z") # 4 seconds after start of trace
times = tr.times('utcdatetime')
index = times.searchsorted(my_time)
print(times[index])
print(tr.data[index])
2009-08-24T00:20:12.000000Z
156.68994731
如果您不匹配一個樣本的確切時間,則必須手動插值。
希望這能讓你開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.