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 = []
date += 86400 sacTool.cutSacByDate(date,staInfos,names.NMFileName,R=[38,40,100,104],outDir=traceDir,\ decMul=2,B=0,E=86400-10,isFromO=True,nameMode='ML') quakeWLXL = tool.readQuakeLsByP('NM/phaseLstWLX', staInfos)[0] catalog = WLXDIR + 'catalog.dat' tool.saveQuakeLs(quakeWLXL, catalog, mod='ML') date = UTCDateTime(2015, 9, 19, 0, 0, 10) 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] staL = detecQuake.getStaL(staInfos, aMat, staTimeML, modelL,date, \ getFileName=names.NMFileName,mode='mid',isPre=False,f=[2,8],R=[38,40,100,104]) waveformL, tmpNameL = tool.loadWaveformLByQuakeL(quakeWLXL, isCut=True, matDir='NM/output/', f=[2, 8]) quakeCCLs = [] 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])
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/')
laN=20 loN=20 modelL = [trainPS.loadModel('modelPNew2_15'),trainPS.loadModel('modelSNew2_15')] aMat=sacTool.areaMat(laL,loL,laN,loN) staTimeML= detecQuake.getStaTimeL(staInfos, aMat, taupM=taupM) 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
sacFileNames=sacFileNames+glob(fileP) return sacFileNames taupM=tool.quickTaupModel(modelFile='iaspTaupMat') laL=[32,44] loL=[102,118] laN=40 loN=40 modelL = [trainPS.loadModel('modelPNew2_15'),trainPS.loadModel('modelSNew2_15')] aMat=sacTool.areaMat(laL,loL,laN,loN) staTimeML= detecQuake.getStaTimeL(staInfos, aMat, taupM=taupM) quakeLs=list() bSec=UTCDateTime(2014,1,1).timestamp+0*86400*230 eSec=UTCDateTime(2017,2,4).timestamp+0*86400*231 for date in range(int(bSec),int(eSec),86400): dayNum=int(date/86400) dayDir='output/'+str(dayNum) if os.path.exists(dayDir): print('done') continue date=UTCDateTime(float(date)) print('pick on ',date) #date = UTCDateTime(2015,1,1)+i*86400 staL = detecQuake.getStaL(staInfos, aMat, staTimeML, modelL, date, getFileName=NMFileName,mode='mid') quakeLs.append(detecQuake.associateSta(staL, aMat, staTimeML, timeR=10, maxDTime=3, N=1,locator=locator(staInfos))) tool.saveQuakeLWaveform(staL, quakeLs[-1], matDir='output/') tool.saveQuakeLs(quakeLs, 'phaseLstHimaNewV100') detecQuake.plotResS(staL,quakeLs[-1]) staL=[]