本文整理汇总了Python中obspy.core.stream.Stream.copy方法的典型用法代码示例。如果您正苦于以下问题:Python Stream.copy方法的具体用法?Python Stream.copy怎么用?Python Stream.copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类obspy.core.stream.Stream
的用法示例。
在下文中一共展示了Stream.copy方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: getCatData
# 需要导入模块: from obspy.core.stream import Stream [as 别名]
# 或者: from obspy.core.stream.Stream import copy [as 别名]
def getCatData(date, opt):
"""
Download data from IRIS or Earthworm waveserver with padding and filter it. This is
a specialized version getData() for catalog events, pulling a smaller amount of time
around a known event.
date: UTCDateTime of known catalog event
opt: Options object describing station/run parameters
Returns ObsPy stream objects, one for cutting and the other for triggering
"""
nets = opt.network.split(',')
stas = opt.station.split(',')
locs = opt.location.split(',')
chas = opt.channel.split(',')
if opt.server == "IRIS":
client = Client("IRIS")
else:
client = EWClient(opt.server, opt.port)
st = Stream()
for n in range(len(stas)):
try:
stmp = client.get_waveforms(nets[n], stas[n], locs[n], chas[n],
date - opt.atrig, date + 3*opt.atrig)
stmp = stmp.filter("bandpass", freqmin=opt.fmin, freqmax=opt.fmax,
corners=2, zerophase=True)
stmp = stmp.merge(method=1, fill_value='interpolate')
except (obspy.fdsn.header.FDSNException):
try: # try again
stmp = client.get_waveforms(nets[n], stas[n], locs[n], chas[n],
date - opt.atrig, date + 3*opt.atrig)
stmp = stmp.filter("bandpass", freqmin=opt.fmin, freqmax=opt.fmax,
corners=2, zerophase=True)
stmp = stmp.merge(method=1, fill_value='interpolate')
except (obspy.fdsn.header.FDSNException):
print('No data found for {0}.{1}'.format(stas[n],nets[n]))
trtmp = Trace()
trtmp.stats.sampling_rate = opt.samprate
trtmp.stats.station = stas[n]
stmp = Stream().extend([trtmp.copy()])
# Resample to ensure all traces are same length
if stmp[0].stats.sampling_rate != opt.samprate:
stmp = stmp.resample(opt.samprate)
st.extend(stmp.copy())
st = st.trim(starttime=date-opt.atrig, endtime=date+3*opt.atrig, pad=True,
fill_value=0)
stC = st.copy()
return st, stC
示例2: get_PGMs
# 需要导入模块: from obspy.core.stream import Stream [as 别名]
# 或者: from obspy.core.stream.Stream import copy [as 别名]
def get_PGMs(tr,args):
ta=Stream()
ta=tr.copy()
ts=tr.copy()
for i in range(len(ta)):
m_dis=0
m_vel=0
m_acc=0
#### Displacement
if abs(max(ta[i])) >= abs(min(ta[i])):
m_dis=abs(max(ta[i]))
else:
m_dis=abs(min(ta[i]))
#### Velocity
ta[i].data = np.gradient(ta[i].data,ta[i].stats['delta'])
if abs(max(ta[i])) >= abs(min(ta[i])):
m_vel=abs(max(ta[i]))
else:
m_vel=abs(min(ta[i]))
ts[i].data = ta[i].data
#### Acceleration
ta[i].data = np.gradient(ta[i].data,ta[i].stats['delta'])
if abs(max(ta[i])) >= abs(min(ta[i])):
m_acc=abs(max(ta[i]))
else:
m_acc=abs(min(ta[i]))
#store obtained pgms
tr[i].stats['max_dis'] = m_dis
tr[i].stats['max_vel'] = m_vel
tr[i].stats['max_acc'] = m_acc
#define vectrors for Hz, T and G
sa=args.sa.split(' ')
spa=[]
for l in range(len(sa)-1):
spa.append(0)
per=[]
for l in range(len(sa)-1):
per.append(0)
ges=[]
for l in range(len(sa)-1):
ges.append(0)
#now for each value of sa convolve with response of pendulum
for j in range(len(sa)):
#apply convolution
if j >= 1:
tu=ta.copy()
T=eval(sa[j])*1.0
D=eval(sa[0])
Ts = '%5.3f' % (1/T)
omega = (2 * 3.14159 * T)**2
paz_sa=cornFreq2Paz(T,damp=D)
paz_sa['sensitivity'] =omega
paz_sa['zeros'] = []
for n in range(len(tu)):
tu[n].simulate(paz_remove=None,paz_simulate=paz_sa,taper=True, simulate_sensitivity=True, taper_fraction=0.050000000000000003)
per[j-1] = Ts
# #now measure for each i
for i in range(len(tu)):
if abs(max(tu[i])) >= abs(min(tu[i])):
val=abs(max(tu[i]))
else:
val=abs(min(tu[i]))
g=val/9.80665*100
g='%10.3e' % (g)
val='%10.3e' % (val)
#here give spectral acceleration in standard units m/s^2
# and not in g (suitable only for shakemap, can be
# later converted
tr[i]=UpdatePsaHeader(tr[i],j,val)
for i in range(len(tr)):
tr[i].stats['Tsa'] = per
return tr
示例3: print
# 需要导入模块: from obspy.core.stream import Stream [as 别名]
# 或者: from obspy.core.stream.Stream import copy [as 别名]
print(event.event_descriptions[0]['type'], ': ',event.event_descriptions[0]['text'])
c = arclinkClient(user='[email protected]')
start = event.origins[0].time
print('Origin time: ', start)
end = start + 3600
RLAS = c.get_waveforms(network='BW', station='RLAS', location='', channel='BJZ', starttime=start, endtime=end)
BHE = c.get_waveforms(network='GR', station='WET', location='', channel='BHE', starttime=start, endtime=end)
BHN = c.get_waveforms(network='GR', station='WET', location='', channel='BHN', starttime=start, endtime=end)
BHZ = c.get_waveforms(network='GR', station='WET', location='', channel='BHZ', starttime=start, endtime=end)
AC = Stream(traces=[BHE[0],BHN[0],BHZ[0]])
ac = AC.copy()
# **Remove the instrument responses of the instruments from the recordings + convert units**
# - convert Ring Laser recordings to nrad/s units using a conversion factor
# - remove the seismometer response using poles and zeros + convert from velocity to acceleration [nm/s^2] in one step
# - trim the traces to make sure start- and endtimes match for both instruments
# In[3]:
RLAS.detrend(type='linear')
RLAS[0].data = RLAS[0].data * 1/6.3191 * 1e-3
AC.detrend(type='linear')
AC.taper(max_percentage=0.05)
示例4: getData
# 需要导入模块: from obspy.core.stream import Stream [as 别名]
# 或者: from obspy.core.stream.Stream import copy [as 别名]
def getData(tstart, tend, opt):
"""
Download data from files in a folder, from IRIS, or a Earthworm waveserver
A note on SAC/miniSEED files: as this makes no assumptions about the naming scheme of
your data files, please ensure that your headers contain the correct SCNL information!
tstart: UTCDateTime of beginning of period of interest
tend: UTCDateTime of end of period of interest
opt: Options object describing station/run parameters
Returns ObsPy stream objects, one for cutting and the other for triggering
"""
nets = opt.network.split(',')
stas = opt.station.split(',')
locs = opt.location.split(',')
chas = opt.channel.split(',')
st = Stream()
if opt.server == 'SAC' or opt.server == 'miniSEED':
# Generate list of files
if opt.server == 'SAC':
flist = list(itertools.chain.from_iterable(glob.iglob(os.path.join(
root,'*.sac')) for root, dirs, files in os.walk(opt.sacdir)))+list(
itertools.chain.from_iterable(glob.iglob(os.path.join(
root,'*.SAC')) for root, dirs, files in os.walk(opt.sacdir)))
elif opt.server == 'miniSEED':
flist = list(itertools.chain.from_iterable(glob.iglob(os.path.join(
root,'*.mseed')) for root, dirs, files in os.walk(opt.mseeddir)))+list(
itertools.chain.from_iterable(glob.iglob(os.path.join(
root,'*.MSEED')) for root, dirs, files in os.walk(opt.mseeddir)))
# Determine which subset of files to load based on start and end times and
# station name; we'll fully deal with stations below
flist_sub = []
for f in flist:
# Load header only
stmp = obspy.read(f, headonly=True)
# Check if station is contained in the stas list
if stmp[0].stats.station in stas:
# Check if contains either start or end time
ststart = stmp[0].stats.starttime
stend = stmp[0].stats.endtime
if (ststart<=tstart and tstart<=stend) or (ststart<=tend and
tend<=stend) or (tstart<=stend and ststart<=tend):
flist_sub.append(f)
# Fully load data from file
stmp = Stream()
for f in flist_sub:
tmp = obspy.read(f, starttime=tstart, endtime=tend+opt.maxdt)
if len(tmp) > 0:
stmp = stmp.extend(tmp)
# Filter and merge
stmp = stmp.filter('bandpass', freqmin=opt.fmin, freqmax=opt.fmax, corners=2,
zerophase=True)
stmp = stmp.taper(0.05,type='hann',max_length=opt.mintrig)
for m in range(len(stmp)):
if stmp[m].stats.sampling_rate != opt.samprate:
stmp[m] = stmp[m].resample(opt.samprate)
stmp = stmp.merge(method=1, fill_value=0)
# Only grab stations/channels that we want and in order
netlist = []
stalist = []
chalist = []
loclist = []
for s in stmp:
stalist.append(s.stats.station)
chalist.append(s.stats.channel)
netlist.append(s.stats.network)
loclist.append(s.stats.location)
# Find match of SCNL in header or fill empty
for n in range(len(stas)):
for m in range(len(stalist)):
if (stas[n] in stalist[m] and chas[n] in chalist[m] and nets[n] in
netlist[m] and locs[n] in loclist[m]):
st = st.append(stmp[m])
if len(st) == n:
print("Couldn't find "+stas[n]+'.'+chas[n]+'.'+nets[n]+'.'+locs[n])
trtmp = Trace()
trtmp.stats.sampling_rate = opt.samprate
trtmp.stats.station = stas[n]
st = st.append(trtmp.copy())
else:
if '.' not in opt.server:
client = Client(opt.server)
else:
client = EWClient(opt.server, opt.port)
for n in range(len(stas)):
try:
#.........这里部分代码省略.........