- © 2014 by the Seismological Society of America
Online Material: Technical details on running the Waveform Browser and format of the input variables, with Matlab, GUI, and sample dataset files.
Seismic waveforms carry much information about the source that generated them and the material properties of the media through which they propagated. Systematic changes in waveform character offer clues that can help us understand earthquake rupture processes as well as heterogeneous velocity structure. To find these systematic changes, record sections are often constructed. However, the character of the waveforms normally changes as a function of many variables, including epicentral distance, azimuth, exit point on the focal sphere, and recording station site effects, among others, all acting simultaneously. It is therefore useful to view the waveforms in their geographic/geologic context. Recognizing this, many recent publications dealing with waveform character plot waveforms distributed over a map in the location of the station that recorded them (examples are abundant; a recent one that uses this type of figure extensively is Sun and Helmberger, 2011). This is a very useful representation, but it becomes problematic if station spacing is small, when it becomes difficult to separate the waveform plots. In addition, by necessity, the plotted waveforms must be small, because they must all fit inside the map. This makes it difficult to assess details and more subtle effects when trying to analyze the data.
An intimately related issue is the increase of data availability in recent years. For a single seismic event, we may now have access to hundreds of records. Such large volumes of data can reveal complex, but predictable, behavior of the waveforms, which would otherwise be obscured by the sparseness of the observations. An abundance of data provides many opportunities, but organizing, aggregating, and visualizing large volumes of data in a meaningful and useful way poses its own challenges (West and Fouch, 2012). This is especially true if we do not know a priori what to look for. To address these issues, I created a simple tool that allows the user to explore seismic data effortlessly, letting patterns emerge, and relationships or correlations reveal themselves through observation. In my personal experience, this data‐exploration approach can lead to exciting observations, which may have been overlooked by more conventional visualization and analysis techniques.
The Waveform Browser is a MATLAB tool that builds on the concept of associating waveforms with their geographic/geologic location by making the tool interactive (www.mathworks.com/products/matlab; last accessed November 2013).
The idea is simple: a map that allows one to view the record from each station by clicking on it. Given a dataset comprising a single event recorded at a multitude of stations, the Waveform Browser displays event‐centered and antipode‐centered maps of the stations (Fig. 1a,c). Clicking on a station highlights it and plots the corresponding recorded waveform in a separate panel (Fig. 1i). Additionally, the stations can be color‐coded according to any user‐defined attribute, revealing any patterns in the spatial variability of the values.
There are two main inputs to the Waveform Browser: the trace data and the event data. An optional third input argument (colorby) containing values used to color‐code the stations can also be included.
The trace data should be formatted as the output of a call to irisFetch.traces: the recently released MATLAB routine that uses the IRIS web services java libraries to retrieve data from the Data Management Center and return it in a MATLAB structure (http://www.iris.edu/dms/nodes/dmc/software/downloads/irisFetch.m/, last accessed November 2013). The irisFetch output format is extensively described in its MATLAB help file; here I will just mention that the data are arranged in such a way that much associated metadata are included, and the Waveform Browser makes direct use of this feature ( available in the electronic supplement to this paper). Data from other sources, such as Antelope databases, once read into MATLAB through any of the available routines, can easily be arranged into the irisFetch structure format. Using the irisFetch standard is advantageous in that it allows the user to go directly from requesting data through irisFetch to visualizing it in the Waveform Browser without any intermediate steps.
The variable containing the event data is created by the user and should hold the geographic position and the depth of the hypocenter. The optional colorby input variable contains a list of attributes that can be used for color‐coding the station and the respective values for each station (see electronic supplement). The attributes could be anything the user would like to visualize. Some possibilities include: signal‐to‐noise ratio, observed travel time for any given phase, observed travel‐time delay for any given phase, apparent attenuation, maximum amplitude, and so on. It is important to note that the Waveform Browser is not intended to compute any of these. Instead, the user can calculate the values that he/she wants to visualize by some other means and then load these values into the browser. This gives the user absolute flexibility regarding which parameters to calculate and how to do so. Passing these values into the browser later is trivial. The fact that colorby can hold the information for an arbitrary number of attributes is a particularly useful feature, because the user can at once load the values of multiple parameters of interest and switch between them in a single Waveform Browser session by using a drop‐down menu (Fig. 1g). The color‐coding of the stations can be very helpful in spotting outliers and, more importantly, in identifying patterns, because by plotting the stations on the map the user is simultaneously looking at the epicentral distance, the azimuth, and the geographic/geologic/tectonic setting of the stations, allowing the correlations between the visualized value and all these variables to emerge. This is indeed the main intended purpose of the Waveform Browser.
To use the Waveform Browser, call the wfBrowser function (see electronic supplement) in the MATLAB command prompt with the two or three input arguments described above (see electronic supplement for examples). The result will be a figure with three sets of axes, the top two containing maps of the stations centered on the event epicenter and its antipode respectively (Fig. 1a,c). The maps are plotted in an orthographic projection using the mapping toolbox, so that distances and azimuths from the center of the map are not distorted. Simple coastlines are drawn and stations are plotted as large dots on the maps. The third and largest set of axes (Fig. 1i) is reserved for the waveform. When a single station is selected, the horizontal waveform axis represents time in seconds whereas the vertical axis represents the recorded amplitudes rendered in physical units. The units are those specified in the trace metadata and the vertical axes are scaled according to the maximum amplitude in the plotting window. The name of the selected station is displayed on the upper left corner of the axes. Clicking on a station selects and highlights it, and plots the corresponding waveform.
In addition to the three main axes, there are several control elements on the right side of the figure. From top to bottom these are:
Go to station (Fig. 1d): This editable text box provides an alternative way of selecting a station. Typing the code of a station in the box and pressing the return key twice selects the stations and plots the corresponding waveform.
Make a record section (Fig. 1e): This panel lets the user produce a record section along any profile. To use, press the pick points button. The pointer will change to crosshairs and the user can pick two points on either of the maps. This selects all stations within a user‐defined distance of the profile and plots the resulting record section. The waveforms will be plotted vertically with their horizontal position corresponding to their position along the profile (Fig. 2). The horizontal axis is thus distance in kilometers along the profile, and the vertical axis is time in seconds. The user specifies the maximum permissible distance from the profile in an editable text box within this panel.
Station Names (Fig. 1f): The user has the option of displaying the names of the stations. To avoid overcrowding the plots this option is disabled by default, but it can be activated and deactivated at any time using the checkbox in this panel. This feature may be most useful when the map is zoomed‐in to a point where the stations are well separated (Fig. 3).
Color by (Fig. 1g): This panel contains a drop‐down menu with the list of attributes specified in the colorby variable, if one was supplied by the user. Otherwise, the drop‐down menu will be disabled. If the user provides a colorby structure, the stations will initially be color‐coded according to the first attribute on the list. To change to a different attribute, select its name from the drop‐down menu.
Trace Control (Fig. 1h): This panel contains two editable text boxes that specify the length and position within the trace of the time window that is to be plotted in the trace axis.
The MATLAB figure menu bar provides additional capabilities, as these tools can be used to zoom and pan in the map axes (particularly useful when the dataset contains dense arrays of stations) as well as for printing and saving images. The Waveform Browser has been successfully tested in every version of MATLAB newer than 7.10/R2010a and should work in any version newer than 7.1/R14SP3. It is important to note that the Waveform Browser relies on the mapping toolbox, which needs to be installed in order to use the function. On a desktop workstation, I have not encountered any memory limitations despite loading over 600 traces at times (each trace with ∼5,000 samples). However, a rigorous test to find at what point this becomes an issue has not been conducted.
The Waveform Browser is intended for a very broad audience, from undergraduate students to experienced researchers. It can and has been used as a research tool aiding in source characterization. The original problem that led to its development was the study of directivity effects in the deep‐focus Spanish earthquake of 2010; the Waveform Browser helped to note and distinguish the directivity stemming from the relative position of the subevents, and from the presence or absence of directivity intrinsic to the rupture characteristics of each subevent source (Bezada and Humphreys, 2012). Another potential use is aiding to identify coherent features in the waveforms arising from interaction of the wavefront with subsurface structure. The detailed velocity structure can then be studied by trying to replicate these observations with synthetic seismograms.
The browser also has potential for use in class settings. It can be given to students in order to explore datasets highlighting different concepts such as directivity, attenuation, focusing, defocusing effects, and so forth.
Finally, it could be a medium for sharing data and results between researchers. It would act as an interactive figure that can be queried, providing much more information than a static figure. In the future, the possibility of including such interactive figures in the electronic version of publications or distributing them as supplementary material could be explored.
There are myriad things that can be added to the Waveform Browser. Rather than trying to develop a comprehensive package, I've decided to release a very simple version that can be extended to suit anybody’s needs. The code is organized into callback functions for each control element and additional functions that perform specific tasks.
An especially important function is one called showit. This function plots the waveform corresponding to the selected station on the waveform panel, and it should be edited if the user wishes to plot additional information along with the waveform (e.g., a synthetic waveform, a filtered waveform, predicted arrival times of seismic phases, etc.). Some additional functionality that could be added in the short term is the ability to filter waveforms before plotting and to stack traces according to different binning criteria. Additionally, the browser can be extended to show more than one component at a time and/or the amplitude spectrum, and to show the location of the stations in a focal sphere. The maps could also be enhanced by including topography, slices through a velocity model, or tectonic province boundaries, among other possibilities.
The Waveform Browser, as it is being released here, is event‐centric. That is, it is designed to explore data from a single event recorded by stations around the world. In some instances, it may be desirable to explore data from many earthquakes with epicenters distributed around the world and recorded at a single station. This would be a straightforward adaptation.
In an ideal scenario, as users experiment with the Waveform Browser they will find new ways to use it and different applications, and imagine new ways to modify and expand it. As a result, many versions tailored to specific needs could arise. Ideally, all this new functionality can be then given back to the community so that from these modular pieces we can all build our custom‐made Waveform Browsers that are optimally suited to our specific situations. To this end, I plan to maintain a publicly accessible repository for updated versions of the code. Please contact me for up‐to‐date information in this regard.
Development of the Waveform Browser was supported by the PICASSO project (NSF Grant Number EAR‐0808939) and benefitted from conversations with Eugene Humphreys.