The tutorial was published in the April 2016 issue of The Leading Edge.

Madagascar users are encouraged to try improving the results.

]]>The tutorial was published in the August 2015 issue of The Leading Edge.

Madagascar users are encouraged to try improving the results.

]]>At the Madagascar Working Workshop in 2018, a couple of new scripts were added to simplify plotting with Matplotlib in Madagascar.

- sfmatplotlib can be used to plot RSF files.You can use it as follows:
Without the standard output, the figure is displayed on the screen.

The figure above was generated with

`sfspike n1=1000 k1=300 | sfbandpass fhi=2 phase=y| sfmatplotlib plot title="Welcome to Maagascar" grid=y linewidth=3 format=png > figure.png`

Futher enhancements are possible.

- sfpgreywfl is a script contributed by Carlos da Costa that uses
**matplotlib**for plotting a seismic wavefiels overlaid on the velocity model.

The figure above was generated with

According to the SourceForge statistics, the previous 2.0 stable distribution has been downloaded about 6,000 times. The top country (with 27% of all downloads) was China, followed by the USA, Brazil, Canada, and India.

In September 2019, the total cumulative number of downloads for the stable version of Madagascar has reached 50 thousand. The current development version continues to be available through Github.

]]>You can use it by simply running

An example notebook is the result of running **scons2jupyter** in bei/vela/vscan.

A newly created notebook can be populated with Markdown text and explanations to implement the discipline of literate programmins.

]]>The following example from tccs/intshape/fsyn uses the SNR computation to compare the convergence of two different methods.

SNR is computed according to the equation

$SNR=\displaystyle 10\log_{10}\left(\frac{\Arrowvert \mathbf{s} \Arrowvert_2^2}{\Arrowvert\mathbf{n}\Arrowvert_2^2}\right)$

The signal vector $\mathbf{s}$ is in the standard input, the noise vector $\mathbf{n}$ is in the file specified by **noise=** parameter.

]]>A constant-$Q$ wave equation involving fractional Laplacians was recently introduced for viscoacoustic modeling and imaging. This fractional wave equation has a convenient mixed-domain space-wavenumber formulation, which involves the fractional-Laplacian operators with a spatially varying power. We propose to apply low-rank approximation to the mixed-domain symbol, which enables a space-variable attenuation specified by the variable fractional power of the Laplacians. Using the proposed approximation scheme, we formulate the framework of the $Q$-compensated reverse-time migration ($Q$-RTM) for attenuation compensation. Numerical examples using synthetic data demonstrate the improved accuracy of using low-rank wave extrapolation with a constant-$Q$ fractional-Laplacian wave equation for seismic modeling and migration in attenuating media. Low-rank $Q$-RTM applied to viscoacoustic data is capable of producing images comparable in quality with those produced by conventional RTM from acoustic data.

The method is described in the reproducible paper Adaptive multiple subtraction using regularized nonstationary regressio

The following example from tccs/lpf/plut shows a common-offset section from the Pluto synthetic dataset before and after adaptive multiple subtraction with the help of **sflpf**.

Given target data $m(\mathbf{x})$ (specified with **match=** parameter) and a collection of fitting functions $s_k(\mathbf{x})$ (specified in the standard input), **sflpf** finds the fitting coefficients $b_k(\mathbf{x})$ by minimizing the error

$m(\mathbf{x}) – \displaystyle \sum_{k=1}^{N} b_k(\mathbf{x})\,s_k(\mathbf{x})$

while constraining the coefficients to be smooth. The smoothness is controlled by **rect#=** parameters, as in sfsmooth.

Shaping regularization is carried out iteratively, **niter=** controls the number of iterations.

The mean coefficient from the example above is shown in the figure below.

Optionally, a prediction-error filter can be applied to whiten the residual. The filter is specified with the help of **pef=** and **lag=** parameters, with a multidimensional helical filter specified as in sfhelicon.

The complex version of the same program is sfclpf.

The right plot in the following example from gee/prc/bob shows the semblance extracted using **sfslice** from the semblance scan along the trajectory picked with sfpick.

**sfslice** does not have parameters other than **pick=**, which points to the file with the surface for extraction.

It performs a simple linear interpolation to extract the values.

The bottom plot in the figure below shows a simple example from rsf/rsf/sfnoise.

The unique parameters of **sfbargraph** include **width=** for controling the relative width of the bars and **stack=** to control if the bars from multiple input traces should be stacked on top of one another.

The other parameters are shared with other plotting programs.

]]>