Seismic Monitor Operation

Seismic job is a description of a sequence of operations applied to the seismic data flowing through a sequence of tools, called "modules" in this text. This sequence is described using a special programming language illustrated in the SIA User Reference. Program sia_launch reads the job file only superficially, identifying the module calls and linking the executable, which consists of the seismic monitor and the requested modules and library functions/methods. The resulting executable is then started and performs three passes through the module sequence, called here "Edit phase", "Process phase", and "Closing phase".

"Phases"

During the Edit phase, the monitor invokes all Edit phase subroutines in the sequence the modules are called in the job. Each of these subroutines performs the operations necessary for initialization, parameter input and checking, outputs error, warning, and information messages. After the Edit phase of the last module is completed, the monitor checks the resulting error status. If no errors have been detected, it starts the Process phase, i.e., actual processing of the data. Some of the modules participate only in the Edit phase. 

During the Process Phase, the seismic processing flow is supposed to process seismic traces. The number and the sequence of the calls of the modules are rather irregular and are determined by the current processing situation, as described below. Depending on this processing situation, the monitor may sometimes terminate the job before the regular data flow is exhausted.

After the input of data traces to a module is exhausted, the monitor calls this module in what is called the EOF (end-of-file) Phase. A typical example of such operation is input of records from a a data file. This type of call will be repeated until the module "fails" to produce some kind of "output" (see below).  EOF Phase is considered a special case of the Process Phase; it is handled by the same subroutine in module implementation.  At any moment during the Process Phase, exactly one (the first active) module operates in EOF Phase. 

After the Process Phase is completed, in order to give the modules a chance to perform file closing, to output diagnostics, summaries, etc., the monitor calls each of them in a successive order in the Closing phase.

Data Flow

The data flow supported by the monitor during the Process phase is schematically shown in Figure 1. The monitor creates a data structure called PROJECT representing the entire data flow shown in this Figure. After that, the monitor calls the modules' Process phase subroutines starting from the last one in the sequence and progressing backwards. If a module reports that it "had output something", then the sequence is restarted from the last module again. Processing terminates when neither of the modules produces any output. This scheme, along with its simplicity, offers a number of important advantages:

Module calls

The sequence of module calls resembles the back-propagation inference technique similar to that of PROLOG. The Process phase functions return only two possible values: OK or FAIL (these boolean values are also defined as TRUE and FALSE, respectively). The purpose of the activities of the seismic monitor is to produce an output in the final ensemble sequence. Trying to produce this output, the monitor calls all modules successively, starting from the last one in the sequence, until one of the modules produces an output, i.e., returns OK. In such a case, the monitor starts the sequence of calls again from the end, and repeats the procedure until all modules fail. 

Back-propagating sequences of module calls do not always span the entire sequence of modules. It terminates at the module which is currently in the so-called EOF (end-of-file) state. EOF module is the module currently serving as an input module. After the entire sequence of calls fails, the EOF flag is moved to the next EOF module, toward the end of the sequence; and thus the processing sequence becomes shorter. When the EOF flag reaches the end of the sequence, the job terminates.