Skip to content
Rodolfo Dirack edited this page Jun 1, 2021 · 8 revisions

User documentation

sfvfsacrsnh

Zero offset CRS parameter inversion of RN, RNIP, BETA with Very Fast Simulated Aneeling (VFSA) Global Optimization. This program uses the Non-Hyperbolic CRS approximation to fit data cube and get the parameters (Fomel, 2013).

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

The program receives a seismic data cube organized in the following coordinates: n1 is the time, n2 is the offset, n3 is the CMP. There is an example of a seismic data cube accepted by this program bellow.

sfin <dataCube.rsf 
in:
    in="/home/dirack/rsfdata/doc/usage/fullParametersOptimization/dataCube.rsf@"
    esize=4 type=float form=native 
    n1=1001        d1=0.004       o1=0          label1="Time" unit1="s" 
    n2=161         d2=0.0125      o2=0          label2="Offset" unit2="Km" 
    n3=401         d3=0.025       o3=0          label3="CMP" unit3="Km" 
	64625561 elements 258502244 bytes

The output of the program is a parameters file organized in: n1 is the 8 parameters (RN, RNIP, BETA, Semblance, C0, Temp0, t0, m0, respectively) and n2 is the parameters index for each (t0, m0) pair in the order and sampling determined by parameters om0, dm0, nm0 and ot0, dt0, nt0 passed through command line.

There is an example of parameters file bellow generated using om0=3, dm0=1, nm0=3, ot0=1.1, dt0=0.1, nt0=2, ot0=1.1:

<crsParameters.rsf sfin
in:
    in="/home/dirack/rsfdata/doc/usage/fullParametersOptimization/crsParameters.rsf@"
    esize=4 type=float form=native 
    n1=8           d1=1           o1=0          label1="parameters" unit1="RN, RNIP, BETA, Semblance, C0, Temp0, t0, m0" 
    n2=6           d2=1           o2=0          label2="(t0,m0)" unit2="index" 
    n3=1           d3=1           o3=0          label3="" unit3="" 
	48 elements 192 byte

So, it will be 6 (t0, m0) pairs organized by index 0 to 5 in the n2 axis (because nt0 x nm0 = 6). These pairs are: (1.1,3), (1.2,3), (1.1,4), (1.2,4), (1.1,5) and (1.2,5) as determined by the command line parameters above.

The v0 parameter is the near surface velocity of the model (used in CRS method) and input parameters temp0 (VFSA initial temperature) and C0 (VFSA damping factor) are control parameters to tune the VFSA algorithm for specific problems chosen arbitrarily. The repeat parameter is used to run VFSA more than once and to get the best parameters value from those attempts and verb is the verbose parameter.

The following is an example of calling sfvfsacrsnh in a SConstruct:

# Very Fast Simulated Aneelling Global Optimization (VFSA)
Flow('crsParameters','dataCube',
        '''
        vfsacrsnh om0=%g dm0=%g nm0=%d ot0=%g dt0=%g nt0=%d v0=%g verb=y repeat=%d
        ''' % (om0,dm0,nm0,ot0,dt0,nt0,v0,repeat))

For more details, please check out our usage examples.

⬆️ Back to top

sfnhcrssurf

Build Non-Hyperbolic CRS approximation surface for RN, RNIP and BETA parameters given.

sfnhcrssurf < in.rsf param=par.rsf > out.rsf m0=0 v0=1.5 t0=1.5 verb=0

This program receives a surface template and generates the output with the same dimensions. The param file is the parameters file generated with sfvfsacrsnh. The output is the non-hyperbolic CRS surface centered in (m0,t0) for a near surface model equal to v0. There is an example bellow of how to call this program in a SConstruct:

Flow('crsAppSurface',['dataReflectionSurface','crsParameters'],
        '''
        nhcrssurf param=${SOURCES[1]} m0=%g v0=%g t0=%g verb=y
        ''' % (m0,v0,t0))

For more details, please check out our usage examples.

⬆️ Back to top