Seismic processing flows are described in ASCII files formatted as spreadsheets. 10 parameters per line (including key words, module and list names) are allowed. The parameters are separated by tabs, but equivalent number of spaces (usually 8) can be used, although not recommended. Formats of the parameters and their semantics can be obtained from the on-line documentation.
All module parameters are arranged in "lists". The "global" list immediately follows the name of the module; other lists have names appearing in the first field of the corresponding line of the job description file. Each list may be followed by an arbitrary number of "repeat" groups of parameters.
All key words begin with an asterisk '*'. The key words defined at present are:
**,# |
|
*call, *run | Includes a module into the processing flow. |
*define, *undef | Preprocessor directives: symbolic substitutions. |
*info | Calls module info displaying the self-documentation of the job. |
*incl | Directive to include another file into the job description. |
*job | In the present version, does nothing. In future, will load the appropriate suite of databases (project, area, line, user) associated with the current task |
*flush | Tempoararyly forces EOF phase causing flushing of all the traces that have been accumulated up to this point |
*end | Consumes all the traces. This allows to string several trace processing flows in one job (for example, in order to utilize joint modifications of the database tables) |
*info | Prints a message during execution (optionally including time or curent values of parameters) |
*loop, *back | Arrange a loop in the processing flow (that is, actually send the traces along a loop!) |
*repeat, *endrep | Repeat a group of traces or ensembles |
*if, *elseif, *endif | Conditional trace handling |
*start, *close | Perform UNIX operations before Process Phase and after EOF Phase, respectively |
*nocall, *comm | Deactivates the module. Module used with a *nocall key word is not called neither in Edit, nor in Process phase, but its parameters may be still present on the job. |
An example of a processing flow description used in our polarization filtering of 1992 Kola VSP records is presented below.
*info This job reads syncronously two files with X,Z components and performs P/SV wave separation ########################################################## # first define plot file names and some constants ################################################# *define psfile FIGURES/VSP/psv.ps # output PostScript file *define lastdp 6000 # last depth level to read in and process *define lfz 4700 # end of the first window *call dskrd # synchronous input of data from two files range depth lastdp /transient3/morozov/k2-rotated-1.sia synchro depth normal chan normal *call dskrd range depth lastdp /transient3/morozov/k2-rotated-2.sia synchro depth normal chan normal *call filter # trapezoidal band-pass filter polygon general 10 0 20 1 50 1 70 0 *call hdrmath # assign the velocities within the depth windows set vp float 6.6 condset depth lfz vp float 5.9 set vs float .57735 vp *call psvfilt 201 depth chan 1 2 # P/SV polarization filter scheme direct vsp .15 break depth lfz pad 20 vel vp vs output 11 12 # P and SV components are stored as chan 11 and 12 *if # write two of the filtered gathers into two files and plot list chan 11 12 *call write # module write can write traces selectively select chan 1 1 /transient3/morozov/k2-psvfilt-11.sia VSP 2, P-wave component (chan 11) # ASCII file header select chan 12 12 /transient3/morozov/k2-psvfilt-12.sia VSP 2, SV-wave component (chan 12) # ASCII file header *call sort # sort before plotting major chan minor depth *incl plot-xyz-2.inc # include file containing plotting commands # (not shown here) *endif # end of *if statement