next up previous print clean
Next: Data structures Up: Basic concepts Previous: Spraying mapping


 Ideally the user of the package would need only to define the characteristics of the particular operators he intends to test. The kind of characteristics depend on the complexity of the operator and on the type of spatial mapping that is optimal.

In the simple trace-to-trace mapping the operator is simply described by a transformation of the time axis. In the more general case, an integral operator is defined by a transformation of the time axis for each pair of input and output traces. The generic interface for the mapping function map_amp is:

function map_amp (want_info,inv_map,inv_amp,inp_geom,out_geom, &
      first_samp, last_samp, map, amp, inp_cent_coord) result (info)
type(genkir3d_info_type) :: info
logical, intent(in)      :: want_info,inv_map,inv_amp
type (seis3d_geom_type), intent(in) :: inp_geom
type (seis3d_geom_type), intent(in) :: out_geom
integer, dimension(:,:), intent(out) :: first_samp,last_samp
real,  dimension (:,:,:), intent(out)  :: map,amp,max_freq
real, pointer, dimension (:,:,:)  :: inp_cent_coord

For each pair of input and output traces, map_amp must compute the mapping function of the input time axis into the output time axis, (map) and by its corresponding amplitude term (amp). The lower and upper limit of the mapping are respectively described by the first_samp and last_samp arrays. To avoid aliasing artifacts the input traces can be filtered with a low-pass filter before being summed into the output space. The high-frequency cutoff of this low-pass filtering must also be computed by map_amp and stored in the max_freq array.

As discussed above, when the spraying spatial mapping is applied, the data are first sprayed into an intermediary output space. The array inp_cent_coord contains the coordinates of this intermediate output space. It is used by the map_amp function and it is initialized by the operator-domain definition function oper_domain.

The generic interface for the operator-domain function is:

function oper_domain (inv_map,inv_amp,inp_geom,out_geom, &
                      inp_cent_coord, out_coord) result (stat)

integer :: stat logical, intent(in) :: inv_map,inv_amp type (seis3d_geom_type), intent(in) :: inp_geom type (seis3d_geom_type), intent(inout) :: out_geom real, pointer, dimension (:,:,:) :: inp_cent_coord real, pointer, dimension (:,:,:) :: out_coord

The array inp_cent_coord must be filled with the coordinates of the spraying domain, in input-centered coordinate system. The coordinates of the spraying domain in the output-space coordinate system is stored in the out_geom data structure.


next up previous print clean
Next: Data structures Up: Basic concepts Previous: Spraying mapping
Stanford Exploration Project