Program of the month: sfslant

April 21, 2015 Programs No comments

sfslant is a T-X implementation of slant stack, also known as Radon transform or tau-p transform.

The two middle panels in the example below from cwp/geo2006TimeShiftImagingCondition/zicig show a time-shift common-image gather and its transformation by slant stack.

sfslant is a linear operator and has an adjoint flag adj=: When adj=n, the transformation is from tau-p to t-x. When adj=y, the transformation is from t-x to tau-p. The sampling on the transformed coordinate is controlled in the two cases by nx=, dx=, x0= or, respectively np=, dp=, p0=. Antialiasing is enabled by default with anti=1 parameter. The central slope for antialiasing is given by p1=. A space integration is sfslant generally requires a corrective “rho filter” (half-order differentiation). It is enabled by rho= parameter.

For an F-X implementation of the Radon transform, see sfradon.

10 previous programs of the month

Seislet-based MCA

April 17, 2015 Documentation 2 comments

A new paper is added to the collection of reproducible documents:
Seislet-based morphological component analysis using scale-dependent exponential shrinkage

Morphological component analysis (MCA) is a powerful tool used in image processing to separate different geometrical components (cartoons and textures, curves and points etc). MCA is based on the observation that many complex signals may not be sparsely represented using only one dictionary/transform, however can have sparse representation by combining several over-complete dictionaries/transforms. In this paper we propose seislet-based MCA for seismic data processing. MCA algorithm is reformulated in the shaping-regularization framework. Successful seislet-based MCA depends on reliable slope estimation of seismic events, which is done by plane-wave destruction (PWD) filters. An exponential shrinkage operator unifies many existing thresholding operators and is adopted in scale-dependent shaping regularization to promote sparsity. Numerical examples demonstrate a superior performance of the proposed exponential shrinkage operator and the potential of seislet-based MCA in application to trace interpolation and multiple removal.

Tutorial on image resolution

April 16, 2015 Examples No comments

The example in rsf/tutorials/images reproduces the tutorial from Matt Hall on playing with image resolution. For more explanation, see Matt’s blog post R is for Resolution.



Madagascar users are encouraged to try improving the results.

madagascar-1.7 released

April 13, 2015 Celebration No comments

The 1.7 stable release features 21 new reproducible papers and multiple other enhancements including improved tools for parallel computing developed at the Second Working Workshop.

According to the SourceForge statistics, the previous 1.5 stable distribution has been downloaded more than 4,000 times. The top country (with 24% of all downloads) was USA, followed by China, Colombia, Germany, and Brazil. According to Openhub.net (last updated in January 2015), the year of 2014 was a period of a high development activity, with 33 contributors making 1,876 commits to the repository (up 16% from the previous year). Openhub.net says that Madagascar “has a well established, mature codebase maintained by a very large development team with stable year-over-year commits” and estimated 239 man-years of effort (an estimated development cost of $13 million).

How to make your research irreproducible

April 2, 2015 Links No comments

Yesterday (April 1, 2015) a group of computer scientists from UK (Neil Chue Hong, Tom Crick, Ian Gent, and Lars Kotthoff) announced a seminal paper Top Tips to Make Your Research Irreproducible.

Here are the tips that the authors share:

  1. Think “Big Picture”. People are interested in the science, not the dull experimental setup, so don’t describe it. If necessary, camouflage this absence with brief, high-level details of insignificant aspects of your methodology.
  2. Be abstract. Pseudo-code is a great way of communicating ideas quickly and clearly while giving readers no chance to understand the subtle implementation details (particularly the custom toolchains and manual interventions) that actually make it work.
  3. Short and sweet. Any limitations of your methods or proofs will be obvious to the careful reader, so there is no need to waste space on making them explicit\footnote. However much work it takes colleagues to fill in the gaps, you will still get the credit if you just say you have amazing experiments or proofs.
  4. The deficit model. You’re the expert in the domain, only you can define what algorithms and data to run experiments with. In the unhappy circumstance that your methods do not do well on community curated benchmarks, you should create your own bespoke benchmarks and use those (and preferably not make them available to others).
  5. Don’t share. Doing so only makes it easier for other people to scoop your research ideas, understand how your code actually works instead of why you say it does, or worst of all to understand that your code doesn’t actually work at all.

