Seismic Unix

From Wikipedia, the free encyclopedia

Seismic Unix is an open source seismic utilities package supported by the Center for Wave Phenomena (CWP) at the Colorado School of Mines (CSM).

Seismic Unix
Velocity Analysis with SU
Velocity Analysis with SU
Developed by CWP
Latest release SU 40 / May 25, 2007 (2007-05-25); 381 days ago
OS Unix, Linux, Solaris
Genre Technical computing
License Reserved
Website Seismic Unix Home

Contents

[edit] History

Einar Kjartansson began writing what is now called SU (the SY package) in the late 1970s while still a graduate student at Jon Claerbout's Stanford Exploration Project (SEP). He continued to expand the package while he was a professor at the University of Utah in the early eighties. In 1984, during an extended visit to SEP Einar introduced SY to Shuki Ronen, then a graduate student at Stanford. Ronen further developed SY from 1984 to 1986. Other students at SEP started to use it and contributed code and ideas. SY was inspired by much other software developed at SEP and benefited from the foundations laid by Clairbout and many of his students; Rob Clayton, Stew Levin, Dave Hale, Jeff Thorson, Chuck Sword, and others who pioneered seismic processing on Unix in the seventies and early eighties.

In 1986, Shuki Ronen brought this work to our Center during a one year postdoctoral appointment at the Colorado School of Mines. During this time, Ronen aided Cohen in turning SU into a supportable and exportable product.

Chris Liner, while a student at the Center, contributed to many of the graphics codes used in the pre-workstation (i.e, graphics terminal) age of SU. Liner's broad knowledge of seismology and seismic processing enabled him to make a positive and continuing influence on the SU coding philosophy.

Craig Artley, now at Golden Geophysical, made major contributions to the graphics codes while a student at CWP and continues to make significant contributions to the general package.

Dave Hale wrote several of the heavy duty processing codes as well as most of the core scientific and graphics libraries. His knowledge of good C-language coding practice helped make our package an excellent example for applied computer scientists.

John Stockwell's involvement with SU began in 1989. He is largely responsible for designing the Makefile structure that makes the package easy to install on the majority of Unix platforms. He has been the main contact for the project since the first public release of SU in September of 1992 (Release 17). After Jack Cohen's death in 1996, Stockwell assumed the role of principal investigator of the SU project and has remained in this capacity to the present. The number of codes has more than tripled in the 11 years, since John Stockwell has been PI of the project.

There have been many contributors to SU over the past two decades.

[edit] Syntax

The Seismic Unix routines run under the Unix terminal, and can get maximum efficiency when using it with bash scripting techniques.

[edit] Simple routines

Many of the programs run simply by a command on the terminal, for instance, to visualize a seismogram, as wiggle traces

$ suxwigb < seismogram.su

or as an image plot

$ suximage < seismogram.su

[edit] More elaborated routines

It is also possible, to use bash features do elaborate more complex processing structures:

$ for ((i=1;i<=100;i++)); do
> sufdmod2 < model.bin > output.mov nx=200 nz=300 tmax=5 xs=$i zs=0 hsfile=seismogram.$i.su
> done

In the example above Seismic Unix will create 100 seismograms in 100 different source positions

[edit] SU Data

Here will have an explanation of how SU data is, it's headers and how they are organized in a big SU file with more than one gather:

--header--data--header--data--...

[edit] SU Programs

Seismic Unix has many of the processes needed on the geophysical processing. It is possible to use it to manipulate and create your own seismograms, and also to convert them between the SU standard file and the industry standard, the SEG-Y.

Here you can find a list of the programs that the SU package has, with a brief description and a link to its help page.[1]

[edit] Data Compression

Discrete Cosine Transform
dctcomp Compression by Discrete Cosine Transform
dctuncomp Discrete Cosine Transform Uncompression
Packing
supack1 Pack segy trace data into chars
suunpack1 Unpack segy trace data from chars to floats
supack2 Pack segy trace data into 2 byte shorts
suunpack2 Unpack segy trace data from shorts to floats
Wavelet Transforms
wpc1comp2 Compress a 2D seismic section trace-by-trace using Wavelet Packets
wpc1uncomp2 Uncompress a 2D seismic section, which has been compressed using Wavelet Packets
wpccompress Compress a 2D section using Wavelet Packets
wpcuncompress Uncompress a 2D section
wptcomp Compression by Wavelet Packet Compression
wptuncomp Uncompress WPT compressed data
wtcomp Compression by Wavelet Transform
wtuncomp Uncompression of WT compressed data

[edit] Editing, Sorting and Manipulation

