From a255718f59cebdd47c912218b997fb5235a51d43 Mon Sep 17 00:00:00 2001 From: Marcel Paffrath Date: Wed, 1 Jun 2016 14:14:57 +0200 Subject: [PATCH] added script to VC --- pylot/core/active/control_script.py | 128 ++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100755 pylot/core/active/control_script.py diff --git a/pylot/core/active/control_script.py b/pylot/core/active/control_script.py new file mode 100755 index 00000000..871520db --- /dev/null +++ b/pylot/core/active/control_script.py @@ -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