These tips will be undoubtedly embraced by all scientists trying to make their research irreproducible. The paper ends with an important conjecture:

We make a simple conjecture: an experiment that is irreproducible is exactly equivalent to an experiment that was never carried out at all. The happy consequences of this conjecture for experts in irreproducibility will be published elsewhere, with extremely impressive experimental support.

Fast 3D velocity scan

March 27, 2015 Documentation No comments

A new paper is added to the collection of reproducible documents:
A fast algorithm for 3D azimuthally anisotropic velocity scan

Conventional velocity scan can be computationally expensive for large-size seismic data, particularly when the presence of anisotropy requires multiparameter estimation. We introduce a fast algorithm for 3D azimuthally anisotropic velocity scan, which is a generalization of the previously proposed 2D butterfly algorithm for hyperbolic Radon transform. To compute the semblance in a two-parameter residual moveout domain, the numerical complexity of our algorithm is roughly $ O(N^3\log N)$ as opposed to $ O(N^5)$ of the straightforward velocity scan, with $ N$ being representative of the number of points in either dimension of data space or parameter space. We provide both synthetic and field-data examples to illustrate the efficiency and accuracy of the algorithm.

Multiple suppression using PEF

March 27, 2015 Documentation No comments

Another old paper is added to the collection of reproducible documents:
Multiple suppression using prediction-error filter

I present an approach to multiple suppression, that is based on the moveout between primary and multiple events in the CMP gather. After normal moveout correction, primary events will be horizontal, whereas multiple events will not be. For each NMOed CMP gather, I reorder the offset in random order. Ideally, this process has little influence on the primaries, but it destroys the shape of the multiples. In other words, after randomization of the offset order, the multiples appear as random noise. This “man-made” random noise can be removed using prediction-error filter (PEF). The randomization of the offset order can be regarded as a random process, so we can apply it to the CMP gather many times and get many different samples. All the samples can be arranged into a 3-D cube, which is further divided into many small subcubes. A 3-D PEF can then be estimated from each subcube and re-applied to it to remove the multiple energy. After that, all the samples are averaged back into one CMP gather, which is supposed to be free of multiple events. In order to improve the efficiency of the algorithm of estimating the PEF for each subcube, except for the first subcube which starts with a zero-valued initial guess, all the subsequent subcubes take the last estimated PEF as an initial guess. Therefore, the iteration count can be reduced to one step for all the subsequent subcubes with little loss of accuracy. Three examples demonstrate the performance of this new approach, especially in removing the near-offset multiples.

FWI on GPU

March 27, 2015 Documentation No comments

A new paper is added to the collection of reproducible documents:
A graphics processing unit implementation of time-domain full-waveform inversion

The graphics processing unit (GPU) has become a popular device for seismic imaging and inversion due to its superior speedup performance. In this paper we implement GPU-based full waveform inversion (FWI) using the wavefield reconstruction strategy. Because the computation on GPU is much faster than CPU-GPU data communication, in our implementation the boundaries of the forward modeling are saved on the device to avert the issue of data transfer between host and device. The Clayton-Enquist absorbing boundary is adopted to maintain the efficiency of GPU computation. A hybrid nonlinear conjugate gradient algorithm combined with the parallel reduction scheme is utilized to do computation in GPU blocks. The numerical results confirm the validity of our implementation.

Tutorial on phase and the Hilbert transform

March 26, 2015 Examples 1 comment

The example in rsf/tutorials/hilbert reproduces the tutorial from Steve Purves on phase and the Hilbert transform. The tutorial was published in the October 2014 issue of The Leading Edge. Madagascar users are encouraged to try improving the results.

See also:

Antialiasing in Kirchhoff migration

March 26, 2015 Documentation No comments

Another old paper is added to the collection of reproducible documents:
When is anti-aliasing needed in Kirchhoff migration?

We present criteria to determine when numerical integration of seismic data will incur operator aliasing. Although there are many ways to handle operator aliasing, they add expense to the computational task. This is especially true in three dimensions. A two-dimensional Kirchhoff migration example illustrates that the image zone of interest may not always require anti-aliasing and that considerable cost may be spared by not incorporating it.