Tutorial on compressed sensing

February 16, 2016 Examples No comments

The example in rsf/tutorials/cs reproduces the tutorial from Ben Bougher on compressed sensing. The tutorial was published in the October 2015 issue of The Leading Edge.


Madagascar users are encouraged to try improving the results.

Program of the month: sfsort

January 16, 2016 Programs No comments

sfsort sorts the input by absolute value.

It takes either floating-point or complex input. Here is a quick example:

bash$ sfspike n1=10 | sfnoise rep=y seed=2016 > random.rsf
bash$ < random.rsf sfdisfil
   0:       -0.3485      -0.3108       0.7928      0.01292      -0.5301
   5:       -0.4556      -0.2901      -0.7167       -1.209      -0.2871
bash$  < random.rsf sfsort | sfdisfil
   0:         1.209       0.7928       0.7167       0.5301       0.4556
   5:        0.3485       0.3108       0.2901       0.2871      0.01292

To sort in reverse (ascending) order, use ascmode=y:

 
bash$ < random.rsf sfsort ascmode=y | sfdisfil
   0:       0.01292       0.2871       0.2901       0.3108       0.3485
   5:        0.4556       0.5301       0.7167       0.7928        1.209

sfsort tries to perform sorting in memory but, if the input is too large, it switches to slower out-of-core operations. To control the amount of available memory, use memsize= parameter.

If the input is multidimensional, and you want to sort data only up to a certain dimension, use dim= parameter. In the following example, each of the two rows is sorted independently:

bash$ < random.rsf sfput n1=5 n2=2 | sfsort dim=1 | sfdisfil
   0:        0.7928       0.5301       0.3485       0.3108      0.01292
   5:         1.209       0.7167       0.4556       0.2901       0.2871

sfsort was contributed to Madagascar by Gilles Hennenfent and Henryk Modzelewski from SLIM, UBC. They provide the following test example in slim/slimUserManual/sfsort:

10 previous programs of the month:

Program of the month: sfdivn

December 22, 2015 Programs No comments

sfdivn divides two signals, producing a smooth output. It treats division as inversion and regularizes the inversion using shaping regularization.

The following example from jlu/riesz/sigmoid shows the local dip computed by a smooth division of two components of the Riesz transform.

The denominator file is provided by den=. The shaping regularization is controlled by smoothness radii rect1=, rect2=, etc. and the maximum number of iterations niter=. The iterations can be accelerated by using eps= parameter. To suppress the output of iteration statistics on the screen, use verb=n.

10 previous programs of the month:

Interpolation using nonlinear shaping regularization

November 25, 2015 Documentation No comments

A new paper is added to the collection of reproducible documents: Seismic data interpolation using nonlinear shaping regularization

Seismic data interpolation plays an indispensable role in common seismic data processing workflows. Iterative shrinkage thresholding (IST) and projection onto convex sets (POCS) can both be considered as a specific form of nonlinear shaping regularization. Compared with linear form of shaping regularization, the nonlinear version can be more adaptive because the shaping operator is not limited to be linear. With a linear combination operator, we introduce a faster version of nonlinear shaping regularization. The new shaping operator utilizes the information of previous model to better constrain the current model. Both synthetic and field data examples demonstrate that the nonlinear shaping regularization can be effectively used to interpolate irregular seismic data and the proposed faster version of shaping regularization can indeed get obvious faster convergence.

Ground-roll noise attenuation using local orthogonalization

November 24, 2015 Documentation 4 comments

A new paper is added to the collection of reproducible documents: Ground-roll noise attenuation using a simple and effective approach based on local bandlimited orthogonalization

Bandpass filtering is a common way to estimate ground-roll noise on land seismic data, because of the relatively low frequency content of ground-roll. However, there is usually a frequency overlap between ground-roll and the desired seismic reflections that prevents bandpass filtering alone from effectively removing ground-roll without also harming the desired reflections. We apply a bandpass filter with a relatively high upper bound to provide an initial, imperfect separation of ground-roll and reflection signal. We then apply a technique called ‘local orthogonalization’ to improve the separation. The procedure is easily implemented, since it involves only bandpass filtering and a regularized division of the initial signal and noise estimates. We demonstrate the effectiveness of the method on an open-source set of field data.

Selective hybrid approach using f-x EMD

November 23, 2015 Documentation No comments

A new paper is added to the collection of reproducible documents: Random noise attenuation by a selective hybrid approach using f-x empirical mode decomposition

Empirical mode decomposition (EMD) becomes attractive recently for random noise attenuation because of its convenient implementation and ability in dealing with non-stationary seismic data. In this paper, we summarize the existing use of EMD in seismic data denoising and introduce a general hybrid scheme which combines $f-x$ EMD with a dipping-events retrieving operator. The novel hybrid scheme can achieve a better denoising performance compared with the conventional $f-x$ EMD and selected dipping event retriever. We demonstrate the strong horizontal-preservation capability of $f-x$ EMD that makes the EMD based hybrid approach attractive. When $f-x$ EMD is applied to a seismic profile, all the horizontal events will be preserved, while leaving few dipping events and random noise in the noise section, which can be dealt with easily by applying a dipping-events retrieving operator to a specific region for preserving the useful dipping signal. This type of incomplete hybrid approach is termed as selective hybrid approach. Two synthetic and one post-stack field data examples demonstrate a better performance of the proposed approach.

Deblending Using SVMF

November 23, 2015 Documentation No comments

A new paper is added to the collection of reproducible documents: Deblending using a space-varying median filter

