Skip to content

simondaout/bat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This tool is meant to do teleseismic backprojections, by forming virtual arrays from available global teleseismic stations. 




DEPENDENCIES:

ObsPy:  https://github.com/obspy/obspy/wiki
pyrocko/snuffler: https://github.com/pyrocko/pyrocko
GMT: http://gmt.soest.hawaii.edu



Manual and steps


- FOR GENERAL OPTIONS CHOOSE PARAMETERS IN GLOBAL.CONF
- EVENT DEPENDENT OPTIONS YOU CAN CHANGE IN THE CONFIG FILE OF THE EVENT IN THE EVENTFOLDER



PROCESSING STEPS:


STEP 1) PYTHON ARRAYTOOL.PY SEARCH: - Search for earthquakes and thier id's.
                                    - Searchparameter need to be defined beforehand in GLOBAL.CONF
                                    - POSSIBLE PARAMETER: - date from to
                                                     - magnitude
                                                     - catalog
                                                     - number of result

                            
STEP 2) PYTHON ARRAYTOOL.PY CREATE EVENTID: - creates the event and eventfolder, use the id that given out in step 1

                                    
                                    
STEP 3) PYTHON ARRAYTOOL.PY GETSTATIONS EVENTFOLDERNAME: - search for stations in IRIS AND WEBDC WITH SEARCHPARAMETERS DEFINED IN GLOBAL.CONF
                                                         - POSSIBLE PARAMETER: - MINDISTANCE FROM EVENT
                                                                            - MAXDISTANCE FROM EVENT
                                                                            - NETWORKS FOR BLACKLIST

                                                      
STEP 4) PYTHON ARRAYTOOL.PY GETDATA EVENTFOLDERNAME: - ACQUISITION OF ARCHIVED WAVEFORMDATA FROM IRIS AND EIDA SAVED AS SDS IN THE EVENTFOLDER
                                                     - COPY KEYFOLDERNAME FROM STEP 3 INTO GLOBAL.CONF !!!
                                                     - POSSIBLE PARAMETER: - KEYFOLDER
                                                     - DURATION OF WAVEFORMDATA


STEP 5) PYTHON ARRAYTOOL.PY GETMETA EVENTFOLDERNAME: - Download stations meta info (needs to be improved)


STEP 6) PYTHON ARRAYTOOL.PY PLOTSTATIONS EVENTFOLDERNAME: Plot Stationsmap


STEP 7) PYTHON ARRAYTOOL.PY CLUSTER EVENTFOLDERNAME: - clustering of stations to arrays (gives you arrayconfiguration + overview plot)
                                                     - CONFIGURATION PARAMETER IN THE EVENT CONFIG FILE (eventname.config)
                                                     - POSSIBLE PARAMETER:  - CLUSTERMETHOD (DISTANCE ZONING/ KMEANS)
                                                                              DISTANCE ZONING:
                                                                                    beginMinStationDistance = 1
                                                                                    endMinStationDistance=59.9
                                                                                    beginMaxStationDistance=60
                                                                                    endMaxStationDistance=90
                                                                                    
                                                                              KMEANS:
                                                                                   maxCluster = 2 (amount of clusters you would like to have at the end of clustering)
                                                                                   minStationAroundInitialCluster = 5 (minimum station around initial cluster center to be one inital cluster)
                                                                                   initialstationdistance = 10 (stations must be 10 degree around initial cluster center)
                                                                                   cutoff = 30              (if no final result for kmean then run only 30 times and take last result)
                                                                                   runs = 5                 (repeatings for kmean clustering to get best result)
                                                                                   centroidminDistance = 20 (minimum distance of initial centroids,UNIT IN DEGREE)
                                                                                   comparedelta = 2       
                                                                                   stationdistance = 10   (maximum distance from station to cluster center)
                                                                                   minClusterStation = 10 (minimum stations per cluster)
                                                                            
                                                     