Edit + Tools
suabshw Replace header key word by its absolute value
suazimuth Compute trace AZIMUTH given the sx,sy,gx,gy header fields and set a user-specified header field to this value
subset Select a SUBSET of the samples from a 3-dimensional file
suchw Change Header Word using one or two header word fields
sucountkey Count the number of unique values for a given keyword
suedit Examine segy diskfiles and edit headers
sugethw Sugethw writes the values of the selected key words
sukill Zero out traces
sunan remove NaNs & Infs from the input stream
suquantile display some quantiles or ranks of a data set
surange get max and min values for non-zero header entries
sushw Set one or more Header Words using trace number, mod and integer divide to compute the header word values or input the header word values from a file
sutab print non zero header values and data for non-graphic terminals
suwind window traces by key word
suedit examine segy diskfiles and edit headers
Sort
susort sort on any segy header keywords
susorty make a small 2-D common shot off-end data set in which the data show geometry values to help visualize data sorting
Manipulate
fcat fast cat with 1 read per file
maxdiff find absolute maximum difference in two segy data sets
segyhdrmod replace the text header on a SEGY file
suaddnoise add noise to traces
sucmp CoMPare two seismic data sets, returns 0 to the shell if the same and 1 if different
sudiff,susum,suprod,suquo difference, sum, product, quotient of two SU data sets via suop2
suflip flip a data set in various ways
suhtmath do unary arithmetic operation on segy traces with headers values
suinterp interpolate traces using automatic event picking
sumixgathers mix two gathers
sunull create null (all zeroes) traces
suop do unary arithmetic operation on segys
suop2 do a binary operation on two data sets
supermute permute or transpose a 3d datacube
suramp Linearly taper the start and/or end of traces to zero
surecip sum opposing offsets in prepared data
recip sum opposing (reciprocal) offsets in cdp sorted data
suresamp Resample in time
resamp Resample the 1st dimension of a 2-dimensional function f(x1,x2)
suswapbytes Swap the bytes in SU data to convert data from big endian to little endian byte order, and vice versa
sutaper Taper the edge traces of a data panel to zero
sutxtaper Taper in (X,T) the edges of a data panel to zero
suvcat append one data set to another, with or without an overlapping region. Data in the overlap may be determined by one of several methods
suzero zero-out data within a time window
swapbytes Swap the bytes of various data type
transp Transpose an n1 by n2 element matrix

[edit] Filtering, Transforms and Attributes

One-Dimensional Filtering
suband Trapezoid-like Sin squared tapered Bandpass filter via SUFILTER
subfilt apply Butterworth bandpass filter
suconv convolution with user-supplied filter
sueipofi Eigenimage (SVD) based POlarization Folter for three-component data
sufilter applies a zero-phase, sine-squared tapered filter
sufrac take general (fractional) time derivative or integral of data, plus a phase shift. Input is TIME DOMAIN data
supef Wiener predictive error filtering
supofilt POlarization FILTer for three-component data
sushape Wiener shaping filter
sutvband time-variant bandpass filter (sine-squared taper)
suxcor correlation with user-supplied filter
Two-Dimensional filtering
sudipfilt DIP--or better--SLOPE Filter in f-k domain
sufxdecon random noise attenuation by FX-DECONvolution
suk1k2filter symmetric box-like K-domain filter defined by the cartesian product of two sin^2-tapered polygonal filters defined in k1 and k2
sumedian MEDIAN filter about a user-defined polygonal curve with the distance along the curve specified by key header word
sukfilter radially symmetric K-domain, sin^2-tapered, polygonal filter
sukfrac apply FRACtional powers of i|k| to data, with phase shift
Transforms and Attributes
entropy compute the ENTROPY of a signal
mrafxzwt Multi-Resolution Analysis of a function F(X,Z) by Wavelet Transform
suamp output amp, phase, real or imag trace from domain data
suattributes trace attributes instantanteous amplitude, phase or frequency
suenv Instantaneous amplitude, frequency, and phase via: suattributes
suhilb Hilbert transform
suhrot Horizontal ROTation of three-component data
sufft fft real time traces to complex frequency traces
suifft fft complex frequency traces to real time traces
sugabor Outputs a time-frequency representation of seismic data via the Gabor transform-like multifilter analysis technique
suharlan signal-noise separation by the invertible linear transformation method of Harlan
sulog time axis log-stretch of seismic traces
suilog time axis inverse log-stretch of seismic traces
supolar POLarization analysis of three-component data
syradon compute forward or reverse Radon transform or remove multiples by using the parabolic Radon transform to estimate multiples and subtract
sutaup forward and inverse T-X and F-K global slant stacks
sutsq time axis time-squared stretch of seismic traces
sureduce convert traces to display in reduced time
suspecfk F-K Fourier SPECtrum of data set
suspecfx Fourier SPECtrum (T -> F) of traces
suspeck1k2 2D (K1,K2) Fourier SPECtrum of (x1,x2) data set

[edit] Gain, NMO, Stack and Standard Processes

Standard Processes
suagc perform agc on SU data
sudipdivcor Dip-dependent Divergence (spreading) correction
sudivcor Divergence (spreading) correction
sugain apply various types of gain to display traces
grm Generalized Reciprocal refraction analysis for a single layer
sumix compute weighted moving average (trace MIX) on a panel of seismic data
sumute mute above (or below) a user-defined polygonal curve with the distance along the curve specified by key header word
sunmo NMO for an arbitrary velocity function of time and CDP
supgc Programmed Gain Control--apply agc like function but the same function to all traces preserving relative amplitudes spatially
supws Phase stack or phase-weighted stack (PWS) of adjacent traces having the same key header word
suresstat Surface consistent source and receiver statics calculation
sustack stack adjacent traces having the same key header word
sustatic Elevation static corrections, apply corrections from headers or from a source and receiver statics file
sustaticrrs Elevation STATIC corrections, apply corrections from headers or from a source and receiver statics file, includes application of Residual Refraction Statics
unglitch clip outliers in data
Miscellaneous
suacor Auto Correlation
suttoz Resample from time to depth
suvibro Generates a Vibroseis sweep (linear, linear-segment, dB per Octave, dB per Hertz, T-power)
suvlength Adjust variable length traces to common length

[edit] SU Community

Seismic Unix has a very large community, with lots of laboratories and researchers on the world using it. There's a listserver group where you can get help and post your questions about SU. To subscribe to it, click here.

You can also see the old posts that the users have already discussed, to do it click here.

[edit] Awards

2002 - Society of Exploration Geophysicists Special Commendation [2]

1994 - University to Industry award from the Colorado chapter of the Technology Transfer Society [3]

[edit] References