Ejemplo n.º 1
0
                channel=chan,
                starttime=UTCDateTime('2004-001T00:00:00.0'),
                endtime=day + secperday,
                filename=respfilename(ch))
            resp = irisclient.evalresp(network,
                                       station,
                                       loc,
                                       chan,
                                       filename="%s%s.png" % (qcfigs, ch),
                                       output='plot')
        except:
            print("No response data for channel %s" % (ch))
    data = {}
    for ch in ids:
        print(respfilename(ch))
        stch = st.select(id=ch)  # Just take the data for a single channel
        calc_daily_stats(stch)
        try:
            ppsd = PPSD(stch[0].stats, metadata=str(respfilename(ch)))
            ppsd.add(stch)
            figname = "%s%d/%03d/%s.png" % (qcfigs, day.year, day.julday, ch)
            path_verify(figname)
            ppsd.plot(figname, cmap=pqlx)
            data = ppsd.get_percentile(percentile=50)
            fname = "%s%d/%03d/PPSDper50_%s.npz" % (qcdata, day.year,
                                                    day.julday, ch)
            path_verify(fname)
            np.savez(fname, data)
        except:
            print("Error with PPSD for %s check for response" % (ch))
Ejemplo n.º 2
0
#Make the PDF
ppsd = PPSD(st[0].stats,paz=pazval,ppsd_length=parserval.len,overlap=parserval.overlap)
for tr in st:
	ppsd.add(tr)
	if debug:
		for pdftime in ppsd.times:
			print 'Here is what is in the PDF: ' + str(pdftime)
try:
	pdfstring = "PDF" + st[0].stats.station + st[0].stats.channel + str(st[0].stats.starttime.year)+ \
		str(st[0].stats.starttime.julday).zfill(3) + ".jpg"
	medianstring = "MEDIAN" + st[0].stats.station + st[0].stats.channel + str(st[0].stats.starttime.year)+ \
		str(st[0].stats.starttime.julday).zfill(3)
	if debug:
		print 'Saving the PDF to : ' + pdfstring
		print 'Saving the median to : ' + medianstring
	
	ppsd.plot(show_percentiles=True,percentiles=[50], filename=pdfstring,
		show = True, show_histogram=True, grid= False, show_coverage=False, \
		period_lim=(parserval.minper,parserval.maxper))
	per,perval = ppsd.get_percentile(percentile=50,hist_cum=None)
	perFile = open(medianstring, 'w')
	for index, val in enumerate(per):
		perFile.write(str("%.2f" % val) + ',' + str(perval[index]) + '\n')
	perFile.close()
	 
		
except:
	'No PPSD saved'

		
Ejemplo n.º 3
0
                network,
                station,
                location=loc,
                channel=chan,
                starttime=UTCDateTime('2004-001T00:00:00.0'),
                endtime=day + secperday,
                filename=respfilename(ch))
            resp = irisclient.evalresp(network,
                                       station,
                                       loc,
                                       chan,
                                       filename="%s%s.png" % (qcfigs, ch),
                                       output='plot')
        except:
            print("No response data for channel %s" % (ch))
    data = {}
    for ch in ids:
        print(respfilename(ch))
        stch = st.select(id=ch)  # Just take the data for a single channel
        try:
            ppsd = PPSD(stch[0].stats, metadata=str(respfilename(ch)))
            ppsd.add(stch)
            figname = "%s%d/%03d/%s.png" % (qcfigs, day.year, day.julday, ch)
            path_verify(figname)
            ppsd.plot(figname, cmap=pqlx)
            data[ch] = ppsd.get_percentile(percentile=50)
        except:
            print("Error with PPSD for %s check for response" % (ch))

    print(data)
Ejemplo n.º 4
0
# channels = ['EHU']
# channels = ['SHU', 'MHV', 'MHW']

st = read(ondeckdatafile)
inv = read_inventory(ondeckmetadata)

# On deck SP data
print("Working on on-deck data")
chn = 'EHU'
tr = st.select(channel=chn)[1] #first one may have metadata problem
ppsd = PPSD(tr.stats, metadata=inv, ppsd_length=600.0, skip_on_gaps=True,
            period_limits=(0.02, 100.0), db_bins=(-200,-50, 1.))
st_select = st.select(channel=chn)
ppsd.add(st_select)
(ondeckpd, ondeckpsd) = ppsd.get_mean()
(ondeck05pd, ondeck05psd) = ppsd.get_percentile(percentile=5)
(ondeck95pd, ondeck95psd) = ppsd.get_percentile(percentile=95)

weeklydir = 'datafiles/weeklies/'
metadata = 'datafiles/ELYSE.all.dl0226.response.xml'

# On ground SP
print("Working on on-ground data")
chn = 'SHU'
loc = '68'
weeks = np.array(['2019-01-06-2019-01-12', '2019-01-13-2019-01-19',
                  '2019-01-20-2019-01-26', '2019-01-27-2019-02-02'])

# Do first file
week = weeks[0]
datafile = weeklydir + week + '.ELYSE.allseispress.mseed'
Ejemplo n.º 5
0
refperiod = 3.
nullwrite = NullWriter()
amp_by_obs_length = []
for obslength in tqdm(obslengths):
    peak_amp = []
    start = starttime
    end = start + obslength*3600.
    while (end < endtime):
        # print((end-starttime)/length)
        st = read(noisefile, starttime=start, endtime=end)
        oldstdout = sys.stdout
        sys.stdout = nullwrite
        ppsd = PPSD(st[0].stats, paz, db_bins=[-300, -75, 5],
                    period_limits=[1.0, 200], ppsd_length=ppsd_length)
        ppsd.add(st)
        (pd, psd) = ppsd.get_percentile(percentile=95)
        sys.stdout = oldstdout
        peak_amp.append(float(psd.max()))
        start = end
        end = start + obslength*3600.

    peak_amp = np.array(peak_amp)
    amp_by_obs_length.append(peak_amp)

with open(outputfile, 'w') as f:
    f.write('Obs period, mean, std, median, 5th percentile\n')
    for i, obslength in enumerate(obslengths):
        f.write('%.1f, %.2f, %.1f, %.1f, %.1f\n' %
                (obslength, np.mean(amp_by_obs_length[i]),
                 np.std(amp_by_obs_length[i]),
                 np.median(amp_by_obs_length[i]),