Skip to content
Rodolfo Dirack edited this page Mar 7, 2024 · 28 revisions

Very Fast Simulated Annealing global optimization of zero offset CRS parameters (VFSA)

Github release License: GPL v3 Madagascar Build Status

Check out all functionalities in our documentation page

The Very Fast Simulated Annealing (VFSA) algorithm optimizes the global search of the CRS parameters (RN, RNIP and BETA) throughout fitting the reflection data with the non-hiperbolic common reflection surface (CRS) approximation surface. The algorithm uses the semblance between the CRS approximation surface and the reflection surface in the seismic data as a convergence criterion. The main assumption of this algorithm is that the CRS parameters, RN, RNIP, and BETA that produce the best fit between these surfaces will be the optimized ones.

The program sfvfsacrsnh uses VFSA global optimization to obtain the CRS parameters. This program uses the non-hyperbolic CRS traveltime approximation in the process to fit the data. After CRS parameters inversion, sfnhcrssurf program can be used to build the non-hyperbolic CRS surface that best fits the data for RN, RNIP, and BETA given.

If you need more details about VFSA and non-hyperbolic CRS, please read "what is VFSA?" and "What is non-hyperbolic CRS?" sections of this wiki.

Install dependencies

This package is designed as a plugin for Madagascar, a seismic processing package. In order to use them, you should install the actual Madagascar stable version in your computer and you should also install the vfsa package in your local version of Madagascar if it is not already available.

If you have any doubt about how to add new programs to your Madagascar installation, you can refer to the official documentation in Adding new programs to Madagascar, follow this video tutorial on YouTube (Portuguese, English subtitles) or follow the steps bellow to install the vfsa package in Madagascar:

Usually, Madagascar keeps the path of the source files of your Madagascar local version in the $RSFSRC environment variable. You can show that on a bash terminal using 'echo' command:

echo "$RSFSRC"

And Madagascar will install binary executable files on your $RSFROOT directory. You can show that environment variable with 'echo' too:

echo "$RSFROOT"

Madagascar stores user programs in $RSFSRC/user directory. So, you can create a new directory on $RSFSRC/user or put vfsa repository inside $RSFSRC/user. In vfsa repository, such as every user's repository in Madagascar, we have a compilation SConstruct that compile the C programs of this package. Run 'scons' on your $RSFSRC/user/vfsa repository to compile it:

scons

And run 'scons install' in the top directory of your local Madagascar installation (the directory path in your $RSFSRC variable):

sudo scons install

If you call a Madagascar program on command line without parameters, it will exhibit the program help. So, use the following commands to check vfsa installation:

sfvfsacrsnh

The following output is expected (the output can be different with another vfsa version):

NAME
        sfvfsacrsnh
DESCRIPTION
        Version 1.0 - Zero offset CRS ter inversion (RN, RNIP, BETA) with Very Fast Simulated Aneeling (VFSA) Gl
obal Optimization
SYNOPSIS
        sfvfsacrsnh < in.rsf > out.rsf om0=0.0 dm0=0.1 nm0=1 v0=1.5 ot0=0.0 dt0=0.1 nt0=1 c0=0.5 temp0=10 repeat
=1 verb=0
COMMENTS
        
        This program the Non-Hyperbolic CRS approximation to fit data cube and get the ters (Fomel, 2013).
        
        Programer: Rodolfo A. C. Neves (Dirack) 19/09/2019
        
        Email:  rodolfo_profissional@hotmail.com
        
        License: GPL-3.0 <https://www.gnu.org/licenses/gpl-3.0.txt>.
        
        
PARAMETERS
        float   c0=0.5  damping factor of VFSA 
        float   dm0=0.1         central CMP's sampling (Km) 
        float   dt0=0.1         t0's sampling (s) 
        int     nm0=1   central CMP's number of samples (Km) 
        int     nt0=1   Number of t0's sampling (s) 
        float   om0=0.0         central CMP's origin  (Km) 
        float   ot0=0.0         t0's origin (s) 
        int     repeat=1        How many times to perform VFSA global optimization 
        float   temp0=10        inicial VFSA temperature 
        float   v0=1.5  Near surface velocity (Km/s) 
        bool    verb=0 [y/n]    1: active mode; 0: quiet mode
SOURCE
        user/vfsa/Mvfsacrsnh.c
VERSION
        3.0
(END)
sfnhcrssurf

The following output is expected (the output can be different with another vfsa version):

NAME
        sfnhcrssurf
DESCRIPTION
        Version 1.0 - Build Non-Hyperbolic CRS approximation surface giver RN, RNIP and BETA parameters.
SYNOPSIS
        sfnhcrssurf < in.rsf param=par.rsf > out.rsf m0=0 v0=1.5 t0=1.5 verb=0
COMMENTS
        
        Programer: Rodolfo A. C. Neves (Dirack) 19/09/2019
        
        Email:  rodolfo_profissional@hotmail.com
        
        License: GPL-3.0 <https://www.gnu.org/licenses/gpl-3.0.txt>.
        
        
PARAMETERS
        float   m0=0    central CMP of the approximation (Km) 
        file    param=  auxiliary input file name
        float   t0=1.5  Normal ray traveltime (s) 
        float   v0=1.5  Near surface velocity (Km/s) 
        bool    verb=0 [y/n]    1: active mode; 0: quiet mode
SOURCE
        user/vfsa/Mnhcrssurf.c
VERSION
        3.0
(END)