Time-frequency decomposition

March 28, 2012 Documentation No comments

A new paper is added to the collection of reproducible documents:
Seismic data analysis using local time-frequency decomposition

Program of the month: sfspectra

March 18, 2012 Programs No comments

sfspectra computes spectrum, the absolute value of the 1-D Fourier transform along the fast axis.

The following example from rsf/su/rsfkasper shows a seismic shot gather before and after high-pass filtering and the corresponding spectra computed with sfspectra.

sfspectra has only one option: all=. If all=n (the default behavior), the spectrum is computed separately for each trace. If all=y, the output is the spectrum averaged across all traces.

For a two-dimensional version, try sfspectra2. The following figures from jsg/seislet/lena show the infamous Lena image and the “seismic Lena” (after Chris Liner and David Monk)

and the corresponding 2-D spectra computed with sfspectra2

Previous programs of the month

“The case for open computer programs” in Nature magazine

February 22, 2012 Links No comments

A recent article by Darrel C. Ince, Leslie Hatton, and John Graham-Cumming.


Scientific communication relies on evidence that cannot be entirely included in publications, but the rise of computational science has added a new layer of inaccessibility. Although it is now accepted that data should be made available on request, the current regulations regarding the availability of software are inconsistent. We argue that, with some exceptions, anything less than the release of source programs is intolerable for results that depend on computation. The vagaries of hardware, software and natural language will always ensure that exact reproducibility remains uncertain, but withholding code increases the chances that efforts to reproduce results will fail.

Read full article here.
Les Hatton was in computational geophysics research for 15 years. He is the primary author of a great introductory book “Seismic Data Processing: theory and practice”. He switched careers after that to study software and systems failure.

Reproducible research in Seismic Unix

January 29, 2012 Documentation No comments

Open Data/Open Source: Seismic Unix scripts to process a 2D land line by Karl Schleicher is an example of a reproducible paper created with Seismic Unix. It is also a unique example of generating a full processing sequence with a publicly-available dataset, from field data to the final image. Work is under way for generating more examples and for translating the processing flow from SU (suproj) to Madagascar (proj).

Elusive Goal

January 29, 2012 Links No comments

Scientists’ Elusive Goal: Reproducing Study Results , an article published on the first page of the Wall Street Journal, describes the crisis of scientific reproducibility in bio-medical research.


Many of the issues described in the article sound familiar.

…Reproducibility is the foundation of all modern research, the standard by which scientific claims are evaluated. In the U.S. alone, biomedical research is a $100-billion-year enterprise. So when published medical findings can’t be validated by others, there are major consequences…

…There is also a more insidious and pervasive problem: a preference for positive results…

…Some studies can’t be redone for a more prosaic reason: the authors won’t make all their raw data available to rival scientists…

Geophysical research does not affect human lives directly but its quality can suffer from non-reproducibility in very much the same way.

tkvpconvert

January 19, 2012 Programs 6 comments

tkvpconvert provides a Tkinter GUI (graphical user interface) for vpconvert. It is a silly exercise, which simply demonstrates an ability to generate specialized GUIs for Madagascar scripts and programs.

Program of the month: sfsmooth

January 1, 2012 Programs No comments

sfsmooth, one of the most useful Madagascar programs, implements smoothing by triangle filtering.

The idea of triangle filtering is explained in Jon Claerbout’s books Processing versus Inversion and Image Estimation by Example. You can find the explanation in the chapter Smoothing with box and triangle. The triangle filter of radius is a correlation of two box filters. In the Z-transform notation,
$$T_k(Z) = B_k(1/Z)\,B_k(Z)$$
where
$$B_k(Z) = \displaystyle \frac{1}{k}\,\left(1+Z+Z^2+\cdots+Z^k\right) = \frac{1}{k}\,\frac{1-Z^{k+1}}{1-Z}$$
and $k$ is the smoothing radius. Triangle filtering is a very efficient operation, because it requires only $N$ multiplications for the input of size $N$.

Triangle filtering serves as a good approximation to more expensive Gaussian filtering. Repeated triangle filtering rapidly approaches Gaussian filtering (a consequence of the central limit theorem). The following example from jsg/shape/smoo demonstrates how repeated application of triangle smoothing turns a triangle filter into a Gaussian filter

The following example from gee/ajt/triangle demonstrated how sfsmooth handles boundary conditions: the energy is reflected from the side in order to preserve the zero-frequency (DC) component of the input signal. Repeated smoothing or smoothing with a very large radius turns every signal into a constant.

In multiple dimensions, triangle smoothing is applied sequentially in different directions, possible with different radii (controlled by rect#= ) parameter. The following example from gee/ajt/mound shows shapes created by 2-D triangle smoothing after one pass and two passes (repeat=2).

Triangle smoothing is theoretically a self-adjoint operator. Numerically, the adjoint and forward operators are different. The action is controlled by the adj= parameter.

For smoothing with a box instead of a triangle, use sfboxsmooth.

For a different approach to smoothing, try sfgaussmooth, which implements smoothing by recursive Gaussian filtering.

Previous programs of the month

Beijing survey

January 1, 2012 Links No comments

A short user survey was conducted after the 2011 Madagascar School in Beijing.

The results are overwhelmingly positive. 100% of those who responded to the survey stated that they would be interested in attending Madagascar events in the future, and 100% would recommend it to their colleagues. As for the location of a future event, 95% suggested Beijing again. Many of those surveyed liked the excellent organization of the school. They disliked the fact that the school was too short and did not have enough space to accommodate all interested students. Organizers of future schools should take all survey suggestions into account.

Time-frequency analysis

December 30, 2011 Documentation No comments

A new paper is added to the collection of reproducible documents:
Time-frequency analysis of seismic data using local attributes

Programs of the month: sfcontour

December 3, 2011 Programs No comments

sfcontour is a program for generating contour plots of 2-D data. It shares many of its parameters with other 2-D plotting programs, such as sfgrey and sfgraph. You can access these parameters by running sfdoc stdplot.
Let us discuss some of the parameters specific to sfcontour.
The number of contours, their origin and increment are given by nc=, c0=, dc=. If these parameters are not specified, they are determined from the data values. The contour lines in the following picture from jsg/agath/radon were created with sfcontour c0=10 dc=10 nc=10

Alternatively, the contours can be specified in a list with c= or in a file with cfile=.
By default, sfcontour plots only contours for the positive values of the input. If you want both positive and negative values to be represented, use allpos=n.
A 3-D version of sfcontour is sfcontour3.
The contour lines in the following picture from jsg/flat/comaz were created with sfcontour3 cfile=