Deblending is a currently popular method for dealing with simultaneous-source seismic data. Removing blending noise while preserving as much useful signal as possible is the key to the deblending process. In this paper, I propose to use space-varying median filter (SVMF) to remove blending noise. I demonstrate that this filtering method preserves more useful seismic reflection than does the conventional version of median filter (MF). In SVMF, I use signal reliability (SR) as a reference to pick up the blending spikes and increase the window length in order to attenuate the spikes. When useful signals are identified, the window length is decreased in order to preserve more energy. The SR is defined as the local similarity between the data initially filtered using MF and the original noisy data. In this way, SVMF can be regionally adaptive, instead of rigidly using a constant window length through the whole profile for MF. Synthetic and field-data examples demonstrate excellent performance for my proposed method.

Program of the month: sfpldb and sfplas

November 16, 2015 Programs No comments

sfpldb and splas are utilities for debugging Vplot files by converting them to the plain text (ASCII) form. pldb (plot debugger) converts a Vplot file to a text form, plas (plot assembler) converts the text form back to the Vplot format.

Suppose, for example, that your Vplot file has a typo in the label which spells Dept instead of Depth. Here is a Unix one-liner for fixing the label:

< file.vpl sfpldb | sed s/Dept/Depth/ | sfplas > fixed.vpl

Here the Unix line editor sed gets sandwiched between sfpldb and sfplas.

These programs were initinally developed by Vplot’s original author, Joe Dellinger.

10 previous programs of the month:

The genesis of Madagascar

November 12, 2015 Celebration No comments

The November 2015 issue of The Leading Edge contains an article about Madagascar: The Genesis of Madagascar by John Holden.

In July 2014, an unusual meeting took place at Rice University in Houston, Texas. Two dozen participants from numerous organizations gathered in a conference room for a workshop. Instead of the usual presentations and long talks one associates with scientific workshops, the participants immediately broke into small teams and gathered around laptop computers to write software code. Intense code-hacking sessions were interrupted only by necessary group discussions. This was the second “working workshop” of the Madagascar open-source software project.

One of the article’s features are user testimonials:

William W. Symes, Noah Harding Professor in Computational and Applied Mathematics and professor of earth science at Rice University, Houston, says, “I use Madagascar for everything! All of my computational research projects and those of my students take advantage of both the utility side of Madagascar (that is, its many useful commands for data manipulation and processing) and the reproducible research side. I have been convinced since learning the concept from J. F. Claerbout many years ago that reproducible research, in the sense epitomized by Madagascar, is not just an intellectually satisfactory mode (arguably the only such) for computational science research but a tremendous labor saver. Over the years, I have built a number of my own reproducible research (RR) frameworks but junked them all in favor of Madagascar several years ago. The utility suite is an incredible achievement, but the truly exceptional feature of Madagascar, in my opinion, is the suite of reproducible research tools. These are based on a full-featured language (Python) making them easily extensible, and they integrate TeX shell commands and (increasingly) HPC tools — this integration makes Madagascar the most powerful realization of the reproducible-research concept of which I am aware. It doesn’t solve all of the problems of RR — notably, the inability of software to keep itself maintained without human intervention — but it represents a quantum leap beyond other RR frameworks.”

Yang Liu, professor at the College of Geo-exploration Science and Technology, Jilin University, China, says, “I am using Madagascar software to implement new research ideas and provide reproducible examples for techniques in oil-gas exploration. For me the most attractive feature of the Madagascar open-source software is its reproducibility of computational modules, data-processing scripts, and research papers. Anyone could generate all examples and papers just by using several simple commands. The software package is also well maintained, and there is a group of developers who are continuously contributing their codes, which keeps the Madagascar software up to date. Many natural phenomena, including geologic events and geophysical data, are fundamentally nonstationary. So figuring out how to recover nonstationary signals from a noisy environment is a persistent problem in my field. We developed a 3D t-x-y adaptive prediction filter (APF) for random-noise attenuation in seismic exploration. The method is also able to deal with random noise in other fields, e.g., imaging processing. The core of the proposed method is based on existing source codes in the Madagascar environment. Therefore, we can implement the new theory in a short time. The computational modules and the corresponding paper are also reproducible in the updated Madagascar software package.”

Jeffrey Shragge, Woodside Professor of Computational Geoscience at the School of Earth and Environment/School of Physics, University of Western Australia, says, “My students and I use Madagascar for an integrated R & D environment on all aspects of my research. We develop and apply codes within the $RSFSRC/user/area and port these over to our R & D and local public (termed IVEC) HPC clusters. We are integrating Madagascar into our teaching through developing reproducible seismic labs. The package is unique because it integrates all of my R & D activities — code development, testing and verification, development of examples, easy extension to interface with HPC cluster systems, writing of manuscripts, etc. Most important, all of these activities can be undertaken in a reproducible environment. We have used codes written in the Madagascar package to address what type of microseismic signals we would expect from a large CO2 project being developed south of Perth. This required performing large-scale 3D elastic modeling on grids of the size 20003 using MPI+OpenMP codes developed using the Madagascar API. We have also used various Madagascar 2D/3D seismic-imaging codes for imaging geologic structures at this site to help prepare for pilot CO2 injection studies. We also use Madagascar for various near-surface geophysics investigations, including archaeological and forensic projects throughout Western Australia.”

Interactive picking with sfwxipick

November 1, 2015 Programs No comments

sfwxipick is a new interactive picking script which reimplements the functionality of sfipick using wxpython.

wxipick

See also sfwxzoom which reimplements the functionality of sfzoom. These functionalities can be easily extended if needed. Enjoy!