Polarization - Polarization analysis and filtering for three-component data

To run the demo, type the name of the demo shell script on the commandline
of a terminal window.

Demo shell scripts: Supolar  - Polarization analysis 
                    Supofilt - Polarization filter 
                    Sueipofi - Polarization filter based on SVD
                    MakeData - Generate and sort data for scripts named above 
                               (launched automatically by those)
                    Suhrot   - Horizontal rotation of three-component data

Relevant selfdocs:  supolar, supofilt, sueipofi, suhrot

Each of the programs demonstrated here considers three adjacent traces as one
three-component dataset (one 3C seismometer or triphone). The demo shell scripts 
use the seismic trace identification code "trid" as a component identifier 
(43 = vertical component, 44 = horizontal component 1, and 45 = horizontal 
component 2). To find out more on CWP assignments of "trid", refer to 
"$CWPROOT/src/su/include/segy.h" or type "sukeyword trid" on the commandline 
of a terminal window (without the quotes).

The default output of these demo shell scripts is X window graphics. You may 
switch to PostScript output by setting the flag "POSTSCRIPT=1" at the top of 
each script.

Below, you will find a brief summary of each demo script and references to
the underlying theory:


Supolar - Polarization analysis via covariance matrix

This demo explains the usage of the program "supolar". This program performs 
a polarization analysis of three-component data based on the covariance 
matrix M. With this matrix the data are fit to a polarization ellipsoid, where 
the three eigenvectors of M define its principal axes. The eigenvector 
corresponding to the largest eigenvalue gives the main direction of 
polarization. Several polarization parameters can be computed from the 
eigenvalues and eigenvectors of M, describing the shape of the seismic signal 
or "quality of polarization", the orientation of the polarization ellipsoid in 
space (via horizontal azimuth and inclination), and the distribution of energy 
within the analysis window. These parameters are computed by "supolar" within a 
moving time window along the entire trace, and each calculated value is 
assigned to the center of that window. Many of these are equivalent, therefore 
only a selection is shown by the demo script "Supolar".

First, the demo reads a three-component dataset named "data3c.su" or runs 
the script "MakeData" to generate it. After computing selected polarization
parameters, these are shown together with the three-component data via X window 
graphics or PostScript plots. 


Supofilt - Polarization filter based on output of "supolar"

The demo "Supofilt" is an implementation of a polarization filter described 
by Kanasewich, 1981 ("weighted directivity filter"). This filter uses a 
measure of signal rectilinearity and the direction cosines of the principal
axis to weight the samples of each component trace. This task is performed
by "supofilt", wheras the direction cosines and the rectilinearity have to
be computed by "supolar" first.

The demo shell script reads a three-component dataset "data3c.su" or runs
"MakeData" automatically, to generate it. After polarization analysis the
filter weights are applied to each component, and the results are compared
to the input data via X window graphics or PostScript plots.


Sueipofi - Polarization filter based on singular value decomposition (SVD)

The program "sueipofi" demonstrated by this shell script is an alternative 
filter for three-component data (Franco and Musacchio, 2000). It is based on 
the assumption that the particle motion trajectory is essentially 2D 
(elliptical polarization). 
The filter is the sum of the first two eigenimages of the singular value 
decomposition (SVD) of the signal matrix, with weighting functions applied, 
additionally. These are dependent on rectilinearity and planarity of the 
signal. The eigenimages and weighting functions are computed within 
non-overlapping time windows and interpolated linearily or via cubic splines
to avoid edge effects on the filtered traces.

The demo reads the same data file as the scripts mentioned above, or it runs
"MakeData" automatically to generate it. Then the filter is applied and again 
the results are compared to the original data via X window graphics or 
PostScript plots.


MakeData - Generate a three-component dataset

"MakeData" generates a demonstration dataset for these demo shell scripts 
and sorts the traces as required by the three-component processing tools.
The scripts "Supolar" "Supofilt", and "Sueipofi" run "MakeData" automatically,
but you may want to modify the data for a second run of one of these demos.
Run "MakeData", "Clean.sh" or simply remove the data file "data3c.su", if
you intend to do so.


Suhrot - Horizontal rotation of three-component data

Sometimes it is useful to rotate three-component data prior to display or
to subsequent processing (e.g. from the Z, N, E into the Z, Inline, Crossline
coordinate system). 
This simple demo script generates its own "data" with energy only on one 
horizontal component. Then it uses "suhrot" to rotate these data by angles from 
0 to 360 degrees. The result is shown via X window graphics or a PostScript 
plot.



References:

Benhama, A., Cliet, C., and Dubesset, M, 1988: Study and applications 
    of spatial directional filtering in three-component recordings.
    Geophysical Prospecting, vol. 36.
Franco, R. de, and Musacchio, G., 2000: Polarization Filter with
    Singular Value Decomposition, submitted to Geophysics and
    published electronically in Geophysics online (www.geo-online.org).
Jurkevics, A., 1988: Polarization analysis of three-component
    array data. Bulletin of the Seismological Society of America, 
    vol. 78, no. 5.
Kanasewich, E. R., 1981: Time Sequence Analysis in Geophysics.
    The University of Alberta Press.
Kanasewich, E. R., 1990: Seismic Noise Attenuation.
    Handbook of Geophysical Exploration, Pergamon Press, Oxford.
Samson, J. C., 1973: Description of the Polarisation States of Vector
    Processes: Application to ULF Electromagnetic Fields.
    Geophysical Journal vol. 34, p. 403-419.



Nils Maercklin
GeoForschungsZentrum (GFZ) Potsdam
Telegrafenberg E 352
D-14473 Potsdam, Germany
nils@gfz-potsdam.de
