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')
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/')