Matched Filter Technique (MFT)


The recently developed MFT is revealed to be a power tool to help identify missing events [Peng and Zhao, 2009] with small signal to noise ratio, which could happen when earthquakes occurred very frequently (earthquake swarm) or masked by large amplitude surface/coda wave following large mainshock. The physics behind this technique is earthquakes spatially close would have similar waveform recorded by the same station. Using events listed in standard earthquake catalog as template to scan through continuous waveform, missing events around the templates would be able to be identified.

The work flow contains: prepare the continuous waveform (pre-processing, shift origin time, band-pass filter waveform); process the templates (use catalog to cut template waveform, compute the signal to noise ratio); operate channel-wise sliding-window cross-correlation as well as stacking; clean up the final catalog. If you are interested, you can take a look of the tutorial ppt [MFT_PDF].

Dr. Xiaofeng Meng has a nice online website tutorial about MFT. Please find the following link: Meng's Tutorial.


HypoDD Relocation


  • 1. Overview of hypoDD package
  • 2. Source Code and User Guide
  • 3. Two Programs: ph2dt & hypoDD
  • 4. Play with Examples

    1. Overview of hypoDD package


    HypoDD is a Fortan program package for relocating earthquakes with the double-difference (DD) algorithm of Waldhauser and Ellsworth (2000).

    The DD technique takes advantage of the fact that if the hypocentral separation between two earthquakes is relatively small compared to the event-station distance and the scale length of velocity heterogeneity, then the ray paths between the souce region and a common station are similar along almost the entire ray path, and the difference in travel times for two events observed at one station can be attributed to the spatial offset between the events with high accurracy.

    Theoretical travel times are calculated for current hypocenters at stations where the phase was recorded. The DD residuals for pairs of earthquakes at each station are minimized by weighted least squares using the method of SVD or LSQR. Solutions are found by iteratively adjusting the vector difference between the nearby pairs, with the locations and partial derivatives being updated after each iteration.

    Earthquake relocation with hypoDD is a two-step process. The fist step involves the analysis of catalog phase data and/or waveform data to derive travel time differences for pairs of earthquakes, which is necessary to optimize the linkage between events and minimize redundancy in the dataset. In the second step, the differential travel time from step one is used to determine DD hypocenter locations. It solves for hypocentral separation after insuring thta the network of vectors connecting each earthquake to its neighbors has no weak link that would lead to numerical instabilities.

    2. Source Code and User Guide


    Freely download the most recent version HypoDD v1.3. Unzip the file and go to each directory which contains the source code and compile the code. Then add the paths to your .bashrc in order to use them.


  • tar -zxvf HYPODD_1.3.tar.gz
  • cd HYPODD/src/hypoDD
  • make clean/make
  • export PATH=$YOUR_HYPODD_DIR/bin/:$PATH
  • export PATH=/usr/local/geophysics/bin/:$PATH (if you are in geophysics group)
  • Acess to the User Guide for using both ph2dt and hypoDD programs. ph2dt transforms phase data into catalog differential time input for hypoDD, and hypoDD performs the DD relocations.

  • ph2dt ph2dt.inp
  • hypoDD hypoDD.inp
  • 3. Two Programs: ph2dt & hypoDD


    ph2dt searches catalog P and S phase data for event pairs with travel time information at common stations to optimize the quality of phase pairs and event connectivity. Ideally, it attempts to build a network of links between events so that there exists a chain of pairwise connected events from one event to any other event, with the distance being as small as possible between connected events.

    ph2dt establishes such a network by building links from each event to a maximum of MAXNGH neighboring events within a search radius defined by MAXSEP. To reach the maximum number of neighbors, only "strong" neighbors with more than MINLNK phase pairs are considered, while "weak" are not counted. The nearest neighbor approach is used to find neighboring events. To avoid very large DD observations, we can restrict the number of links for each event pair by defining a mimimum (MINOBS) and a maximum (MAXOBS) number of observations to be selected for each event pair.

    ph2dt removes observations that are considered as outliers, which are identified as delay times are larger than the maximum expected delay time for a given event pair. After linking together all events, value of the average distance between strongly linked events indicates the density of the hypocenter distribution and would guide on the choice of the maximum hypocenter separation allowed in hypoDD (WDCT).

    The grouping of events into clusters of well-connected events is explicitly performed in hypoDD to ensure stability of the inversion. To improve connectedness throughout a cluster of events, the values of MAXNGH and/or MINLNK can be increased in ph2dt to reach more distant neighbors for each event at the cost of introducing model errors during relocation.

    Waveform based differential arrival time can be obtained from various existing techniques. Such data can be easily combined with catalog data in hypoDD. Note, however, that when using cross-correlation differential times, phases may correlate under specific event-pair station configurations only, such as in cases where the event pair is small compared to the distance to a common station and focal mechanism are very similar. Thus, although the measurements may be of high accuracy, the spread of the partial derivatives might not be optiaml to control the relative locations of the two events.

    Screenshots for necessary files ph2dt.inp phase.dat can be found below.

    Important Notes: 1) Every earthquake must have a unique id number. 2) Both measurements are referenced to the same event origin times if combining both catalog and waveform based travel time measuremnts.


    hypoDD can process any combination of catalog and cross-correlation data. Relocating events using each data type independently is useful to assess the consistency of and the relative quality between the data types. It ensures connectedness between events by grouping events into clusters, with each cluster having a chain of links from any event to any other event in the cluster. The strength of this chain is defined by a minimum of observations (OBSCC and OBSCT) per event pair that build up the chain. Note that if the value for OBSCT is larger than the value chosen for MAXOBS in ph2dt, hypoDD will find no clusters. The value for OBSCT should generally be equal to or less than MINLNK to ensure strong links.

    Another factor that controls connectivity between events is the maximum hypocentral separation allowed between linked events, which are parameters WDCT and WDCC. hypoDD removes data for event pairs with separation distances larger than the values given for WDCT and WDCC for the first iteration. Note the distance cutoff parameter WDCT is similar to the parameter MAXSEP in ph2dt. It is advised to choose a larger value for MAXSEP, and then experiment with smaller values for WDCT to keep separation distances small and still connect all events.

    hypoDD minimizes residuals between observed and calculated travel time differences in a iterative procedure. Initial locations are taken from the catalog, either at reported locations or at common location at the centroid of the cluster (ISTART). ISOLV allows the choice of two methods to solve the system of DD equations: singular value decomposition SVD and the conjugate gradient method LSQR. SVD is useful for examing the behavior of small systems, while LSQR takes advantage of the sparseness of the DD equation system and is able to solve a large system efficiently.

    LSQR solves the damped least squares problems. DAMP is the damping factor that damps the hypocentral adjustments if the adjustment vector becomes large or unstable. The condition of the system is expressed by the condition number (CND). Generally a damping between 1 and 100 is appropriate, resulting in a condition number that is between about 40 and 80. You can adjust the DAMP to obtain a reasonable CND: if the CND is higher (lower) DAMP needs to be increased (decreased).

    The straightforward way to improve the stability of the inversion is by better constraining the solution: requiring more links between events through OBSCT/OBSCC and/or mofifying the weighting and re-weighting scheme. It might also be necessary to go back and generate a differential time data set that allows for more neighbors for each event (increasing MAXNGH or MINLNK).

    The damping of the solution vector allows some control of how fast a solution converges, which effects the choice of the number of iterations (NITER). In general, the first few iterations contribute to the most of the shifts in hypocenter locations. Iteration can be stopped when the shifts in hypocenter adjustments or the RMS residual dropped below the noise level. Events would get deleted if they completely lose linkage. Also, some events would become airquakes when event pairs locate near the surface and the control in vertical offset is poor.

    Screenshots for input files for hypoDD, which includes dt.ct (from ph2dt) and dt.cc.

    4. Play with Examples


    Let's start with small and medium size examples in the hypoDD program, which can be downloaded from Simple/Medium Examples. There are also three Large example datasets

    Then we test with two examples to show how we apply hypoDD from scratch, and learn how to prepare the input by performing event cross correlation. Download the Waveform_Cross_Correlation Package to learn how to prepare for such data.

  • tar -xvf WFCC_HYPODD.tar
  • Perfrom waveform cross-correlation to obtain dt.cc, which can be further combined with catalog differential time.

  • crscrl_event_pair_p.pl event1 event2
  • crscrl.sh
  • Useful Resources

    Tools