Esempio n. 1
0
    def testValidateFrequencyResponses(self):
        ttrace = trace.Trace(ydata=num.random.random(1000))
        inverse_eval = trace.InverseEvalresp(respfile='test.txt',
                                             trace=ttrace,
                                             target='vel')
        inverse_eval.validate()

        pzk_response = trace.PoleZeroResponse(zeros=[0 + 0j, 0 + 0j],
                                              poles=[1 + 0j, 2 + 0j],
                                              constant=10.)
        pzk_response.regularize()
Esempio n. 2
0
    def get_restitution(self, tr, allowed_methods):
        if 'evalresp' in allowed_methods:
            respfile = pjoin(self.tempdir, 'RESP.%s.%s.%s.%s' % tr.nslc_id)
            if not os.path.exists(respfile):
                raise eventdata.NoRestitution(
                    'no response information available for trace %s.%s.%s.%s' %
                    tr.nslc_id)

            trans = trace.InverseEvalresp(respfile, tr)
            return trans
        else:
            raise eventdata.NoRestitution(
                'no allowed restitution method available')
Esempio n. 3
0
def iris_get_responses(stations, time, fn_template):
    for sta in stations:
        fn = fn_template % dict(
            network=sta.network, station=sta.station, location=sta.location)
        if not os.path.isfile(fn):
            try:
                fi = iris_ws.ws_resp(sta.network,
                                     sta.station,
                                     sta.location,
                                     '*',
                                     time=time)

                util.ensuredirs(fn)
                fo = open(fn, 'w')
                while True:
                    data = fi.read(1024)
                    if not data:
                        break
                    fo.write(data)

                fo.close()
                fi.close()
            except iris_ws.NotFound:
                pass

        for cha in sta.get_channels():

            class DummyTrace:
                pass

            tr = DummyTrace()
            tr.tmin = time
            tr.tmax = time
            tr.nslc_id = (sta.network, sta.station, sta.location, cha.name)
            if os.path.exists(fn):
                cha.inv_response = trace.InverseEvalresp(fn, tr)
            else:
                cha.inv_response = None
Esempio n. 4
0
from pyrocko import io, trace, evalresp_ext
from pyrocko.example import get_example_data

# Get online data
get_example_data('1989.072.evt.mseed')

traces = io.load('1989.072.evt.mseed')
out_traces = []
for tr in traces:
    respfn = tr.fill_template(
        'RESP.%(network)s.%(station)s.%(location)s.%(channel)s')

    if os.path.exists(respfn):

        try:
            resp = trace.InverseEvalresp(respfn, tr, target='dis')

            tr.extend(tr.tmin - 100., tr.tmax, fillmethod='repeat')

            displacement = tr.transfer(
                100.,  # rise and fall of time domain taper in [s]
                (0.005, 0.01, 1., 2.),  # frequency domain taper in [Hz]
                transfer_function=resp)

            # change channel id, so we can distinguish the traces in a trace
            # viewer.
            displacement.set_codes(channel='D' + tr.channel[-1])

            out_traces.append(displacement)

        except evalresp_ext.EvalrespError: