staInfos = sacTool.readStaInfos(staLstFile)
taupM = tool.quickTaupModel(modelFile='iaspTaupMat')
modelL = [trainPS.loadModel('modelP_320000_100-2-15'),\
trainPS.loadModel('modelS_320000_100-2-15')]
aMat = sacTool.areaMat(laL, loL, laN, loN)
staTimeML = detecQuake.getStaTimeL(staInfos, aMat, taupM=taupM)
quakeLs = list()
bSec = UTCDateTime(2015, 6, 1).timestamp + 0 * 86400 * 230
eSec = UTCDateTime(2015, 10, 1).timestamp + 0 * 86400 * 231

for date in range(int(bSec), int(eSec), 86400):
    dayNum = int(date / 86400)
    dayDir = workDir + 'output20190901/' + str(dayNum)
    if os.path.exists(dayDir):
        print('done')
        continue
    date = UTCDateTime(float(date))
    print('pick on ', date)
    staL = detecQuake.getStaL(staInfos, aMat, staTimeML,\
     modelL, date, getFileName=names.NMFileName,\
     mode='norm',f=[2,15])
    quakeLs.append(detecQuake.associateSta(staL, aMat, \
        staTimeML, timeR=10, maxDTime=3, N=1,locator=\
        locator(staInfos)))
    tool.saveQuakeLWaveform(staL, quakeLs[-1], \
        matDir=workDir+'output20190901/',\
            index0=-1500,index1=1500)
    tool.saveQuakeLs(quakeLs, workDir + 'phaseLsNM20190901V6')
    detecQuake.plotResS(staL, quakeLs[-1], outDir=workDir + 'output20190901/')
    staL = []
quakeLs=list()

for i in range(181, 210):
    print('pick on ',i)
    date = UTCDateTime(2008,1,1)+i*86400
    dayNum=int(date.timestamp/86400)
    dayDir='output/'+str(dayNum)
    if os.path.exists(dayDir):
        print('done')
        continue
    staL = detecQuake.getStaL(staInfos, aMat, staTimeML, modelL, date, taupM=taupM, mode='mid')
    quakeLs.append(detecQuake.associateSta(staL, aMat, staTimeML, timeR=10, maxDTime=3, N=1,\
        locator=locator(staInfos)))
    tool.saveQuakeLs(quakeLs, 'phaseLst2')
    tool.saveQuakeLWaveform(staL, quakeLs[-1], matDir='output/')
    detecQuake.plotResS(staL,quakeLs[-1])

tool.saveQuakeLs(quakeLs, 'phaseLst2')

import os 
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
import detecQuake
#import trainPS
import sacTool
from imp import reload
from obspy import UTCDateTime
import numpy as np
import tool
from glob import glob
from locate import locator
import pyMFTCuda
quakeCCLs.append(pyMFTCuda.doMFTAll(staL,waveformL,date.timestamp,86400*50,\
    locator=locator(staInfos),tmpNameL=tmpNameL,minDelta=50*5,MINMUL=7,\
    quakeRefL=quakeWLXL,maxCC=0.3,winTime=0.8,R=[38,40,100,104],minMul=3,maxDis=200,\
    deviceL=['cuda:0','cuda:1']))
date = UTCDateTime(2015, 1, 1, 0, 0, 10)
quakeCCLs = []
for i in range(30):
    date += 86400
    staL = detecQuake.getStaL(staInfos, aMat, staTimeML, modelL,date, \
        getFileName=names.NMFileName,mode='mid',isPre=False,f=[2,8],R=[38,40,100,104])
    quakeCCLs.append(pyMFTCuda.doMFTAll(staL,waveformL,date.timestamp,86400*50,\
    locator=locator(staInfos),tmpNameL=tmpNameL,minDelta=50*5,MINMUL=7,\
    quakeRefL=quakeWLXL,maxCC=0.3,winTime=0.4,R=[38,40,100,104],minMul=3,maxDis=200))
    tool.saveQuakeLWaveform(staL, quakeCCLs[-1], matDir='NM/outputCC/')
    tool.saveQuakeLs(quakeCCLs, 'NM/phaseCCLst')
    detecQuake.plotResS(staL, quakeCCLs[-1], outDir='NM/outputCC/')
quakeCCLs = tool.readQuakeLsByP('NM/phaseCCLst', staInfos, isQuakeCC=True)
quakeLD = tool.getQuakeLD(quakeWLXL)
detecQuake.plotQuakeCCDis(quakeCCLs,
                          quakeWLXL,
                          R=R,
                          staInfos=staInfos,
                          alpha=1,
                          mul=0.1,
                          markersize=0.5)
plt.savefig('NM/quakeCCLDis.png', dpi=400)
timeG = loc.getGRef(quakeCCLs[0][0], quakeLD[quakeCCLs[0][0].tmpName])
G, V, v = loc.getGMRef(quakeCCLs[0][0], quakeLD[quakeCCLs[0][0].tmpName])

tool.saveQuakeLWaveform(staL, quakeCCLs[-1], matDir='wlx/outputCC/')
tool.saveQuakeLs(quakeCCLs, 'wlx/phaseCCLst')
示例#4
0
quakeLs = tool.readQuakeLs('NM/phaseLstNMALLReloc', staInfos)
laL = R[:2]
loL = R[2:]
laN = 30
loN = 30
modelL = None
aMat = sacTool.areaMat(laL, loL, laN, loN)
staTimeML = [None for staInfo in staInfos]
for sec in range(int(sDate.timestamp), int(eDate.timestamp), 86400):
    print(sec)
    date = UTCDateTime(sec)
    dayNum = int(sec / 86400)
    dayDir = 'NM/output/' + str(dayNum)

    if os.path.exists(dayDir):
        print('done')
        continue
    quakeL = []
    for quakeLTmp in quakeLs:
        for quake in quakeLTmp:
            if quake.time >= date.timestamp and quake.time < date.timestamp + 86400:
                quakeL.append(quake)
    if len(quakeL) == 0:
        print('no quake', date)
        continue
    staL = detecQuake.getStaL(staInfos, aMat, staTimeML, modelL,date, \
        getFileName=names.NMFileName,mode='mid',isPre=False,R=R,f=[-1,-1])
    print('quake Num:%d' % len(quakeL))
    tool.saveQuakeLWaveform(staL, quakeL, matDir='NM/output/')
    detecQuake.plotResS(staL, quakeL, outDir='NM/output/')