User Guide
User Manual:
Open the PDF directly: View PDF .
Page Count: 12
Download | |
Open PDF In Browser | View PDF |
I MPERIAL C OLLEGE L ONDON , D EPARTMENT OF E ARTH S CIENCE AND E NGINEERING From relative to absolute teleseismic travel-times: the Absolute Arrival-time Recovery Method (AARM) AARM code user guide Alistair Boyce April 25, 2017 1 T HE PUBLISHED MANUSCRIPT This user guide provides support for the absolute arrival-time recovery method (AARM) code distributed upon request used in the following manuscript, when using the code please cite the work as below: Boyce A, Bastow I.B, Rondenay S and Van der Hilst R.D (2017) From relative to absolute teleseismic travel-times: the Absolute Arrival-time Recovery Method (AARM), Bulletin of the Seismological Society of America xxx(XXX), ppXXXX-XXXX, doi:10.xxxxx.x The manuscript describes the methodology (Figure 1.1) for recovery of absolute delay-times from relative arrival-time datasets found by using the multichannel cross-correlation code of VanDecar and Crosson (1990). Picks are compared to those catalogued by the International Seismological Centre (ISC) (Di Giacomo et al., 2014; International Seismological Centre, 2016). However it can also be generalized easily for use following other trace alignment methods (e.g. Rawlinson and Kennett, 2004). alistair.boyce10@imperial.ac.uk 1 Preliminary stacking Input trace alignment picks into unfiltered data Stack traces using phaseweighting Weighting traces Calculate SNR or XC with stack for each trace Adjust trace alignment if necessary Final stacking Apply weighting function to SNR or XC coefficients Restack traces using calculated weights Correction calculation Manually pick first break on final stack Calculate absolute correction to alignment point Residual calculation Compare with predicted arrival-times Calculate absolute arrival-time residuals Figure 1.1: A summary of AARM, the recovery of absolute arrival-times using a relative arrivaltime dataset. alistair.boyce10@imperial.ac.uk 2 2 B EFORE WE START - REQUIRED CODES AND FORMATS A variety of seismological tools are required for use of the AARM code. Due to bugs within my current versions of MacSac (10.6d-grh110/116) and IRIS SAC for linux (101.5c) I use both versions within the code written to work in the terminal in Mac OS X 10 Yosemite, El Capitan, Sierra etc. In instances where the variable $mac is used this is just to enable the codes to work across both laptop and desktop without changing the paths. The data I use is initally processed to calculate accurate relative arrival-times using the Multichannel cross correlation method of VanDecar and Crosson (1990) and the predicted arrivaltimes of the ak135 (Kennett et al., 1995) using the TauP Toolkit (Crotwell and Ritsema, 1999). Please refer to Boyce et al. (2016) for further detail of this workflow (such as filtering parameters). However it should be easily achieveable to generalize this method for use following another relative arrival-time determination scheme such as Rawlinson and Kennett (2004). The codes I use in this toolkit are listed below: • MACSAC - Version 10.6d-grh110/116 (www1.gly.bris.ac.uk/ george/sac-download.html) • IRIS SAC - Version 101.5c (ds.iris.edu/ds/nodes/dmc/software/downloads/sac/) • The Generic Mapping Tools, Version 5.1.1 (r12968) - (gmt.soest.hawaii.edu/projects/gmt/wiki/Download) • Sac misallaneous tools: 1. saclst (geophysics.eas.gatech.edu/classes/SAC/) 2. sactosac (www1.gly.bris.ac.uk/ george/sac-bugs.html) 3. sac2xy (web.utah.edu/thorne/software.html) The AARM code outlined here accepts SAC data files in the following format: YYYYMMDDHHMMSS_NETWORK_STATION.00.EHZ, which corresponds to: YEARMONTHDAYHOURMINUTESECOND_NETWORKCODE_STATIONCODE.LOCATION.COMPONENT. The component EHZ is used as instrument response is removed prior to the analysis to normalize all data to the shortest period response on the network (see Boyce et al., 2016). The AARM code can be changed relatively easily to accept other component choices. Event directories containing these SAC files are also assumed to be named using the YYYYMMDDHHMMSS 14 character format. The notable sac header placements are T0 for relative arrival-time derived alignment points (output of MCCC in my case (VanDecar and Crosson, 1990) and T1 for ak135 predicted arrivals. Note that these alignment points must be present in the unfiltered, instrument response corrected input data for this code. 3 G ETTING S TARTED First unzip the toolkit: >>tar -zxvf Absolute_arrival-time_toolkit.tar.gz alistair.boyce10@imperial.ac.uk 3 Move the contents of the resulting directory Absolute_arrival-time_toolkit to the location of your choice. The main script calc_arr_times.sh is written to work in the directory containing all event directories (YYYYMMDDHHMMSS) but others can be placed elsewhere. Open all scripts (*.sh) and edit all lines begining with /Users/ as these refer to your specific paths - make sure these are correct first! The SAC macro normalize.m must be placed within a directory which both you versions of SAC can find it. Also check the correct bash profile is being sourced in the first few lines. Finally make all script files executable using >> chmod u+x *.sh 3.1 ISC REFERENCE PICKS Within the directory ISC_FILES, the script (TT_calculator_ISC.sh) can be used to convert a file in ISC download format (e.g. ISC_picks_2007-2014.txt) using python to the format readable by the main script here (e.g. ISC_reference_picks.txt). This also uses a standard JWEED format event file for reference (e.g. correct_evts_304.txt) which are the events previously processed to obtain relative arrival-times. If this step is not done the ISC pick check part will be skipped. 3.2 W EIGHTING FUNCTION Open the script weighting_function.sh and select the desired function by changing the parameter $FUNC_NUM. The default is 1, i.e. a linear weighting. As mentioned within the main manuscript, our testing showed that adding a non-linear weighting function to the final stack did not show any visible improvement and thus a linear weighting function is used. The functionality is left in here to aid in future applications of the method where weighting is found to be useful. 3.3 P LOTTING In Make_plots_Dataset.sh edit the line Dataset_name= to reflect your own input dataset. This is used in the title and file name only. The script Make_plots_Event.sh will only produce a subplot of comparison with ISC picks if the correct files are in place following calculation in calc_arr_times.sh. 3.4 QUALITY CONTROL MEASURES The four quality control (QC) parameters can be found near the top of calc_arr_times.sh. These values cause the AARM code to notify the user that an individual file exceeds a particular QC parameter at the end of the implementation. Each QC parameter is explained below, please adjust in your own implementation as you see fit. • ISC_CUTOFF - The maximum allowable difference between available ISC picks and those generated using the AARM code. • SNR_CUTOFF - The lowest signal-to-noise ratio for an individual trace that is allowed to contribute to the stack. Traces with SNR values lower than this are assumed not to give reliable arrival-time measurements. alistair.boyce10@imperial.ac.uk 4 • XC_CUTOFF - The maximum allowable offset (in seconds) from zero in the cross correlation of each trace with the final stack. If an individual trace has a greater XC_CUTOFF it is not contributing constructively to a sharp pulse onset and should thus be removed. • AUTO_CUTOFF - The maximum allowable autocorrelation-estimated pick error, traces with pick errors greater than this can be easily removed. 4 U SING THE CODE 4.1 I NITIATING THE CODE Your data should now be ready to use with the AARM code. As explained in the main manuscript (Boyce et al., 2017) there are two methodologies for weighting the individual traces in the final stack: Cross correlation (XC) and signal-to-noise (NOISE). The choice is input as the first argument ($1) to the code. The second argument ($2) indicates whether the plotting scripts for each event and the whole dataset are to be called (YES/NO). An optional thrid argument ($3) enables the user to specify a rerun of the code (RERUN) for only the selection of events that contained traces that were removed in QC. These events will be listed in bad_events.txt after an inital run. Example implementations are shown below: >> calc_arr_times.sh>> calc_arr_times.sh XC NO >> calc_arr_times.sh NOISE YES RERUN 4.2 M ANUAL INPUT For each event one user input is required. This is picking the first breaking onset time on the final stack. Once initated the AARM code will run for the first event and sac will initate an X11 window showing the final stack for the first event. The user is then required to pick the onset time. To do this simply hover the mouse over the X11 window in the desired location and press “a” on the keyboard: >> a You can adjust your pick by pressing a in a different location if required. As with viewing any files in SAC using ppk it is possible to zoom in and out using x and o. When you are happy with the pick, press “n” on the keyboard to move the script on to the next event: >> n The AARM code will then calculate the absolute arrival-times and produce the plot for the first event if this funciton is enabled. The process then repeats for the remaining events until the dataset plot is formed and the code exits. alistair.boyce10@imperial.ac.uk 5 5 O UTPUTS 5.1 T O TERMINAL The code outputs text to the terminal window indicating the files which have failed the quality control criteria in section 3.4. The files to be removed are contained within the file bad_files.txt within the directories found in bad_events.txt. Use the command: >> while read line; do ‘echo $line‘; done > calc_arr_times.sh NOISE YES RERUN 5.2 T O . SAC FILE There are three SAC file outputs from the AARM code for each event: • stack.sac - The inital unweighted stack. • stack2.sac - The final weighted stack (on which the onset time is picked). • stack2_auto.sac - The autocorrelation of the final stack. 5.3 T O . TXT FILE The AARM code outputs ten textfiles to record statistics, calculations and most importantly the absolute arrival-time residuals. Many of these are used by the plotting scripts. • auto_corr_errors2.txt - The autocorrelation-estimated picking error. • Conv_stack-ISC_picks.txt - The difference between calculated absolute arrival-times (from AARM) and those derived from the ISC (Di Giacomo et al., 2014; International Seismological Centre, 2016). Convention: negative if calculated arrival-time is less than the ISC time. • correlation_sort2.txt - The cross correlation coefficients between the stack and each trace and the offset in XC maximum from zero, sorted by XC max offset. • correlation_weightings.txt - Record of calculation of stack weights for individual traces. • d.txt - Absolute arrival-time residuals (s), arrival-time compared to ak135. Convention: negative if calculated arrival-time (from AARM) is less than predicted. • SNR.txt - Estimated SNR for each trace contributing to the stack. • SNR_pick_error.txt - Mean SNR and mean autocorrelation error for use in plotting. alistair.boyce10@imperial.ac.uk 6 • stack2_SNR.txt - Estimated SNR of the final stack. • TT_calc_results.txt - Reocrd of arrival-time calculations for each trace. Columns are: Filename, omarker, rel-arr alignment, Predicted arrival, absolute arrival-time, predicted arrival-time, absolute arrival-time residual. • XC_means2_.txt - Mean SNR and mean cross correlation coefficient for use in plotting. 5.4 T O POSTSCRIPT FILE The individual plot for each event will be named as YYYYMMDDHHMMSS.ps. The dataset plot will be contained within the directory above, from which the main code is run ($Dataset_name.ps). 6 E XAMPLE D ATA The directory EXAMPLE_DATA contains sample data used in the study of Boyce et al. (2016). This section outlines the processes required to calculate absolute arrival-times for these two events 20071008171037, 20090809105556. Navigate into the directory containing the example data and move the main script to that location: >> cd EXAMPLE_DATA >> mv ../calc_arr_times.sh . Start the AARM code using either XC or NOISE weighting schemes then press a followed by n when the final stack appears for each event (two in this case): >> calc_arr_times.sh XC YES a n a n You will notice (depending on parameters used) that both directories (20071008171037, 20090809105556) may have some traces that do not pass the default QC criteria as shown in the terminal window. These can be removed (zipped, to prevent further analysis) using: >> while read line; do ‘echo $line‘; done > calc_arr_times.sh NOISE YES RERUN You will notice that the AARM code only reruns the analysis for the earthquakes that have bad individual traces, this is to save time when processing larger datasets. Now all data pass the alistair.boyce10@imperial.ac.uk 7 QC criteria as the file bad_file.txt is not displayed as it is empty. Go ahead and take a look at the text, SAC and postscript files produced by the code. You may need to adjust the X-Y scaling on some plots to make the data visible depending on dataset size. 7 E XPLANATION OF SECTIONS WITHIN EACH CODE - DETAILED COMMENTS 7.1 C ALCULATE ARRIVAL - TIMES - S HELL S CRIPT - C1 calc_arr_times.sh • C1.1 - Specifies path locations, removes files from a previous implementation, sets quality control limits and checks code has been called correctly by the user. The event loop criteria is also setup here, either all events, individual events or a rerun. • C1.2 - Loop is started for each event in the $file_list, old files removed, saclst function is used to read Omarker, T0, T1 headers from original sac files (*.EHZ) • C1.3 - Prepare files before stacking: (MacSac) traces are cut around their alignment point to 60 s (P-waves) in length (change to 120 s for S-waves), synchronized (optionally integrated to displacement) and saved as .stk files These traces are then normalized using the normalize.m macro (Files *.stk are overwritten). • C1.4 - (MacSac) read in normalized files from previous step and calculate RMS value for 25 s noise and signal windows. Write out .EHZ.stk.s files. Read *.EHZ.stk files use signal stacking subprocesses within MacSac to form a phaseweighted stack. Normalize the output stack. • C1.5 - (Linux Sac) read the stack and each trace (*.EHZ.stk). Correlate each trace with the stack throughout a 20 s window. Store time of min and max in T8 T9 headers, write *.EHZ.stk.corr. Use SAC headers User0 and User5 to calculate estimate for SNR for each trace - output to file SNR.txt. • C1.6 - Use preset trace SNR cutoff from C1.1 to copy name of low SNR traces to bad_files.txt this is used later to remove traces in a rerun of the script. • C1.7 - Collect cross correlation coefficients and location of XC maximum. This is used for weighting and calculating any shifts that can be used to improve the alignment. Use GMT to compute mean of XC coefficients. • C1.8 - When the noise weighting scheme is used: Calculate normalized SNR values, paste to SNR_norm.out. Use the normalized SNR values as input into weighting function (default is a linear distribution) (weight_function.sh). These weightings are then written to a SAC macro (addstack.m) to be used in the second phaseweighted stack. alistair.boyce10@imperial.ac.uk 8 • C1.9 - When the XC weighting scheme is used: Calculate normalized XC values, paste to correlation_norm.out. Use the normalized XC values as input into weighting function (default is a linear distribution) (weight_function.sh). These weightings are then written to a SAC macro (addstack.m) to be used in the second phaseweighted stack. Use the T9 header from correlation.out to adjust the T0 header in the files *.EHZ thus slightly adjusting the alignments where necessary (correct_T0.m). Normalize and write out SAC macro norm_stk2.m. Use the above macros to new T0 adjusted files. Output normalized updated files for stacking *.stk2. • C1.10 - (MacSac) Use signal stacking subprocesses on *.stk2 add files to stack using weightings in addstack.m. Stack as before but saving an “improved” second stack (stack2.sac) and normalize. Prompt manual picking of first break on second stack (USE a). Again input RMS values into headers for SNR calculation. • C1.11 - (Linux Sac) read the second stack (stack2.sac) and each updated trace (*.stk2). Correlate each trace with the stack throughout a 20 s window. Store time of min and max in T8 T9 headers, write *.stk2.corr2. Collect new cross correlation coefficients and location of XC maximum. This is sorted by XC maximum offset to give file correlation_sort2.txt • C1.12 - Using preset XC offset maximum ($XC_CUTOFF) paste files above this limit to bad_files.txt by running through correlation_sort2.txt. • C1.13 - On the prior correlation of stack with itself (autocorrelation) in C1.11, mark position of the maximum cross correlation value between the stack and the trace for each station. This will be offset from zero and thus acts as a picking error estimate. Using preset autocorrelation pick error estimate limit ($AUTO_CUTOFF) paste files above this limit to bad_files.txt by running through auto_corr_errors2.txt. Use GMT to paste mean trace SNR and mean pick error to SNR_pick_error.txt. • C1.14 - Collect the amarker from stack2.sac, this is the correction to be applied Tcor r in Eq 7 of Boyce et al. (2017). Calculate the SNR for the second stack in stack2_SNR.txt. Collect Omarker T0, T1 headers from *.EHZ.new to enable arrival-time calculations. Calculate arrival-time (TT), predicted arrival-time (ak135) and absolute arrival-time residual following Eq 7 of Boyce et al. (2017). • C1.15 - For each station check whether an ISC pick is available, calculate the difference between the official pick and the one calculated using this code, paste to Conv_stackISC_picks.txt. If this is above the preset value ($ISC_CUTOFF) paste the file name to bad_files.txt • C1.16 - use GMT to calculate statistical parameters for each event. Mean trace SNR and mean cross correlation coefficient for use in plotting. • C1.17 - Call plotting scripts for individual event and dataset. • C1.18 - Output the contents of bad_files.txt to the terminal. The user can now zip those individual files by calling: alistair.boyce10@imperial.ac.uk 9 >> while read line; do ‘echo $line‘; done 0.6 (lower left). • C3.3 - Uses sac2xy code to plot primary stack (blue) and secondary, weighted stack (red) and final stack SNR (upper left). • C3.4 - Plots histogram of absolute arrival-time residuals (upper middle). • C3.5 - Plots distribution of Absolute arrival-time residuals with respect to epicentral distance. Station names are plotted below (lower middle). • C3.6 - Plots a histogram of autocorrelation errors (upper right). alistair.boyce10@imperial.ac.uk 10 • C3.7 - Plots the difference in residual between code-derived pick and the ISC pick for available stations. This will not appear in cases where picks are not available. The correct file must have the appropriate format and be specified in this section under $ISC_FILE. 7.4 P RODUCE DATASET PLOT FOR ALL EVENTS - GMT 5 S HELL S CRIPT - C4 Make_plots_Dataset.sh • C4.1 - Sets up plotting standards, outlines requuirted files and formats and spcifies their location. • C4.2 - Plots absolute arrival-time residual distribution for the entire dataset including some statistics (lower left). • C4.3 - Plots histogram and statistics for autocorrelation errors for the entire dataset (upper left). • C4.4 - Plots the difference in residual between code-derived pick and the ISC pick for available stations for the entire dataset (upper middle). • C4.5 - Plots the mean autocorrelation error for each event with the mean trace SNR ration from each event (lower middle). • C4.6 - Shows the mean cross-correlation with of each trace with the stack against the mean trace SNR (lower right). • C4.7 - Plots the SNR of the stack against the mean trace SNR (upper right). • C4.8 - Computes statistics fo the dataset and prints to terminal output. 7.5 N ORMALIZES INDIVIDUAL SAC FILES SO THE MAXIMUM AMPLITUDE IS 1. - S AC MACRO - C5 normalize.m R EFERENCES Boyce, A., I. D. Bastow, F. A. Darbyshire, A. G. Ellwood, A. Gilligan, V. Levin, and W. Menke (2016), Subduction beneath Laurentia modified the eastern North American cratonic edge: Evidence from P wave and S wave tomography, J. Geophys. Res., 121(7), 5013–5030, doi: 10.1002/2016JB012838, 2016JB012838. Boyce, A., I. D. Bastow, S. Rondenay, and R. van der Hilst (2017), From relative to absolute arrival-times, Bull. Seis. Soc. Am. Crotwell, T. J. O., H. P., and J. Ritsema (1999), The TauP Toolkit: Flexible seismic travel-time and ray-path utilities, Seis. Res. Lett., 70(2), 154–160, doi:10.1785/gssrl.70.2.154. alistair.boyce10@imperial.ac.uk 11 Di Giacomo, D., D. A. Storchak, N. Safronova, P. Ozgo, J. Harris, R. Verney, and I. Bondár (2014), A New ISC Service: The Bibliography of Seismic Events, Seis. Res. Lett., 85(2), 354–360, doi: 10.1785/0220130143. International Seismological Centre (2016), On-line Bulletin, Internatl. Seismol. Cent., Thatcham, United Kingdom, http://www.isc.ac.uk. Kennett, B. L. N., E. R. Engdahl, and R. Buland (1995), Constraints on seismic velocities in the earth from traveltimes, Geophys. J. Int., 122, 108–124. Rawlinson, N., and B. Kennett (2004), Rapid estimation of relative and absolute delay times across a network by adaptive stacking, Geophys. J. Int., 157(1), 332–340, doi:10.1111/j. 1365-246X.2004.02188.x. VanDecar, J., and R. Crosson (1990), Determination of teleseismic relative phase arrival times using multi-channel cross-correlation and least squares, Bull. Seis. Soc. Am., 80(1), 150– 169. alistair.boyce10@imperial.ac.uk 12
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 12 Page Mode : UseOutlines Author : Title : Subject : Creator : LaTeX with hyperref package Producer : pdfTeX-1.40.17 Create Date : 2017:04:25 14:46:01+01:00 Modify Date : 2017:04:25 14:46:01+01:00 Trapped : False PTEX Fullbanner : This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2EXIF Metadata provided by EXIF.tools