Version 2001.1111
Xphase - interactive phase picking GUI software
These notes pertain to version 2001.1111
There are two general invocations of Xphase. The first reads in segy, sac, ah, or ascii files:
Xphase ( SEGY_files or -s SAC_files or -a AH_files or -c ASCII_files ) [ -p pick_file ] [ -t timemark_file ] [-g] [-r] [-h]
The second uses conventions similar to a DataScope style database:
Xphase ( -db DB_name -sta station -tstr start_time -tend end_time -mode imode) [ -p pick_file ] [ -t timemark_file ] [-g] [-r] [-h]
Xphase is a program used to interactively run FORTRAN subroutines developed by A. Kushnir and others for autoregressive analysis of time series. Useful functions include phase detection, estimation of onset times, and reconstitution filtering. Xphase also provides a useful tool for testing arguments to the batch version of this software, called Xest (which see).
Xphase was developed on a SUN SPARCstation LX running Solaris 2.3, and compatibility with other environments should not be assumed. It is a fairly straightforward program, however, so modifications should not be extensive. Xphase requires a color monitor to work properly.
In the first invocation, the only argument is the file names. Wild cards (? and *) can be used.
| SEGY_files | Specifies the SEGY trace files containing seismic data.
|
| -s SAC_files | Read in SAC formatted data rather than SEGY. |
| -a AH_files | Read in AH formatted data rather than SEGY. Note the the routine that reads in the AH data is not the standard LDGO AHIO routines but a cludge based on an interpretation of some AH seismic data that I had available. Therefore it may not work on all datasets. |
| -c ASCII_files | Read in ASCII data rather than SEGY. Format is based the ASCII format of Klaus
Stammler's SHC. SHC ASCII files have a few header variables
followed by a sequence of amplitudes. At minimum the header
contains the time interval (DELTA) and the number of samples (LENGTH)
and may optionally include the time of the first sample (START), the
station code (STATION) and the component (COMP). A suitable file
can be produced in SHC by issuing the command:
writea/npl=1 recall that the outfile name will appear as all caps (this is the SHC convention). Here, we expect the header to have 5 lines in the order of DELTA, LENGTH, START, STATION, and COMP. Here's an example:
DELTA: 5.000000e-02 LENGTH: 46520 START: 5-OCT-1997_18:21:33.000 STATION: ANA COMP: E 0.23 0.45 -0.33 ... which says the sample interval is 0.05 s with 46520 samples in the file. The time of the first sample is 5-OCT-1997_18:21:33.000, the station is ANA and the component is E (east). |
| DB_name | Specifies the databas name, a la DataScope.
| ||||||
| -sta station | The code of the station for which data is to be uploaded. Note that only one station can be used. | ||||||
| -tstr start_time | The start time of the data. Note that any of the DataScope conventions for specifying time (e.g., epoch or date) can be used. | ||||||
| -tend end_time | The end time of the data. Note that any of the DataScope conventions for specifying time (e.g., epoch or date) can be used. | ||||||
| -mode imode | Specifies the number of channels to be used:
|
| -g | For SEGY data, do not convert from digital counts to volts. The SEGY data is presumed to be in digital counts, and the default is the convert this number to volts using the scaleing values in the header. Specifying the -g option skips this conversion. |
| -r | Reset the origin time so the the first sample of all files is at time 0:0:0.0. This is a useful option if files with very different origin times are viewed simultaneously. |
| -h | Prints out the usage summary. |
| -p pick_file | Causes a pick formatted file (see discussion below) by the name of pick_file to be read in for display. |
| -t timemark_file | Causes a timemark formatted file (see discussion below) by the name of
timemak_file to be read in for display.
|
READING IN TIME SERIES (SEISMOGRAMS)
Xphase will read in DataScope, SEGY, SAC, AH, and SHC-style (i.e., Seismic Handler) ASCII files from the command line. Simple ASCII files may also be read in by activating the "READ" button and selecting "Ascii Time Series". All other files read in that have have references to particular times (pick files, for example) are converted to the nearest sample.
Note on filename conventions: In some routines the program follows PASSCAL file naming conventions in its operation. In particular. the program expects that the last field is related to the channel and the next to last field is the station code. If the channels are numbered, then because the vertical component is usually channel one, the vertical will be the first component read in. For example, in the pick file line shown below, the file name is "22.17.7360.1" so when records are read in with a "*". The program takes the 7360 to be the station code, and the "1" will make this the first file read in. Note that later conventions use, for example, BHZ, BHE, and BHN to label the vertical, E-W, and N-S components, and in this case the wild card read will read the vertical in last. The users needs to be aware of when this is important (see below). The channel order is easy to circumvent (just read them in a different order or reorder them using the selection boxes - see below), but the station name convention is hard wired. Proper station identification can be a useful tool when correleating records with pick file entrees.
1999 206 6 17 0.0994 0 -4.0398 0.6600 0 -1 1999206055828.47.BBU.BHZ Whitened Wed Aug 2 15:01:38 2000
Where the numbers in the colums correspond to year, julian day, hour, minute, second, phase type (0 = P, 1 = S, 2 = Other), uncertainties to the left (-) and right (+) of the pick, a mode identifier used in auto picking (see discussion below), a polarity for the P phase (1 up, -1 down, 0 neither or not a P phase) an identifier showing which file was used in making the pick, and finally several columns composing a time stamp. The time stamp is not read in and is used only to separate "new" picks from "old" reads.
Time marks are like picks but are static (i.e., they are not edited or written). They are used primarily to show the user where certain times, for example predicted arrival times, occur. Files containing time marks are read in at the time Xphase is called if the -t option is used. The format of a time mak is exactly the same as that of a pick (see above).
FIR filter files are created for specific recording devices and sample rates. Certain combinations (e.g., RefTek A08 at 100 sps) are included in the program, but the user can read in a user-defined filter and apply it. The file is just a sequence of numbers (one per line) that describes the filter.
AN OVERVIEW OF THE PROCEDURES USED IN XPHASE AND XEST
The main functions of Xphase and Xest are (1) Data whitening, (2) Phase Detection, (3) Onset Estimation, and (4) Automatic Detection and Onset Estimation. Starting with version 2001.1030, Xphase also adjusts picks using least-squares waveform correlation. In addition, Xphase can calculate characteristic functions of particle motion to determine useful indicators of polarity, rectilinearity, and other phase-related properties.
The following provides some details about how these work. At the heart of much of the math behind Whitening, Phase Detection, and Onset Estimation is the autocorrelation or autocovariance function c of x which is defined as:
c(k) = sum(i=k,N) x(i)x(i-k+1)
The number of elements of c (plus one), or, equivalently, the number of covariance non-zero lags computed, is called the order of the autoregression (AR) model.
Whitening and Phase Detection are both accompished by the FORTRAN subroutine grbeamfep, and is driven by the routines rungrbeam (in Xphase) and rungrbeam2 (in Xest). Both take an option argument that tells the program how far to progress: iopt = 1 for stacking only; iopt = 2 for whitening only, and iopt = 3 for whitening and detection.
Data whitening
Besides the noise and data windows, the only variable of significance that the user supplies for whitening is the AR order (or number of non-zero covariance lags).
Phase Detection
chisqvar = sum(i = 1, m+1) c(i)**2
where m is the AR order. This number (chisqvar) is assigned to the midpoint of the moving window.
The most important user-definded variables for detection are the moving window length ("mvwind") and the lag number/AR order ("arm").
Onset Estimation
Some notes: Correlations are calculated by FFTs of data windows, followed by multiplitions of conjugates and retransforming into time domain. The time offset is derived from the maximum of the resulting function. Offsets for multiple channels are determined in a least squares sense following the algorithm of VanDecar and Crosson (BSSA, 1990) although only the nonweighted inversion is implimented at present.
The time corrections are adjusted to the nearest sample, which means that no "subsample" corrections are allowed. This is facilitated by keeping the first waveform pick constant and moving the remaining picks relative to it. If you are interested in absolute time, therefore, make sure you have a pick you believe at the top of the stack.
| | | {uz, uz} | {uz, ue} | {uz, un} | | | |
| M = | | | {ue, uz} | {ue, ue} | {ue, un} | | |
| | | {un, uz} | {un, ue} | {un, un} | | |
where {} denotes the dot product. The eigenvectors of the above matrix give the components of principle motion, hence a window about the P arrival will allow calculation of the direction of the L component (corresponding to the largest eigenvalue). There are several useful functions that can be derived from the eigenvalues (L1 > L2 > L3) and eigenvectors for samples within a given window:
Rectilinearity:
The concentration of motion in a single direction at sample i can be characterized by
Planarity
The concentration of motion in a plane at sample i can be characterized by
The polarization of motion at sample i can be characterized by
If the eigenvector corresponding to the L (P wave motion) direction is vp and v(i) is the eigenvector corresponding to the largest eigenvalue at sample i, then the deflection of the particle motion from the L direction can be measured by
After determining the eigenvectors corresponding to the L (P wave motion) and perpendicular directions, we can rotate any motion at sample i into this frame by multipling the (uz, ue, un) vector by these eigenvalues to give (uL, uQ, uT). The fraction of energy perpendicular to the P wave motion can then be characterized by
Finally, we can emphasize the S arrival by multiplying together those functions that are sensitive to S:
Note that each of the characteristic functions has 0 < k < 1, to the product is between 0 and 1 as well.
Note that of the characteristic functions discussed above, the last 3 (Deflection Angle, Fraction of Energy perpendicular to the L component, and the Product of Characteristic functions) require information about the eigenvectors associated with the P arrival. This is implemented in Xphase by providing a Canvas function for eigenvector estimation, after which these functions may be calculated. The functions can be calculated using the "CICH FUNS" button, which uses the current data window, or by the canvas functions "Current Cichowicz", which calculates the selected function, and "All Cichowicz", which calculates all of the functions, after the choice of a data window.
Automatic Detection and Onset Estimation
The first part of an automated procedure is always the detection of a phase, using the algorithm discussed above. The trick is then to figure out which parts of the phase detection function might actually be an earthquake phase. At the moment all algorithms use threshold exceedance to decide if a phase exists. The second trick is how to tell which, in a multitude of phases, are P and S arrivals. With the level of information we have, this is not a trivial matter, and when we discriminate between the two we rely on two general observations: (1) the S will arrive after the P and (2) generally (but of course not always - that would be too simple) the phase detection function has much larger values for S then for P.
Once we figure we have an arrival, we need to put a window around the detection and estimate the onset within this window. The size of this window is user-defined ("winsize").
At the moment there are two algorithms used in Xphase to do automatic detection and estimation: AUTO EST/auto_estimate2 and DETECT_EST/det_est. The main difference between these is that auto_estimate2 tries to discriminate between P and S waves while det_est picks everything that looks useful without trying to figure out the phase. Also, AUTO EST/auto_estimate2 was designed to work on triggered data, DETECT_EST/det_est with continous data.
Xest can run in a "detection only mode" (Xest -d) in which case only detections are saved (more discussion below). If the -d argument is missing, Xest currently runs an equivalent algorithm to det_est called det_est2. Xest contains a batch equivalent of auto_estimate2 called auto_estimate3, the call to which is currently commented out (rather than make this user selectable - actually a trivial thing to do).
Details on how these different algorthims work follows.
AUTO EST/auto_estimate2 (Xphase) and auto_estimate3 (Xest)
Steps:
p_threshold = arg.pfact*noise_max; s_threshold = arg.sfact*detect_max;
arg.pfact might take a value like "100" and arg.sfact something like "0.9". In other words, if we see something exceeding the maximum of the noise by 100, we'll call it a P, and something that gets within 90% of the data window maximum we'll call an S.
Note that if the P threshold is greater than detect_max, it gets knocked down to 95% of detect_max, and if the the P threshold is greater than the S threshold, the S threshold is set equal to the P threshold.
NB: this is a case where channel order is important! Channel 1 is presumed vertical; 2 and 3 horizontal.
Basically the choices for P are (raw or whitened) vertical only, or (raw or whitened) 3 components simultaneously.
DETECT_EST/det_est (Xphase) and det_est2 (Xest)
Again, det_est is more suited to continuous data and simply goes through and picks everything that looks like it might be an arrival.
noise_level = [(sum(i=1,n) y(i)**0.25))/n]**4.0
The fourth power is used to deemphasize excursions.
threshold = arg.pfact*noise_level
or, some factor above the ambient noise level (like, for example, 100*noise). If the threshold is greater than detect_max, we terminate (no viable detections present).
Several important parameters are given reasonable default values in the program. These values may be overridden by the user prior to any processing step simply by entering alternate values into the interactive windows that appear before the processing actually begins (Note that the "Option Windows" toggle must be set to "Show" for these windows to appear). These values may be defined by the user at startup through a file called Xphase.prefs located either in your home directory (defined by the environment variable "HOME") or in the working directory. Xphase will attempt to read files of this name when it begins, looking first in the working directory and then in your home directory. (If the file Xphase.prefs exists in both directories, the settings in the working directory will supercede those in the home directory). Variables are specified by including within the file a line with the variable name and its value (or 3 values, in the case of specifying colors). Only those variables which you wish to reset need be included. The items that Xphase tries to read are as follows (with default values):
| arm | The order of auto-regressive model. This essentially is the number of points used to predict the value of the following point. The larger the order, the slower the program. My experience is that order 3 works pretty well, and this is the default value (arm =3). | ||||||||||||||||||
| arwid | Width, in samples, of the start of the window used in covariance modelling for estimation. The actual estimation takes place some distance inside the data window, because a few samples must be used in order to calculate the covariance matrix. The actual data window thus begins arwid samples after the defined beginning, and ends arwid samples before the defined end. The actual size of the data window is thus (arstop - arstrt) - 2*arwid. Default value is calculated from the size of the data window. | ||||||||||||||||||
| arstrt | Start of data window, in samples. Default = first sample. | ||||||||||||||||||
| arstop | End of data window, in samples. Default = last sample. | ||||||||||||||||||
| winsize | Size of window, in samples, around a phase detection for onset estimation. Default value is calculated from the size of the data window. | ||||||||||||||||||
| mvwind | Size of moving window, in samples, used for phase detection. Default value is calculated from the size of the data window. | ||||||||||||||||||
| pfact | P threshold factor (* noise_max) Default = 100. | ||||||||||||||||||
| sfact | S threshold factor (* detection_max) Default = .9 | ||||||||||||||||||
| wfrac | Fraction of winsize used to determine the onset local estimation maxima. Default is 0.1. | ||||||||||||||||||
| nstrt | Start of noise window for phase detection, in samples. Default = 1st sample | ||||||||||||||||||
| nstop | End of noise window for phase detection, in samples. Default = Last sample | ||||||||||||||||||
| perr | Fallback P uncertainty (in seconds). Default is the time increment (delta). | ||||||||||||||||||
| serr | Fallback S uncertainty (in seconds). Default is the time increment (delta). | ||||||||||||||||||
| unthr | Uncertainty threshold, in fraction of estimation function maximum. Default = 0.9. | ||||||||||||||||||
| xmin | Sample minimum for plotting. Default = Current screen dimension. | ||||||||||||||||||
| xmax | Sample maximum for plotting. Default = Current screen dimension. | ||||||||||||||||||
| pickwin | Number of points used to determine polarity. Default = 2. | ||||||||||||||||||
| colors | Color scheme used, either black on white (0), or alternate (1). Default = 1. If alternate is chosen, the default is a yellow on blue scheme, but all of the colors in the alternate scheme can be modified by the user by specifying the next several preferences. | ||||||||||||||||||
| pcolor | Alternate color for P arrivals. Specify red, green, and blue values. Default is (255, 69, 0) which is an Orange-Red. | ||||||||||||||||||
| scolor | Alternate color for S arrivals. Specify red, green, and blue values. Default is (255, 255, 255) which is Pure White. | ||||||||||||||||||
| ocolor | Alternate color for all other arrivals. Specify red, green, and blue values. Default is (85, 107, 47) which is Dark Olive Green. | ||||||||||||||||||
| bgcolor | Alternate background color. Specify red, green, and blue values. Default is (0, 0, 53) which is dark blue. | ||||||||||||||||||
| fgcolor | Alternate foreground (waveform) color. Specify red, green, and blue values. Default is (255, 255, 0) which is Pure Yellow. | ||||||||||||||||||
| tmcolor | Alternate Time Mark color. Specify red, green, and blue values. Default is (255, 50, 200) which is a Pinkish color. | ||||||||||||||||||
| maxcolor | Alternate Maximum Value color. Specify red, green, and blue values. Default is (224, 255, 255) which is a Light Cyan color. | ||||||||||||||||||
| dotcolor | Alternate Time Dot color. Specify red, green, and blue values. Default is (204, 204, 255) which is a Light Grey color. | ||||||||||||||||||
| dwincolor | Alternate Data Window color. Specify red, green, and blue values. Default is (0, 255, 0) which is Pure Green. | ||||||||||||||||||
| nwincolor | Alternate Data Window color. Specify red, green, and blue values. Default is (255, 0, 0) which is Pure Red. | ||||||||||||||||||
| pthrcolor | Alternate P Threshold Line color. Specify red, green, and blue values. Default is (255, 69, 0) which is an Orange-Red. | ||||||||||||||||||
| sthrcolor | Alternate S Threshold Line color. Specify red, green, and blue values. Default is (255, 255, 255) which is Pure White. | ||||||||||||||||||
| nlvlcolor | Alternate Noise Level Line color. Specify red, green, and blue values. Default is (0, 255, 0) which is Pure Green. | ||||||||||||||||||
| view_dwin | View Data Window, either view (0), or don't view (1). Default = 0. | ||||||||||||||||||
| view_nwin | View Noise Window, either view (0), or don't view (1). Default = 0. | ||||||||||||||||||
| view_pick | View Picks, either view (0), or don't view (1). Default = 0. | ||||||||||||||||||
| view_picklab | View Pick Labels, either view (0), or don't view (1). Default = 1. | ||||||||||||||||||
| view_errs | View Pick Uncertainties, either view (0), or don't view (1). Default = 1. | ||||||||||||||||||
| view_tmark | View Time Marks, either view (0), or don't view (1). Default = 1. | ||||||||||||||||||
| view_tmarklab | View Time Mark Labels, either view (0), or don't view (1). Default = 1. | ||||||||||||||||||
| cfwin | Window length (number of samples) for computation of cross power spectrum when calculating Cichowicz characteristic functions. Default = 15. | ||||||||||||||||||
| max_view | The maximum number of datasets visible on the viewable part of the screen. If more that max_view data sets are viewed, they can be accessed by the scroll bar. Default = 10. | ||||||||||||||||||
| vpvs_min | The minimum value of Vp/Vs used by the S arrival time estimator. Default = 1.72. | ||||||||||||||||||
| vpvs_max | The maximum value of Vp/Vs used by the S arrival time estimator. Default = 1.90. | ||||||||||||||||||
| vpvs_pref | The preferred value of Vp/Vs used by the S arrival time estimator. This is the Vp/Vs used to estimate Tp for the first selected waveform. Default = 1.78. | ||||||||||||||||||
| mode | Control of operation for automatic detection. Possible choices
for mode are:
|
When executing Xphase the first window to appear on the screen is the main window titled Xphase with the version number and the name of the directory from which Xphase was executed. The main window is divided up into two sections: a panel along the top containing various buttons, and a canvas onto which the time series are plotted.
The buttons on the panel and their functions are as follows:
| Data Window | appears as dashed green lines | ||||||||||||
| Noise Window | appears as dashed read lines | ||||||||||||
| Estimate Maxima | appear as dashed blue lines | ||||||||||||
| Picks | appear as solid lines with phase dependent colors, depending
on the background color scheme (these can be redefined by the user in the preference file).
For the black on white scheme:
For the Yellow on Blue scheme:
|
Uncertanties appear as dotted lines in the color corresponding to the pick type.
The Pick Type section allows you to choose which phase to align when working in relative time mode. Default is the P phase.
DATA--
| AR order | Order of the autoregression model
|
| Operation mode | (Not Used in this fuction) |
| Covariance Interval | This is basically the sample where the estimation starts. See discusion of arwid above. |
| Start Point | Beginning of data window |
| End Point | End of Data window |
| Auto Window Size | (Not Used in this function) |
| P threshold | (Not Used in this function) |
| S threshold | (Not Used in this function) |
| Moving Window Fraction | (Not Used in this function) |
Upon completion of processing, a window is created showing the function and its maximum.
| AR order | Order of the autoregression model |
| Length of Moving Window | Length of window over which a moving average is taken for detection. Making this longer makes the detection function smoother. |
| AR Start Point | Beginning of Data Window |
| AR End Point | End of Data Window |
| Noise Start Point | Beginning of Noise Window |
| Noise End Point | End of Noise Window |
| AR order | Order of the autoregression model | ||||||||||||||||
| Operation mode | A flag that tells the program how to select the data for
processing. Options are:
Some conventions used in processing with these modes:
| ||||||||||||||||
| Covariance Interval | this is basically the sample where the estimation starts. | ||||||||||||||||
| Start Point | Beginning of data window | ||||||||||||||||
| End Point | End of Data window | ||||||||||||||||
| Auto Window Size | This sets the effective size of a Data Window about a detected phase for onset estimation. The window position is set so that the detection is in the mitdle. | ||||||||||||||||
| P threshold | This determines the threshold level of detection of P wave. It multiplies the detection function level in the Noise Window, so should be > 1.0 | ||||||||||||||||
| S threshold | This determines the threshold level of detection of S wave. It multiplies the maximum of the detection function level in the Data Window, so should be < 1.0. | ||||||||||||||||
| Moving Window Fraction | This is used to determine significant maxima in the estimation function by using moving averages. The smaller this number, the more maxima will be identified. |
| Red: | The noise level, as calculated by [(sum(i=1,n) y(i)**0.25))/n]**4.0 |
| Green: | The P threshold (arg.pfact*noise_level) |
| Blue: | The S threshold (arg.sfact*detect_max) |
There are a variety of functions that can be performed on the Canvas. These are selected using the switch in the third line of the top panel.
Note that there are "Canvas Activity Help" Windows that can be switched on and off using the button on the top panel. These are to help the user remember how to use the different activities.
| Left | P arrival | Pink |
| Middle | S arrival | Royal Blue |
| Right | Other arrival | Olive Green |
After clicking, a solid line will be drawn showing location of pick with colors as indicated above.
| Left | Delete Pick |
| Middle | Restore Pick |
| Right | Change Pick type |
| Middle | Unselect |
| Left | Put uncertainty at selected point. If the cursor is left of the pick, this is presumed to be the left uncertainty and right of is right. |
| Right | Have uncertanties revert to the default values. |
Several functions are easier to do with keyboarding, and Xphase includes some commands that can be actuated with single key strokes The following are shortcuts to "button" commands:
| KEY | Funtion | ||||
| h | Help Prints out a list of current keyboard functions to the screen. | ||||
| D | Delete Current Dataset Note that pressing this button will delete the current dataset without asking for confirmation, so be careful! The screen will be redrawn each time a dataset is deleted in this fashion. | ||||
| f | Delete all selected datasets.
| q | Quit Program
| ? | Help | Same as "h". |
The following change the current Canvas Activity. Note that with the exception of "Unzoom" all they do is change the activity and wait on the mouse for further instructions.
| KEY | Funtion |
| z | Zoom |
| Z | Unzoom This will unzoom with each keystroke until the zooms are exhausted. |
| p | Locate points |
| d | Data window |
| n | Noise window |
| x | Max value |
| m | Manual pick |
| e | Edit Picks |
| u | Edit Uncertainites |
| P | Delete All P Picks |
| S | Delete All S Picks |
| q | Quick Pick |
| w | Quick Whiten |
| v | Get Minimum value |
| W | Quick Whiten with current Noise |
| k | Quick Pick with selected data |
| c | Pick Comment |
| E | Eigen Values |
| C | Calculate Current Cichowicz Characteristic Function |
| F | Calculate All Cichowicz Characteristic Functions |
| A | Switch between Absolute and Relative Time Frames |
The following are IIR and FIR filtering shortcuts:
| KEY | Funtion |
| I | FIR Acausal Filter using current filter selected |
| l | Low Pass at 0.2 Hz |
| L | Low Pass at 0.5 Hz |
| h | High Pass at 0.2 Hz |
| H | High Pass at 1.0 Hz |
| b | Band Pass at 0.05-0.5 Hz |
| B | Band Pass at 0.05-0.2 Hz |
The following have no equivalent button or canvas activity selection (i.e., they are unique to keystrokes).
| KEY | Funtion |
| U | Undo Undo some functions (zoom, unzoom, set data window, set noise window, cross correlation). You can undo the last invocation, and zoom/unzoom can be toggled. |
| X | Delete created data When typed, all files generated after the initial set of files was read in are deleted. In other words, all Xphase generated files are deleted. |
| K | Quick Pick in Existing Window Like "k" above, but uses the currently defined window (i.e., does not wait for you to redefine the data window). Be sure to select the data sets to be processed prior to typing "K". |
| T | Quick Pick for many Single Channels Treats each selected channel individually, and picks a phase within the data window. This function is commonly used on a set of vertical components when an estimate of P arrivals for a network is desired. Typically you would set the noise and data windows first, select the channels for which you desire estimates, then type "T". |
| V | View All View all the data sets in the current list. |
| a | Relative/Absolute Time Toggle between relative and absolute time. |
| s | All Select/Deselect Toggles between selecting all (viewed) data and delselecting all data. |
| g | Redraw Redraw the screen. Equivalent to selecting the DRAW button. |
| r | Upgrade picks and delete extraneous files This is a shortcut that combines the UPGRADE button function and the "X" function (delete created data - see above). |
| N | Quit Quits without asking for conformation. Picks are appended to a file called "newpicks" prior to quitting. |
| 1-3 | Roll the Display to the next "N" waveforms (where
"N" is between 1 and 3) When typed, the last "N" waveforms that are currently displayed will be deselected, and the next "N" waveforms will be selected for viewing. The screen is regenerated after the selection is made. This is a useful shortcut for quickly moving through multichannel data. For example, if your data is in groups of three channels, pressing "3" will automatically move on to the next three channels. |
| Shift-(1-3) | Roll the Display back by "N" waveforms (where
"N" is between 1 and 3) Essentially, this will undo a roll forward. |
| 6 | Display the first 6 waveforms When typed, the first 6 waveforms in the current list will be displayed |
To the extreme left of each waveform is a rectangular box known as a selection box. This box will be red when the corresponding waveform is selected for processing, and white when it is not. Selecting and unselecting can be accomplished by left-clicking within the box.
The internal order of datasets can be changed by right-clicking within the selection box. The effect is to move the corresponding dataset to the top of the screen (and shifting the ones on top down a notch). It is necessary only to have the waveform in question plotted on the screen to send it to the top of the heap (i.e, you don't have to view all the data at once).
Turning this on (by selecting "Yes") will cause help windows to appear when a canvas operation is attempted.
The screen scale selection controls the amplitude scaling on the screen. The options are:
| All Trace | Scale by Individual trace, use whole trace |
| Windowed Trace | Scale by Individual trace, use trace in window |
| All Data | Scale by all data |
| Windowed Data | Scale by all data in window |
| All Equal | Set max and min values the same for all data |
| Windowed Equal | Set max and min values the same for all data in current window |
| All Absolute | Set max and min values the same for all data, but make min = -abs(max) |
| Windowed Absolute | As above but only for windowed data. |
Xphase allows the user to change values of important parameters every time a processing step is started by displaying an interactive window showing the current settings. The utility of this is evident, but often the user already likes all the current values and isn't interested in seeing them repeatedly displayed. The Option Windows toggle allows the user to switch these windows on and off by selecting "Yes" or "No".
When set to "Yes", all selected traces are drawn one on top of the other in different colors. If "No", draw each trace individually.
The units of the X axis can be shown either as sample number ("Sample") or real time ("Time"). Changes take effect when the next "DRAW" is performed.
There are several choices for Cichowicz characteristic functions; see the discussion in the section "Preferences and Defaults". This window allows the user to choose which function will be calculated when the "CICH FUNS" button is selected. Note that some of these functions (the last three on the list) require the computation of eigenvectors prior to their use - this can be done using the "Eigen Vector" Canvas activity (see above for more details).
The usual mode of display for Xphase is absolute time, but for a number of applications (overlay, correlation) it is preferable to redefine time relative to some channel-specific indicator. Relative time in Xphase is defined by setting a phase pick (default is first P, but this can be changed in the OPTIONS window) in each channel equal to time 0. The effect is to align all the waves along these picks. If there is no pick, a default offset is chosen which abuts the channel against the left side of the screen.
The program was written so that all operations would be transparent to choice of time frame, and beta testing has not picked up any bugs (yet). This means you can make picks, etc., in either frame and the real time will be preserved.
Xphase attempts to determine the polarity of P arrivals by calculating the average amplitude of some window after the picked arrival (default is two samples; this is a user-defined preference) and comparing it with the picked amplitude. Polarity is set to 1 if later amplitude is greater (up motion), -1 for down motion, and 0 if it is neither up nor down or if the phase in question is not a P wave.
Reviewing Windowed Data
A very common and useful application of Xphase is to review or generate picks for event data that has been windowed from a number of stations in a network. Here are some procedures that I have found useful in making this common task less onerous:
Analysis of Continouous DataScope Data
PASSCAL experiments often wind up with continuous data sets in a format similar to DataScope. A useful procedure for working with this data combines DataScope and Xphase/Xest:
Xest -d -db gh2000302_2000350 -mode 3 -stn BART -tstr "2000-302 00:00:00.000" -tend "2000-302 00:10:00.000"
This command operated on 10 minutes of data from station BART. The idea is to execute this command many times until the entire time span is covered.
Xest
Steve Roecker
roecks@rpi.edu
Xphase is an amalgam of different codes of varied heritage. Thanks to Alex Kushnir and his colleagues for allowing me to use their FORTRAN routines. The routines to read segy files and parse arguments were modified from routines in the program "segy2sac" written by Tim Ahern, Jim Fowler and Richard Boaz of PASSCAL. Geoff Abers wrote the routine to read in DataScope files. Finally, some of the code used to produce the PostScript files was adapted from the XY program written long ago by Paul Wessel.
Send bug reports to: roecks@rpi.edu