コード例 #1
0
    def testMemTracesFile(self):
        tr = trace.Trace(ydata=num.arange(100, dtype=num.float))

        f = pile.MemTracesFile(None, [tr])
        p = pile.Pile()
        p.add_file(f)
        for tr in p.iter_all(include_last=True):
            assert numeq(tr.ydata, num.arange(100, dtype=num.float), 0.001)
コード例 #2
0
    def testMemTracesFile(self):
        tr = trace.Trace(ydata=num.arange(100, dtype=num.float))

        f = pile.MemTracesFile(None, [tr])
        p = pile.Pile()
        p.add_file(f)
        for tr in p.iter_all():
            print tr.ydata
コード例 #3
0
ファイル: shadow_pile.py プロジェクト: valeryTech/pyrocko
 def _insert(self, iblock, traces):
     if traces:
         if self._storepath is not None:
             fns = io.save(traces,
                           self._storepath,
                           format='mseed',
                           additional={'iblock': iblock})
             self.load_files(fns, fileformat='mseed', show_progress=False)
         else:
             file = pile.MemTracesFile(None, traces)
             self.add_file(file)
コード例 #4
0
    def _insert_trace(self, trace):
        buf = self._append_to_buffer(trace)
        nslc = trace.nslc_id

        if buf is None:  # create new buffer trace
            if nslc in self._buffers:
                self._fixate(self._buffers[nslc])

            trbuf = trace.copy()
            buf = pile.MemTracesFile(None, [trbuf])
            self.add_file(buf)
            self._buffers[nslc] = buf

        buf.recursive_grow_update([trace])
        trbuf = buf.get_traces()[0]
        if self._fixation_length is not None:
            if trbuf.tmax - trbuf.tmin > self._fixation_length:
                self._fixate(buf)
                del self._buffers[nslc]
コード例 #5
0
ファイル: scenario.py プロジェクト: weixiongdi/pyrocko
    def get_pile(self, tmin=None, tmax=None):
        p = pile.Pile()

        trf = pile.MemTracesFile(None, self.get_waveforms(tmin, tmax))
        p.add_file(trf)
        return p
コード例 #6
0
 def add_trace(self, tr):
     memfile = pile.MemTracesFile(None, [tr])
     self.pile.add_file(memfile)
コード例 #7
0
ファイル: iris_pull.py プロジェクト: simondaout/bat
def kiwi_setup(options, config, event_names):
    from tunguska import prepare, gfdb

    conf = config['iris_pull_config']
    kiwi_conf = config['kiwi_config']

    if kiwi_conf.has('gfdb_path'):
        db = gfdb.Gfdb(kiwi_conf.path('gfdb_path'))
        deltat = db.dt
    else:
        if kiwi_conf.has('deltat'):
            deltat = kiwi_conf.deltat
        else:
            deltat = None
        db = None

    if not event_names:
        sys.exit('need event name')

    for event_name in event_names:
        conf.event_name = event_name
        kiwi_conf.event_name = event_name

        event = _get_event_infos(conf)
        stations = _get_stations(conf)
        for station in stations:
            station.set_event_relative_data(event)

        traces = _get_prepared_traces(conf, stations)
        raw_traces = _get_raw_traces(conf, stations)

        p = pile.Pile()
        buf = pile.MemTracesFile(None, traces)
        p.add_file(buf)

        processed = []
        for station in stations:

            tt1 = kiwi_conf.cut_span[0](station.dist_m, event.depth)
            tt2 = kiwi_conf.cut_span[1](station.dist_m, event.depth)
            if None in (tt1, tt2):
                continue

            tmin = tt1 + event.time
            tmax = tt2 + event.time

            traces = p.all(
                tmin=tmin,
                tmax=tmax,
                want_incomplete=False,
                trace_selector=lambda tr: get_nsl(tr) == get_nsl(station))

            for proj, in_channels, out_channels in station.guess_projections_to_rtu(
                    out_channels=('R', 'T', 'Z')):
                proc = trace.project(traces, proj, in_channels, out_channels)
                processed.extend(proc)
                for tr in proc:
                    for ch in out_channels:
                        if ch.name == tr.channel:
                            station.add_channel(ch)

        for tr in processed:
            if deltat is not None:
                try:
                    tr.downsample_to(deltat, snap=True, allow_upsample_max=5)
                except util.UnavailableDecimation, e:
                    logger.warn('Cannot downsample %s.%s.%s.%s: %s' %
                                (tr.nslc_id + (e, )))
                    continue

        stations_by_nsl = dict((get_nsl(s), s) for s in stations)

        acc = DummyAcc(raw_traces)
        prepare.save_kiwi_dataset(acc, stations_by_nsl, processed, event,
                                  kiwi_conf)