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:
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
function oper_domain (inv_map,inv_amp,inp_geom,out_geom, &
inp_cent_coord, out_coord) result (stat)
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.