STEP 8) PYTHON ARRAYTOOL.PY PROCESS EVENTFOLDERNAME: - ARRAYPROCESSING OF THE EVENT
                                                     - CONFIGURATION PARAMETER IN THE EVENT CONFIG FILE
                                                     - You will be asked for each array to manually pick the onset of the P-wave at the array centre in seconds
                                                       Snuffler is needed for this
                                                       
                                                       Parameters:
                                                        
                                                        
                                                        tttopt = -ph P (choose phase to calculate traveltimes)
                                                        depths=0,1,5   (how many depth to calculate depth lower, depth higher, depth step)

                                                        dimx = 40 (x dimension in points of the grid area)
                                                        dimy = 40 (y dimension in points of the grid area)
                                                        minDist = 30 (minimum distance between hypocenter and stations to be used)
                                                        maxDist = 95 (maximum distance between hypocenter and stations to be used)
                                                        step = 5 (sliding time window shift)
                                                        winlen = 30 (length of sliding time window )
                                                        forerun = 200 (length in seconds, timewindow before processing)
                                                        duration = 500 (length in seconds, timewindow for processing)
                                                        security = 60 (length in seconds, timewindow before and after forerun and duration)
                                                        gridspacing = 0.2 (gridspacing in degree, distance between gridpoints in processing area)
                                                        ttphase=P (traveltime phase)
                                                        export_unfiltered=false (export option for waveform data, raw waveforms)
                                                        export_filtered=false (export option for waveform data, filtered waveforms)
                                                        export_resampled=false (export option for waveform data, filtered+resampled waveforms)
                                                        new_frequence = 20 (working sampling frequency, all waveform will be converted to this sampling frequency)
                                                        ncore = 2 (number of processes for processing, max = number of timesteps)
                                                        fm = 1 (usage of focal mechanism 1=True, 0=False, must be defined in origin file of the event)
                                                        xcorr=1 (usage of crosscorrelation per array to get traveltime correction for array)
                                                        autoxcorrcorrectur = 0 (parameter for crosscorrelation, influence time shift of reference station, manual picking for control)
                                                        xcorrtreshold = 0.6 (treshold for crosscorrelation, station with lower then treshold will not be used in processing)
                                                        

                                                        plotcopy=plot1,plot2,plot3,plot4,rerun (COMMA SEPERATED LIST OF SCRIPT WHICH SHOULD BE COPIED FROM SKELETON TO EVENTFOLDER)
                                                        plot1 = semblance-plot.sh (SCRIPT TO PLOT EVERY TIMESTEP OF PROCESSING, FOUND IN SKELETON)
                                                        plot2 = summary-plot.sh (SCRIPT TO PLOT EVENT SUMMARY, FOUND IN SKELETON)
                                                        plot3 = plot-cluster.sh (SCRIPT TO PLOT ALL ARRAYS OF EVENT, FOUND IN SKELETON)
                                                        rerun= rerun_sum.py (SCRIPT TO REWRITE DURATION OF EVENT FOR SUMMARY PLOT)
                                                        plot4 = platebound.gmt (GMT FILE NEEDED BY PLOTSCRIPT TO PLOT PLATEBOUNDERIES IN MAP)
            
                                                        networks=r0 (COMMA SEPERATED LIST OF STATIONARRAYS YOU WANT TO USE FOR PROCESSING)
                                                        r0=BK.HUMO.00.BHZ|BK.WDC.00.BHZ|CC.ASBU..BHZ|CC.CIHL..BHZ (EXAMPLE LIST OF ARRAYDEFINITION)
                                                        R1= GR.*.BHZ| BK.WDC.*.BHZ (EXAMPLE LIST OF ARRAYDEFINITION)

                                                        beam = delaysum (SWITCH VARIABLE TO DECIDE WHICH BEAMFORMING METHOD YOU WANT TO USE, OPTIONS: DELAYSUM OR CAPON (IMPLEMENTED BUT NOT WORKING CORRECTLY))

                                                        filterswitch=2 (SWITCH VARIABLE TO DECIDE WHICH FILTER TO USE IN PROCESSING OPTIONS: 1 BANDPASS, 2 LOWPASS, 3 HIGHPASS)

                                                        #bp butterworth
                                                        flo = 0.4 (low cut corner frequency)
                                                        fhi = 3 ( high cut corner frequency)
                                                        ns = 3 ( number of filter sections)
                                                        zph = false (TRUE -> zero phase filter)

                                                        #lowpass butterworth
                                                        l_fc = 1.5 (low cut corner frequency)
                                                        l_ns = 4 ( number of filter sections)
                                                        l_zph = false (TRUE -> zero phase filter)

                                                        #highpass butterworth
                                                        h_fc = 2 (low cut corner frequency)
                                                        h_ns = 4 ( number of filter sections)
                                                        h_zph = false ( TRUE -> zero phase filter)
                                                        
                                                     
                                                        
                                                        
UTILITY COMMANDS:

 PYTHON ARRAYTOOL.PY LIST: - Lists all already created events (CONFIG AND ORIG FILE MUST EXIST) (OPTIONAL, JUST TO SEE WHICH EVENTS ARE AVAILABLE TO PROCESS)

About

Backprojection Array Tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published