A student's guide on examining remotely triggered seismicity from waveform data

by Zhigang Peng

This website contains a brief tutorial on how to identify remotely triggered seismicity (shallow microearthquakes, icequakes, or deep tectonic tremor) following large distant earthquake from waveform data. It is part of the mini course series offered to incoming Geophysics graduate students and sometimes undergraduate summer interns at Georgia Tech. It is also available online so that outside users could use it as well.

My development in this tutorial is partially supported by the following NSF Grants:

This tutorial consists of the following sections:

Part 0: Prerequisite

Part 1: Distant Mainshock Selection

Select Target Mainshocks Based on Magnitudes, Distances, etc

  • In this tutorial, we will primarily use the broadband station TPUB from the BATS (Broadband Array in Taiwan for Seismology network in Taiwan for triggered deep tremor, broaband station JRC2 in Coso, southern California for triggered shallow microearthquakes, and broadband station HOWD in Antarctica for triggered icequakes. All waveforms can be downloaded from the IRIS DMC , or IRIS DMC MetaData Aggregator .
  • We first select distant shallow mainshocks that have satisfied a certain criterion. Generally there are two approaches for the mainshock selection. The first approach is to define a relatively large magnitude and distance threshold so that only the events with high-enough magnitudes are selected.
  • For example, let's select all shallow earthquakes (depth no more than 100 km) with magnitude of at least 7.5 since 1998 from the Advanced National Seismic System (ANSS) earthquake catalog . Please choose the output format "Catalog in readable format" and save it as ANSS_depth_100_mag_75_yr_1998.dat
  • Next, manually remove the last few entries without magnitudes, and reformat the catalog from 'readable format' into the following format: year mon day hr min sec longitude latitude depth mag. The output is saved as ANSS_depth_100_mag_75_yr_1998_reformat.dat .
  • Please note that in this section on triggered tremor, we will work at the Taiwan_Tremor_Triggering Tutorial. For recent publications on this topic, see Chao et al. (GJI, 2012) .
    $ cd Triggering_Tutorial/Taiwan_Tremor_Triggering
      sed -e 's/\// /g' -e 's/:/ /g' ANSS_depth_100_mag_75_yr_1998.dat |\
      awk '{printf "%4s %2s %2s %2s %2s %5.2f %9.4f %8.4f %6.2f %4.2f\n",$1,$2,$3,$4,$5,$6,$8,$7,$9,$10}' |\
      awk '{if ($NF>=7.5) print $0}' > ANSS_depth_100_mag_75_yr_1998_reformat.dat
  • Finally, we select events that are at least 1000 km away from the target region. We use the following commands to compute the distance between each potential mainshock and station TPUB (longitude 120.6296 deg, latitude 23.3005 deg). We focus on distant earthquakes mainly because it is relatively easy to separate seismic signals from the distant mainshocks (lower frequency) and locally triggered seismicity (higher frequency).
  • The source code for the command ndistbaz can be downloaded at sac_msc by zpeng . For those that have access to the Trigger_Tutorial.zip file, the file sac_msc.tar.gz is already included. Please untar it (i.e., tar zxvf sac_msc.tar.gz), then compile all the code with 'make all' in the sac_msc directory. Next, you can add the path to your PATH environmental variable (which tells the shell which directories to search for excutable variables).
    $ pwd
    $ PATH=$PATH:/Users/zpeng/afan/zpeng_paper/Triggering_Tutorial/sac_msc
    $ ndistbaz
    Usage: cat eve_lon eve_lat | ndistbaz sta_lon sta_lat
           Returns:  Distance Baz
    $ awk '{print $7,$8}' ANSS_depth_100_mag_75_yr_1998_reformat.dat | ndistbaz 120.6296 23.3005 |\
      awk '{printf "%8.2f %6.2f\n",$1,$2}' > ANSS_depth_100_mag_75_yr_1998_TPUB.dist
    $ paste -d" " ANSS_depth_100_mag_75_yr_1998_reformat.dat ANSS_depth_100_mag_75_yr_1998_TPUB.dist |\
      awk '{if ($(NF-1)>=1000) print $0}' > ANSS_depth_100_mag_75_yr_1998_dist_1000.dat
    $ rm ANSS_depth_100_mag_75_yr_1998_TPUB.dist
  • Or you can simply run the shell script do_ANSS_mag75.csh to do the job.
  • This procedure removed two nearby events (including the 1999/9/20 magnitude 7.7 Chi-Chi earthquake), resulting in a total of 77 events for further analysis. The output ANSS_depth_100_mag_75_yr_1998_dist_1000.dat has the following format.
    yr mo dy hr mi sec       long.       lat.  dep.  mag. dist_km  baz_deg
    1999 08 17 00 01 39.13   29.8640  40.7480  17.00 7.70  8421.36 308.38

Select Target Mainshock Based on Magnitudes, Distances, etc

  • The second approach is to relax the magnitude and distance criterion, but select events with the predicted dynamic stresses higher than certain threshold. In this case, we first select distant earthquakes with magnitude M ≥ 5.5 and depth ≤ 100 km since 1998. Please redownload the ANSS catalog with this criterion (file: ANSS_depth_100_mag_55_yr_1998.dat ) and reformat it with the precedure above. We end up with a new file named ANSS_depth_100_mag_55_yr_1998_reformat.dat , which contains more than 7200 events.
  • Next, we estimate the dynamic stress of each selected earthquake at station TPUB using a surface-wave magnitude Ms relationship following van der Elst and Brodsky, JGR 2010 . Assuming that the magnitude reported in the ANSS catalog is the surface-wave magnitude Ms, we predict the peak displaement and then compute the dynamic stress associated with the 20-s surface wave. We use the following shell script compute_dist_dynamic_stress.csh to perform the analysis. Please make sure to verify that the input parameter "ANSS_cat" is ANSS_depth_100_mag_55_yr_1998_reformat.dat in this script.
    $ compute_dist_dynamic_stress.csh TPUB 120.6296 23.3005
  • The output is named TPUB_ANSS_disp_ds.dat , which is in the following format
    dyn_stress_kPa dist_deg yr mo dy hr mi sec    long.       lat.           dep.     mag.
    104.7917860  31.0500 2004 12 26 00 58 53.45   95.9820   3.2950   30.00 9.00
  • Finally, we select events above certain dynamic stress threshold and distant range (e.g., >=1 kPa and >=100 km) with the following command. We end up with 269 events for further analysis. We reformat the output as well.
    $ awk '{if ($1>=1 && $2*111.19>=100) print $0}' TPUB_ANSS_disp_ds.dat |\
      awk '{printf "%4s %2s %2s %2s %2s %5.2f %9.4f %8.4f %6.2f %4.2f %8.2f %8.3f\n",$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$2*111.19,$1}' \
      > ANSS_depth_100_mag_55_yr_1998_dist_100_kpa_1.dat
  • File ANSS_depth_100_mag_55_yr_1998_dist_100_kpa_1.dat has the following format.
    yr mo dy hr mi sec       long.       lat.  dep.  mag. dist_km  dyn_stress_kpa
    2004 12 26 00 58 53.45   95.9820   3.2950  30.00 9.00  3452.45  104.792
  • Similarly, if you would like to, you can use the prepared do_ANSS_mag55.csh to do all the jobs.
  • In the interest of time, let's focus the following 7 events that have epicentral distances larger than 1000 km, and predicted dynamic stresses larger than 20 kPa.
    $ awk '{if ($(NF-1)>1000 && $NF > 20) print $0}' ANSS_depth_100_mag_55_yr_1998_dist_100_kpa_1.dat
    2011 03 11 05 46 24.12  142.3730  38.2970  29.00 9.10  2650.77  204.560
    2004 12 26 00 58 53.45   95.9820   3.2950  30.00 9.00  3452.45  104.792
    2005 03 28 16 09 36.53   97.1080   2.0850  30.00 8.60  3453.12   41.705
    2012 04 11 08 38 36.72   93.0630   2.3270  20.00 8.60  3767.12   36.095
    2007 09 12 11 10 26.83  101.3670  -4.4380  34.00 8.50  3710.63   29.399
    2003 09 25 19 50  6.36  143.9100  41.8150  27.00 8.30  2980.23   26.691
    2008 05 12 06 28  1.57  103.3220  31.0020  19.00 7.90  1912.02   22.199
    $ awk '{if ($(NF-1)>1000 && $NF > 20) print $0}' ANSS_depth_100_mag_55_yr_1998_dist_100_kpa_1.dat\
    > TW_TPUB_select_distant_ms.tmp
    $ awk '{print $1$2$3$4$5}' TW_TPUB_select_distant_ms.tmp > TW_TPUB_select_distant_ms.id
    $ paste -d" " TW_TPUB_select_distant_ms.id TW_TPUB_select_distant_ms.tmp > TW_TPUB_select_distant_ms.txt
    $ rm -f TW_TPUB_select_distant_ms.id TW_TPUB_select_distant_ms.tmp

Part 2: Waveform Preparation and Examination

Request Waveforms from the Data Center

  • Once you have prepared a list of target mainshocks, the next step is to download the waveforms from the seismic data center. Currently there are many data centers around the world. In this tutorial we present two ways to request the seismic data from the IRIS Data Management Center (DMC).
  • The first way to request the data is to use the IRIS's wilber tools. To do so, please go to the following website Wilber 3: Select Event and select the target events.
  • Please go ahead and use the wilber tool to request data for the TW network, BH_ channel. If we use the 2011/03/11 Mw9.1 Tohoku-Oki earthquake as an example, this will result in 7 stations. Please click the "Request Data" button, and select the longest time windows available before (30 min before the event time) and after (360 min after the S arrival). To make downloading easier, please select "Buddle As gzipped tar achive". Finally fill in your name, email and click on "submit". Repeat the same process for the rest events.
  • An alternative and preferred way is to use IRIS's webservice tool and download the data directly. For further instructions, please see the online timeseries builder . For example, the following web link provides a direct access to the 5 hrs before and after the 2011/03/11 Tohoku-Oki mainshock (TW.TPUB BHE component, output SAC little-endian). Next, you can use 'curl' or 'wget' to download the files into local disk directly. Or you can directly copy/paste the full weblink to any of your brower, and it will start downloading the file immediately. Remember to change the file name to TW.TPUB.BHE.SAC.
    $ curl http://service.iris.edu/irisws/timeseries/1/query?net=TW&sta=TPUB&cha=BHZ&start=2011-03-11T00:46:24&end=2011-03-11T10:46:24&output=sacbl&loc=--"\
  • We have prepared the following csh script to automatically download the 5-hour of data (gen_iris_ws_request.csh) and put them into different directories (named by the event origin time).

Organize the SAC Data

  • Once you have downloaded all the SAC files, the next step is to organize the data in a unified way so that one could use shell scripts to automatically process them. Basically, we would like to make sure that the file names follow certain convention (my default choice is NET.STA.CHAN.SAC), and put various mainshock and station information into the SAC headers, shift the origin time, etc.
  • Similarly, we have prepared a simple csh script preprocessing.csh to do all the job. For more information on how to put the mainshock information into the SAC header, see zpeng's SAC Tutorial .

Retrieve Waveforms and Plot Directly Within Matlab

  • Rather than sending requests and downloading the data to your local directory, one could also directly fetch data within Matlab from IRIS DMC (or data centers that implement FDSN web services). In this case, you do not have to save the data in your local directory.
  • To do so, you need to install the IRIS-WS jar file first, and then download the irisFetch.m file, placing it somewhere along your MATLAB search path. See guideline at manuals one at Manuals: irisFetch.m .
  • Once you have installed both files, you can test by running the following command in Matlab. This will retrieve one hour of east component data recorded at the broadband station TPUB following the 2011/03/11 Mw9.0 Tohohu-Oki earthquake.
  • Please launch Matlab first, and before running any commands, please add several of my Matlab subroutines in the Matlab Path. You can use the path command in Matlab below, or add the line into your Matlab's startup.m file.
    >> path(path,'/Users/zpeng/afan/zpeng_paper/Triggering_Tutorial/matlab');
    >> cd 201103110546
    >> mytrace=irisFetch.Traces('TW','TPUB','--','BHE','2011-03-11 05:46:24', '2011-03-11 06:16:24')
  • If everything works fine, you will end up with a plot that shows teleseismic waves recorded at station TPUB.
  • Most of the locally triggered tremor/microearthquakes occurred during or immediately following the large-amplitude surface waves. To identify these local sources, we generally apply a band-pass (e.g., 2-8 Hz, 5-15 Hz) or high-pass (> 5 or > 10 Hz) to remove long-period signals from distant regions (the mainshock and its early aftershocks). The choice of the frequency range depends somewhat on how far away the triggering mainshock is, and the local background noise. In general, if the triggering mainshock is relatively close (say between 100-1000 km), we normally would apply a slightly higher filter to remove/surpress distant signals.
  • We will use the matlab subroutine eqfiltfilt.m to do the filter job. It should be in the ./matlab directory, and in the Matlab's path. If not, please download the following matlab subroutine eqfiltfilt.m , and place it somewhere along your MATLAB search path. Then run the following command in MATLAB.
    >> datahp = eqfiltfilt(mytrace.data,5,-inf,1/mytrace.sampleRate,4);
       subplot 211;
       subplot 212;
  • If works, it will generate a plot like this. The top trace is the raw data, and bottom trace is been high-pass-filtered at 5 Hz (Butterworth filter, two-way, 4-th order).
  • To produce a band-pass-filtered trace (say between 2-8 Hz), use the following command:
    >> databp = eqfiltfilt(mytrace.data,2,8,1/mytrace.sampleRate,4);
  • Finally, you can use the following matlab subroutine irisFetch_spectrogram.m to generate a three-panel plot that includes the raw data (now in physical unit of cm/s), 5-Hz high-pass-filtered, and the spectrogram (frequency-time plot). If you cannot find it in your matlab directory, please download it from the following link: irisFetch_spectrogram.m
  • To remove potential artifact with the short-term FFT, we applied a 0.5 Hz high-pass filter before computing the spectrogram. For more details, see the following short article Peng, Z., L. T. Long, and P. Zhao* (2011), The relevance of high-frequency analysis artifacts to remote triggering, Seismol. Res. Lett., 82(5), 856-662, doi: 10.1785/gssrl.82.5.656. .
  • For example, if you directly run the command irisFetch_spectrogram.m without any argument, the default value will produce a plot like below for the 2011/03/11 M9.0 Tohoku earthquake. Of course, you could also change the input parameters by switching either station or the time windows.
    >> irisFetch_spectrogram;
    % default: produce a plot for the 2011 Tohoku event
    >> help irisFetch_spectrogram
      function irisFetch_spectrogram(net,sta,loc,chan,t1,t2,ff1,ff2,caxis1,caxis2,event,ifsave,color_flag)
      this function retrieve single-component seismic data directly from the IRIS DMC
      using the command irisFetch.m
      see the guideline at http://www.iris.edu/ds/nodes/dmc/manuals/irisfetchm/
      on how to download and install the irisFetch.m command 
      plot the raw, bandpass-filtered, and spectrogram of the seismogram
      this version could also save the data into SAC format
      db is from http://en.wikipedia.org/wiki/Decibel#Amplitude.2C_voltage_and_current
      applied a 0.5 Hz filter before computing spectrogram.
      see more at Peng et al. (SRL, 2011).
      Peng, Z., L. T. Long, and P. Zhao* (2011), The relevance of high-frequency analysis artifacts to 
      remote triggering, Seismol. Res. Lett., 82(5), 856-662, doi: 10.1785/gssrl.82.5.656.
      need: eqfiltfilt.m at http://geophysics.eas.gatech.edu/people/zpeng/Software/matlab/eqfiltfilt.m
      this program can be downloaded at
      update by zpeng@gatech.edu on Wed Oct 29 11:03:09 EDT 2014
    >> irisFetch_spectrogram('TW','TPUB','--','BHE','2005-03-28 16:09:36','2005-03-28 17:09:36',0,10,-60,-10,'Nias');
    % these parameters will produce a plot for the 2005/03/28 M8.6 Nias earthquake

Part 3: Visual Inspection of Remotely Triggered Seismicity

Remotely Triggered Deep Tremor

  • For the triggered deep tremor (aka non-volcanic or deep tectonic tremr), we use the example in southern Taiwan recorded primarily by the broadband station TW.TPUB. To identify/plot locally triggered seismic signals, we generally apply a band-pass or high-pass filters to remove/suppress long-period signals from large distant earthquakes. See below for a simple example of using SAC's built-in command to apply filters to the seismic data generated by the 2011/03/11 Mw9.1 Tohoku-Oki earthquake.
  • First, type "sac" to enter the SAC commandline. For more information on how to use SAC, please refer to the SAC tutorial .
    $ cd 201103110546
    $ sac
    SAC > r TW.TPUB.BHE.SAC   # read the east component data recorded at TW.TPUB station (for the 2011/03/11 Tohoku event.
    SAC > rmean               # remean the mean of the data
    SAC > taper               # apply a 5% taper to both end to avoid potential glitches when filtering the data
    SAC > bp p 2 n 4 c 5      # apply a two-way 4th-order 5 Hz high-pass filter to the data 
                              # (could also change to high-pass filter like hp p 2 n 4 c 5)
    SAC > r more              # read the original data again
    SAC > qdp off             # turn off quick-and-dirty plot so that all the data point is plotted 
                              # (default is on to save plotting time)
    SAC > xlim 0 1000         # zoom-in the time window to be from 0-1000 s around the mainshock origin time
    SAC > p1		  # plot the data in two subpanels. The top is the 5 Hz high-pass-filtered data
                              # and the bottom is the raw data
    SAC > xlabel "Time @(s@)" # set the label for x-axis
    SAC > ylabel "Velocity"   # set the label for y-axis
    SAC > title "2011/03/11 Mw9.1 Tohoku-Oki earthquake triggered tremor in southern Taiwan" # set the title
    SAC > p1                  # plot it again, take screenshoot or save it in ps using sgftops if needed
  • Alternatively, you can use Matlab to open the SAC file directly, and apply the filter. To do so, you first need to install the MatSAC package zip and put it in your Matlab seach path.
  • I have already included the MatSAC.tar.gz in the combined Triggering_Tutorial.zip file. You only need to add the Matlab path.
  • If you prefer to download it again in command line/linux, please use
    cd ~/matlab
    wget http://geophysics.eas.gatech.edu/people/zpeng/Teaching/SAC_Tutorial/MatSAC.tar.gz
    tar zxvf MatSAC.tar.gz
    vi startup.m
    # or download the zip file at http://geophysics.eas.gatech.edu/people/zpeng/Teaching/SAC_Tutorial/MatSAC.zip
  • In matlab, please use the following commands to read and plot the raw and band-pass-filtered data.
    >> [time,data,hdr] = fget_sac('TW.TPUB.BHE.SAC');
       data = data - mean(data);
       datahp = eqfiltfilt(data,5,-inf,hdr.times.delta,4);
       subplot 211;
       xlim([0 1000]);
       subplot 212;
       xlim([0 1000]);
  • Finally, one can generate the spectrogram (frequency-time) plot, together with the raw and band- or high-pass-filtered data. To do so, I have prepared a matlab subroutine gen_spectrogram.m that can directly read the SAC data and plot three-panels (top: raw; middle: band- or high-pass-filtered; middle: spectrogram). Again it is in the ./matlab directory. If not, pLease download the subroutine gen_spectrogram.m and put in your Matlab path first.
    >> help gen_spectrogram;
    % function gen_spectrogram(stn,chan,comp,net,tt1,tt2,ff1,ff2,caxis1,caxis2,color_flag)
    % plot the raw, bandpass-filtered, and spectrogram of the seismogram

Remotely Triggered Shallow Microearthquakes

  • For remotely triggered shallow earthquakes, we use one example recorded at broadband station NC.GDXB near the Geysers geothermal field in northern California. This region is known to be rigoriously responding to moderate to large regional- and teleseismic events. See a recent publication in this and other geothermal/volcanic region by Aiken and Peng (JGR, 2014) .
  • You can download the data from the Northern California Earthquake Data Center (NCEDC) using various tools, including webservices, or the NetDC Waveform Request .
  • You can repeat the above process by selecting all the mainshocks with predicted dynamic stresses (or by magnitude-distance, etc).
  • I put one example waveforms produced by the 2010/04/04 Mw7.1 Baja California (or El-Mayor) earthquake. It clearly triggered many high-frequency microearthquakes during and after the passing surface waves.
  • Please change your working directory to Geysers_EQ_Triggering. To extract the SAC data from the SEED file 201004042240_NC_GDXB.NCEDC.DATA.21855, one can follow the steps listed in the Makefile, and type the following commands to put corresponding information in the SAC header.
    $ make seed2sac
    $ make gen_o shift_o put_loc rename get_resp
    To remove the instrument response, one can use SAC's transfer command with the following syntax: 
    transfer from POLEZERO subtype $PZ to none FREQLIMITS $f1 $f2 $f3 $f4, where $PZ is the pole-zero file, and f1-f4 are
    the low- and high-pass tapers that can be used to filter the spectrum.
    $ cd Geysers_EQ_Triggering
    SAC>  help transfer
     SAC Command Reference Manual                                 TRANSFER
     Performs deconvolution to remove an instrument response and convolution to
     apply another instrument response.
     TRANSFER {FROM type {options}} , {TO type {options}} ,
     {FREQLIMITS f1 f2 f2 f4} , {PREWHITENING ON|OFF|n}
  • I have prepared a csh shell script do_pole_zero_transfer.csh that would extract the pole-zero file from the RESP file, and then remove the instrument response, and save the output into velocity in the physical unit of cm/s. In addition, it will rotate the two horizontal-component seismograms into radial and tangential components. To run the code, simple type
    $ ./do_pole_zero_transfer.csh
    $ ./do_pole_zero_transfer.csh NC GDXB
  • If needed, you may want to change the channel name from HH to BH or other codes.

Remotely Triggered Shallow Icequakes

  • For the last example on remotely triggered shallow icequakes, I will use the POLENET station YT.HOWD near the Ellsworth Mountain in Western Antarctica. This station recorded clear high-frequency bursts triggered by the Rayleigh waves of the 2010 Mw8.8 Maule, Chile earthquake. For more details, see Peng et al. (NGEO, 2014) .
  • I put the instrument-corrected SAC data in the following directory: Icequake_Triggering. Again, please use either Matlab or SAC to apply various band-pass-filter to the data and see if you can identify the clear signature of triggered high-frequency signals. I will use this example later for automatic detection of triggered events based on STA/LTA or template-matching methods later.

Part 4: Event Detection

Automatic Detection Based on STA/LTA

  • The most simple way to detect seismic event is through short-term-average/long-term-average (STA/LTA) method. I put a simple matlab script burst_detection_stalta.m in the directory Icequake_Triggering. To do the detection, we need to first apply a 5-Hz high-pass filter to the data, take envelope, and then stack to get the station-average envelope function. I create a SAC Macro file that can do the job. If everything works, it will produce a SAC output named YT.HOWD.3c.SAC.vel.hp.log.env
    SAC> m gen_3c_log_env_vel_hp.mac sta YT.HOWD
  • Next, launch Matlab, and run the local matlab code do_burst_detection_HOWD.m. It use a short-term and long-term windows of 2 and 10 s, and a threshold of 1.5. If works, it will produce an pick output, automatically compute the beta value and produce a plot that shows the detection quality.

Manual Detection Based on Hand-Picking

  • Several studies (Peng et al., JGR, 2007; Aiken and Peng, JGR, 2014) have used manual phase picking to identify potential triggered seismicity on a single station. Below are some simple SAC commands that can do the job. However, manual picking timing cosuming and subjective, and hence is not recommeneded to use these days.
  • We will use the Geysers triggering as the example.
    $ cd Geysers_EQ_Triggering
    SAC> m gen_3c_log_env_vel_hp.mac sta NC.GDXB
    SAC> r NC.GDXB.HHT.SAC.vel
    SAC> rmean
    SAC> hp p 2 n 4 c 5
    SAC> r more NC.GDXB.3c.SAC.vel.hp.log.env
    SAC> qdp off
    SAC> ppk p 5 m on bell off
    SAC> wh
  • Using the ppk tool, one can find the peaks of each high-frequency bursts in the envelope function, and can assign phase picks from t0-t9 for 10 events. Then one needs to save those phase picks (and the corresponding peak log10-amplitude values) into a separate files, before moving on to use the same phase tags to mark new events.
    saclst t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 f NC.GDXB.3c.SAC.vel.hp.log.env
    lsac 289.3737 NC.GDXB.3c.SAC.vel.hp.log.env
  • Match-Filter Detection

    • Dynamically triggered seismicity, like regular seismic events, can be detected by waveform matched filter technique [e.g., Peng and Zhao, NGEO, 2009]. The related C-source code, scripts and example can be found in the sliding_wfcc_src directory. Please go to this directory and type the following command to compile the codes
      $ cd sliding_wfcc_src
      $ make all
      $ ./sliding_wfcc_fix_v5
      ./sliding_wfcc_fix_v5 [-f template_sac_file] [-s long_sac_file])  [-b tBefore_template] [-a tAfter_template] [-B tBefore_cont] [-A tAfter_cont] [-S -sliding_time_in_sec] [-O -shift_origin_time] [-D debug] [-F output] [-o sacfile] -h help
      $ ./sliding_wfcc_fix_v5 -f EVT.20040928233349.BP.MMNB.BP1.SAC.bp -s BP.MMNB.BP1.SAC.bp -b 0.4299 -a 4.4299 -B 62124 -A 63124 -S 0.05 -O 0.4299 -F 1 -o BP.MMNB.BP1.wfcc.SAC
      $ vi readme.txt
    • You can also go to the Icequake directory and try to use the sliding_wfcc_fix_v5 command to detect repeating icequakes triggered during the surface waves. Please use the following commands. After stacking 3-component data, we can see multiple detections of similar events during the surface waves (by using the events at 1290-1292 s as the templates).
      $ pwd
      $ PATH=$PATH:/Users/zpeng/afan/zpeng_paper/Triggering_Tutorial/sliding_wfcc_src
      $ cd Icequake_Triggering
      SAC> rmean
      SAC> hp p 2 n 4 c 5
      SAC> mul 1e7
      SAC> w append .hp
      SAC> q
      $ ../sliding_wfcc_src/sliding_wfcc_fix_v5  -f YT.HOWD.BHZ.SAC.vel.hp -s YT.HOWD.BHZ.SAC.vel.hp -b 1290 -a 1292 -B -3600 -A 3600 -S 0.05 -O 0 -F 1 -o YT.HOWD.BHZ.SAC.vel.wfcc.SAC
      $ ../sliding_wfcc_src/sliding_wfcc_fix_v5  -f YT.HOWD.BHN.SAC.vel.hp -s YT.HOWD.BHN.SAC.vel.hp -b 1290 -a 1292 -B -3600 -A 3600 -S 0.05 -O 0 -F 1 -o YT.HOWD.BHN.SAC.vel.wfcc.SAC
      $ ../sliding_wfcc_src/sliding_wfcc_fix_v5  -f YT.HOWD.BHE.SAC.vel.hp -s YT.HOWD.BHE.SAC.vel.hp -b 1290 -a 1292 -B -3600 -A 3600 -S 0.05 -O 0 -F 1 -o YT.HOWD.BHE.SAC.vel.wfcc.SAC
      SAC> r YT.HOWD.BHZ.SAC.vel.wfcc.SAC
      SAC> addf YT.HOWD.BHN.SAC.vel.wfcc.SAC
      SAC> addf YT.HOWD.BHE.SAC.vel.wfcc.SAC
      SAC> div 3
      SAC> qdp off
      SAC> p1

    Audio Detection Based Hand-Picking

    • One could use the following simple matlab script sac2wav.m in the matlab directory to speed up the seismic data so that our human ear can hear it (20-a few kHzs). We can use the Tohoku-triggered tremor in Taiwan as the example. Please run the following commands in Matlab. The output is named TW.TPUB.BHZ.SAC.wav, and can be played in any audio players. Have fun.
      >> cd Taiwan_Tremor_Triggering/201103110546
      >> help sac2wav
        function sac2wav(sacfile,speed_factor,scale,t1,t2,hp_flag)
        matlab function to convert the SAC data into
        sound waves using matlab's wavewrite program
        need fget_sac program, which can be downloaded from
        the MatSAC package by zpeng at http://geophysics.eas.gatech.edu/people/zpeng/Teaching/MatSAC.tar.gz
        written by Zhigang Peng at GT (zpeng@gatech.edu)
        modifed from the code sent by Debi Kilb at UCSD (dkilb@epicenter.ucsd.edu)
        last updated by zpeng, Sun Feb 20 22:44:30 EST 2011
      >> sac2wav('TW.TPUB.BHZ.SAC',100,5,0,1000,1);
    • For more examples, please see zpeng's EQ Music , and Earthquake Sound of the Mw9.0 Tohoku-Oki, Japan earthquake .

    Last updated by Zhigang Peng Fri Aug 17 08:37:24 EDT 2018