def ppsdTool(data, t1, t2, station, component='Z'): date = t1.__class__(t1.date) enddate = t2.__class__(t2.date) ppsd = None try: daystream = FloatingStream(data, date, station, 1800, component=component, reserve=20, use_get_raw=True) except: log.exception('Can not load FloatingStream use just Data' ' instead') daystream = data s = TerminalFile(sys.stdin) print "Press q to cancel calculation..." while date <= enddate: if s.getch() == 'q': return ppsd try: stream = daystream.getRawStream(date, station, component) except ValueError: log.exception('') date += 24 * 3600 continue if ppsd == None: ppsd = PPSD(stream[0].stats, data.paz) ppsd.add(stream, verbose=True) date += 24 * 3600 return ppsd
def add_ppsd(self, dontstop=False): if not dontstop and self.timer.isActive(): self.ui.button.setText('Continue') self.timer.stop() if self.date > self.enddate: self.timer.start(100) else: self.ui.pbar.setValue(100 * (self.date - self.startdate + 12 * 3600) / (self.enddate - self.startdate + 24 * 3600)) self.ui.button.setText('Stop') if self.data == None: self.data = getattr(mod_data, self.ui.project.text())() if self.daystream == None: try: self.daystream = FloatingStream( self.data, self.startdate, str(self.ui.station.text()), 1800, component=str(self.ui.component.text()), reserve=20, use_get_raw=True) except: log.exception('Can not load FloatingStream use just Data' ' instead') self.daystream = self.data while self.date <= self.enddate: try: stream = self.daystream.getRawStream( self.date, str(self.ui.station.text()), str(self.ui.component.text())) except Exception as ex: log.exception(str(ex)) self.date += 24 * 3600 stream = None else: break if stream == None: return if self.ppsd == None: stats = stream[0].stats paz = self.data.paz self.ppsd = PPSD(stats, paz) self.ppsd.add(stream, verbose=True) self.date += 24 * 3600 self.timer.start(100)
from obspy.signal.psd import PPSD from cpsd import PPSD from obspy.core import * from obspy.xseed import Parser st = read("BW.KW1..EHZ.D.2011.090") tr = st[0] p = Parser("dataless.seed.BW_KW1") paz = p.getPAZ("BW.KW1..EHZ") ppsd = PPSD(tr.stats, paz) #ppsd.add(tr) #ppsd.add(st[1]) #ppsd.plot() #ppsd.save("/tmp/ppsd")