%pylab inline
from __future__ import print_function
import matplotlib.pylab as plt
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = 12, 8
import warnings
warnings.filterwarnings("ignore")
from obspy.core import read, UTCDateTime
Raw mseed je výstup z datalogeru GAIA. Střídají se v něm krátké signály z jednotlivých složek, Z N E Z N ... a uložen je po hodinách. Načteme část takového souboru:
st = read('07282000.00', endtime=UTCDateTime('2015-07-28T20:50:00'))
print(st)
Pro větší přehlednost se zaměříme jen na složku Z a necháme si vypsat časové díry a přesahy.
stZ = st.select(channel="*Z")
print(stZ)
stZ.print_gaps()
t1 = stZ[1].stats.starttime - 10
t2 = stZ[1].stats.endtime + 10
stZ.plot(starttime=t1, endtime=t2)
Druhá Trace
je odskočena, upravíme její počátek tak, aby se zařadila zpět. Pokud se vše povede, příkaz merge(method=-1)
udělá ze tří Trace
oddělených mezerou či přesahem jednu souvislou stopu.
stZ[1].stats.starttime -= 2.6609
stZ.merge(method=-1)
print(stZ)
stZ.plot(starttime=t1, endtime=t2)
Tím je zároveň opravena stopa Z i v původním st
. Podobně postupujeme i u zbylých složek N, E.
st.select(channel="*N")[1].stats.starttime -= 2.6609
st.select(channel="*E")[1].stats.starttime -= 2.6609
st.merge(method=-1)
print(st)
Ajta krajta, ještě je špatně network
.
for tr in st:
tr.stats.network = 'XT'
Nyní můžeme opravený mseed uložit, pro vytoření názvu souboru použijeme metadata v objektu Trace
.
for tr in st:
output = tr.id + tr.stats.starttime.strftime('.%Y.%j.%H%M%S') + '.seed'
print(output)
tr.write(output, format='MSEED')