Seismic Unix

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

Infobox Software
name = Seismic Unix

caption = Velocity Analysis with SU
developer = [ CWP]
latest_release_version = SU 40
latest_release_date = release date|2007|05|25
operating_system = Unix, Linux, Solaris
genre = Technical computing
license = [ Reserved]
website = [ Seismic Unix Home]


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

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

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

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

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

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

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


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

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.suor as an image plot$ suximage <

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 > nx=200 nz=300 tmax=5 xs=$i zs=0 hsfile=seismogram.$> done

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

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:


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. [ [ SU Help Page] ]

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"

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"

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"

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"

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] .


2002 - Society of Exploration Geophysicists Special Commendation [ [ Award 2002] ]

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


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Depth conversion — is an important step of the seismic reflection method, which converts the acoustic wave travel time to actual depth, based on the acoustic velocity of subsurface medium (sediments, rocks, water). Depth conversion integrates several sources of… …   Wikipedia

  • SU — may refer to: wiktionarypar|su * Su (Basque), the Basque spirit of fire * su (Unix), the substitute user command * Su (surname), a Chinese surname * su , the Sanskrit cognate of Greek εὖ * Seismic Unix, a collection of seismic data processing… …   Wikipedia

  • Processing (Seismik) — CMP Anordnung und Laufzeitunterschiede (Normal Move Out) Das Processing ist die Aufbereitung seismischer Daten bei reflexionsseismischen Untersuchungen. Sie wird durchgeführt, um aus den Rohdaten eines seismischen Experiments ein sinnvolles… …   Deutsch Wikipedia

  • Histoire d'Internet — Le premier serveur web, actuellement au musée du CERN, étiqueté « This machine is a server. DO NOT POWER IT DOWN!! », ce qui signifie : « Cette machine est un serveur. NE PAS L ÉTEINDRE !! » L’histoire d’Internet… …   Wikipédia en Français

  • Histoire d'internet — Le premier serveur web, actuellement au musée du CERN, étiqueté « This machine is a server. DO NOT POWER DOWN!! », ce qui signifie : « Cette machine est un serveur. NE PAS ÉTEINDRE !! » …   Wikipédia en Français

  • Histoire de l'Internet — Histoire d Internet Le premier serveur web, actuellement au musée du CERN, étiqueté « This machine is a server. DO NOT POWER DOWN!! », ce qui signifie : « Cette machine est un serveur. NE PAS ÉTEINDRE !! » …   Wikipédia en Français

  • Rick Adams (Internet pioneer) — Rick Adams was an Internet pioneer and the founder of UUNET, which, in the mid and late 1990s, was the world s largest Internet Service Provider (ISP).Rick Adams was responsible for the first widely available Serial Line IP (SLIP) implementation… …   Wikipedia

  • Interferometric synthetic aperture radar — Interferometric synthetic aperture radar, also abbreviated InSAR or IfSAR, is a radar technique used in geodesy and remote sensing. This geodetic method uses two or more synthetic aperture radar (SAR) images to generate maps of surface… …   Wikipedia

  • Concrete — This article is about the construction material. For other uses, see Concrete (disambiguation). Outer view of the Roman Pantheon, still the largest unreinforced solid concrete dome.[1] …   Wikipedia

  • Larry Ellison — Infobox Celebrity name = Larry Ellison image size=200px birth date = birth date and age|1944|8|17 birth place = Manhattan, New York, USA death date = death place = occupation = Co founder and CEO, Oracle Corporation salary = $72.0 million USD… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.