added script to VC

This commit is contained in:
Marcel Paffrath 2016-06-01 14:14:57 +02:00
parent 9c8c5bb842
commit a255718f59

View File

@ -0,0 +1,128 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
from obspy import read
from obspy import Stream
from obspy import Trace
from datetime import datetime
import numpy as np
from pylot.core.active import surveyUtils
from pylot.core.active import seismicshot
from pylot.core.active import activeSeismoPick
from pylot.core.active import fmtomoUtils
from pylot.core.active import seismicArrayPreparation
# reload(seismicshot)
# reload(surveyUtils)
# reload(activeSeismoPick)
#####################################################################################
# parameter definitions:#############################################################
cutwindow = (0, 0.15) # cut out a part of the trace [seconds]
tmovwind = 0.1 # size of the moving window
windowsize = (30, 0) # windowsize for AIC picker (indices around HOS picks [time/sampling rate] !!!)
folm = 0.6 # fraction of local maximum for threshold picker
tsignal = 0.03
tgap = 0.0007
nproc = 32
vmin = 333
vmax = 5500
HosAic = 'aic' # can be 'hos' or 'aic'
rockeskyll = False
GZB = True
bb1 = False
# Simulation parameters #############################################################
simulation = True
niter = 4
bottomBoundary = -50.0
topBoundary = 5.0
nPointsPropgrid = (100, 100, 100)
nPointsVgrid = (30, 30, 30)
cushionfactor = 0.1
interpolationMethod = 'linear'
mygrid = '../mygrid.in'
cwd = os.getcwd()
simuldir = 'fmtomo_simulation'
pickdir = 'picks'
fmtomopath = '/rscratch/minos22/marcel/flachseismik/fmtomo/GZB_clean/'
######################################################################################
######################################################################################
if rockeskyll == True:
receiverfile = "Geophone_interpoliert_rockes"
sourcefile = "Schusspunkte_rockes"
obsdir = "/rscratch/minos22/marcel/flachseismik/rockeskyll_200615_270615/"
filename = 'survey_rockes.pickle'
elif GZB == True:
receiverfile = "Geophone_interpoliert_GZB"
sourcefile = "Schusspunkte_GZB"
#sourcefile = "Schusspunkte_GZB_1shot"
obsdir = "/rscratch/minos22/marcel/flachseismik/GZB_26_06_15_01/"
filename = 'survey_GZB.pickle'
elif bb1 == True:
receiverfile = "Geophone_Marcel"
sourcefile = "Schusspunkte_Marcel"
obsdir = "/rscratch/minos22/marcel/flachseismik/bachelor_bausenberg/"
filename = 'survey_bb1.pickle'
######################################################################################
starttime = datetime.now()
print('\n--------------------Starting Script at %s -------------------\n' %starttime.time())
print('directory: %s\nsourcefile: %s\nreceiverfile: %s\nsurvey output filename: %s\n' %(obsdir, sourcefile, receiverfile, filename))
if HosAic == 'aic': print('picking with AIC\n')
if HosAic == 'hos': print('picking with HOS\n')
survey = activeSeismoPick.Survey(obsdir, sourcefile, receiverfile, useDefaultParas = False)
survey.setParametersForAllShots(cutwindow, tmovwind, tsignal, tgap)
surveyUtils.setDynamicFittedSNR(survey.getShotDict())
#surveyUtils.setConstantSNR(survey.getShotDict(), 0)
survey.setArtificialPick(0, 0) # artificial pick at source origin
print('\nDone after %s seconds!\n------------------------------------------------------------------------------\n' % (datetime.now() - starttime).seconds)
survey.pickAllShots(vmin, vmax, folm, HosAic, windowsize, cores = nproc)
survey.cleanBySPE(maxSPE = 0.0075)
survey.saveSurvey(filename)
print('\n--- Finished picking ---')
print'Elapsed time:', datetime.now()-starttime
######################################################################################
if simulation == False:
sys.exit()
survey = activeSeismoPick.Survey.from_pickle(filename)
if not os.path.isdir(os.path.join(cwd, simuldir)):
err = os.mkdir(os.path.join(cwd, simuldir))
picks = os.path.join(simuldir, pickdir)
if not os.path.isdir(os.path.join(cwd, picks)):
err2 = os.mkdir(os.path.join(cwd, picks))
survey.exportFMTOMO(picks)
####### hard coded
os.chdir(simuldir)
survey.loadArray(obsdir, 'Geophone_eingemessen_GZB', 'Schusspunkte_GZB')
survey.seisArray.generateFMTOMOinputFromArray(nPointsPropgrid, nPointsVgrid,
(bottomBoundary, topBoundary), cushionfactor,
interpolationMethod, customgrid = mygrid,
writeVTK = False)
os.chdir(cwd)
####### test
tomo = fmtomoUtils.Tomo3d(fmtomopath, simuldir)
tomo.runTOMO3D(nproc, niter)
print('\n--- Finished script ---')
print'Elapsed time:', datetime.now()-starttime