예제 #1
0
파일: codacorr.py 프로젝트: iceseismic/sito
def cut_events(in_, out):
    print 'read events...'
    catalog = readEvents(in_, 'QUAKEML')
    print 'cut events...'
    for event in ProgressBar()(catalog):
        oid = get_event_id(event.origins[0].resource_id.getQuakeMLURI())
        ori = event.origins[0]
        etime = ori.time
        #print 'Select', event
        st = Stream()
        for arrival in ori.arrivals:
            arrival.pick_id.convertIDToQuakeMLURI()
            pick = arrival.pick_id.getReferredObject()
            if not pick:
                print 'FAIL to get pick from arrival'
                continue
            ptime = pick.time
            seed_id = pick.waveform_id.getSEEDString()
            try:
                st1 = Stream(data.client.getWaveform(*(seed_id.split('.') + [ptime - 50, ptime + 250])))
            except Exception as ex:
                print '%s for %s' % (ex, seed_id)
                continue
            st1.merge()
            #print 'load %s %s %.1f' % (seed_id, pick.phase_hint, ptime - etime)
            st1[0].stats['event'] = AttribDict(
                                        id=event.resource_id.resource_id,
                                        origin_id=oid,
                                        etime=etime, ptime=ptime,
                                        lat=ori.latitude, lon=ori.longitude,
                                        depth=ori.depth, rms=ori.quality.standard_error,
                                        mag=event.magnitudes[0].mag)
            st += st1
        st.write(out % oid, 'Q')
예제 #2
0
파일: map.py 프로젝트: wangwu1991/sito
    def onpress(event):
        if not event.inaxes or event.key != 'shift':
            return
        lon, lat = map(event.xdata, event.ydata, inverse=True)
        dlon = 0.05
        dlat = 0.05
        filter = ('%f < latitude < %f and %f < longitude < %f' %
                  (lat - dlat, lat + dlat, lon - dlon, lon + dlon))
        ev = catalog.filter2(filter)
        if len(ev) == 0:
            print 'No event picked'
            return
        from sito import Stream
        st = Stream()
        print 'Selcet', ev
        for arrival in ev[0].origins[0].arrivals:
            arrival.pick_id.convertIDToQuakeMLURI()
            pick = arrival.pick_id.getReferredObject()
            if not pick:
                print 'FAIL'
                return
            time = pick.time
            seed_id = pick.waveform_id.getSEEDString()
            try:
                st1 = Stream(
                    client.getWaveform(*(seed_id.split('.') +
                                         [time - 50, time + 250])))
            except Exception as ex:
                print '%s for %s' % (ex, seed_id)
                continue

            st1.merge()
            print 'load %s %s %.1f' % (seed_id, pick.phase_hint,
                                       time - ev[0].origins[0].time)
            st1[0].stats['label'] = '%s %s %.1f' % (
                seed_id, pick.phase_hint, time - ev[0].origins[0].time)
            st += st1
        st.setHI('filter', '')
        st.filter2(2, None)
        #st.plot(automerge=False, method='fast', type='relative')
        im = st.plot_()
        plt.show()
예제 #3
0
파일: codacorr.py 프로젝트: wangwu1991/sito
def cut_events(in_, out):
    print 'read events...'
    catalog = readEvents(in_, 'QUAKEML')
    print 'cut events...'
    for event in ProgressBar()(catalog):
        oid = get_event_id(event.origins[0].resource_id.getQuakeMLURI())
        ori = event.origins[0]
        etime = ori.time
        #print 'Select', event
        st = Stream()
        for arrival in ori.arrivals:
            arrival.pick_id.convertIDToQuakeMLURI()
            pick = arrival.pick_id.getReferredObject()
            if not pick:
                print 'FAIL to get pick from arrival'
                continue
            ptime = pick.time
            seed_id = pick.waveform_id.getSEEDString()
            try:
                st1 = Stream(
                    data.client.getWaveform(*(seed_id.split('.') +
                                              [ptime - 50, ptime + 250])))
            except Exception as ex:
                print '%s for %s' % (ex, seed_id)
                continue
            st1.merge()
            #print 'load %s %s %.1f' % (seed_id, pick.phase_hint, ptime - etime)
            st1[0].stats['event'] = AttribDict(
                id=event.resource_id.resource_id,
                origin_id=oid,
                etime=etime,
                ptime=ptime,
                lat=ori.latitude,
                lon=ori.longitude,
                depth=ori.depth,
                rms=ori.quality.standard_error,
                mag=event.magnitudes[0].mag)
            st += st1
        st.write(out % oid, 'Q')
예제 #4
0
파일: map.py 프로젝트: iceseismic/sito
    def onpress(event):
        if not event.inaxes or event.key != "shift":
            return
        lon, lat = map(event.xdata, event.ydata, inverse=True)
        dlon = 0.05
        dlat = 0.05
        filter = "%f < latitude < %f and %f < longitude < %f" % (lat - dlat, lat + dlat, lon - dlon, lon + dlon)
        ev = catalog.filter2(filter)
        if len(ev) == 0:
            print "No event picked"
            return
        from sito import Stream

        st = Stream()
        print "Selcet", ev
        for arrival in ev[0].origins[0].arrivals:
            arrival.pick_id.convertIDToQuakeMLURI()
            pick = arrival.pick_id.getReferredObject()
            if not pick:
                print "FAIL"
                return
            time = pick.time
            seed_id = pick.waveform_id.getSEEDString()
            try:
                st1 = Stream(client.getWaveform(*(seed_id.split(".") + [time - 50, time + 250])))
            except Exception as ex:
                print "%s for %s" % (ex, seed_id)
                continue

            st1.merge()
            print "load %s %s %.1f" % (seed_id, pick.phase_hint, time - ev[0].origins[0].time)
            st1[0].stats["label"] = "%s %s %.1f" % (seed_id, pick.phase_hint, time - ev[0].origins[0].time)
            st += st1
        st.setHI("filter", "")
        st.filter2(2, None)
        # st.plot(automerge=False, method='fast', type='relative')
        im = st.plot_()
        plt.show()