Joint recovery method: examples and results
Author: Haneet Wason (hwason@eos.ubc.ca)
Date: June, 2014
Contents
% Set paths curdir = pwd; basedir = curdir(1:end-4); datadir = [basedir '/data/TimeJitteredMarineAcq']; resultsdir = [basedir '/results/TimeJitteredMarineAcq_OneReceiverGather']; % Load previously computed results load([resultsdir '/JRM_TimeJitAcq_1boat_params.mat']) % Plotting parameters caxdata = 0.5; cax4Dsignal = 0.05; cmap = 'gray'; % x-axis label for receiver gathers xlab = 'Source position (m)'; xpos = 0 : ds : (ns-1)*ds; x = 1:ns; axis_gather = 0 : 250 : 1000; for k = 1:length(axis_gather); xtick(k) = x(xpos == axis_gather(k)); end xticklabel = axis_gather; % y-axis label for receiver gathers ylab = 'Time (s)'; ytick = 125:125:nt; yticklabel = ytick*dt;
Conventional vs. jittered (blended) acquisition
% Conventional acquisition flipflop = 'yes'; tfireint_min = 10.0; boatspeed_conv = ds/tfireint_min; fig = 'yes'; convacq_2arrays(flipflop, tfireint_min, ns, dt, boatspeed_conv, fig, []); % Time-jittered acquisition for baseline and monitor surveys jitter_airgunarrays4D(ns, ds, dt, rndfactor, p, rseed, boatspeed, tfireint_min, tdelay, delayboat, fig, []);



Original data (common receiver gather)
% Load data load('../data/TimeJitteredMarineAcq/data_4D.mat'); D_base = D1; D_mon = D2; clear D1 D2 % Select a subset subset = ind_start : (ind_start + ns - 1); D1 = squeeze(D_base(:,subset,subset)); D2 = squeeze(D_mon(:,subset,subset)); % Select a receiver gather (from the subset) D1 = squeeze(D1(:,recv_ind,:)); D2 = squeeze(D2(:,recv_ind,:)); clear D_base D_mon % Original 4D signal signal_4D = D1 - D2; % Baseline figure; imagesc(D1, [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('True baseline'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % Monitor figure; imagesc(D2, [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('True monitor'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % 4-D signal figure; imagesc(signal_4D, [-1 1]*cax4Dsignal); colormap(cmap); xlabel(xlab); ylabel(ylab); title('True 4-D signal'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel)



Apply the adjoint of the sampling operator to blended data
% Baseline figure; imagesc(real(rsf_read_all([resultsdir '/' fname_base_adjrecov])), [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('Baseline'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % Monitor figure; imagesc(real(rsf_read_all([resultsdir '/' fname_mon_adjrecov])), [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('Monitor'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % 4-D signal figure; imagesc(real(rsf_read_all([resultsdir '/' fname_4Dsignal_adjrecov])), [-1 1]*cax4Dsignal); colormap(cmap); xlabel(xlab); ylabel(ylab); title('4-D signal'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel)



Recovered data
% Baseline figure; imagesc(real(rsf_read_all([resultsdir '/' fname_base_L1recov])), [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('Baseline'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % Monitor figure; imagesc(real(rsf_read_all([resultsdir '/' fname_mon_L1recov])), [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('Monitor'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % 4-D signal figure; imagesc(real(rsf_read_all([resultsdir '/' fname_4Dsignal_L1recov])), [-1 1]*cax4Dsignal); colormap(cmap); xlabel(xlab); ylabel(ylab); title('4-D signal'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel)



Residual : Original - Recovered
% Baseline figure; imagesc(real(rsf_read_all([resultsdir '/' fname_base_L1diff])), [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('Baseline'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % Monitor figure; imagesc(real(rsf_read_all([resultsdir '/' fname_mon_L1diff])), [-1 1]*caxdata); colormap(cmap); xlabel(xlab); ylabel(ylab); title('Monitor'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel) % 4-D signal figure; imagesc(real(rsf_read_all([resultsdir '/' fname_4Dsignal_L1diff])), [-1 1]*cax4Dsignal); colormap(cmap); xlabel(xlab); ylabel(ylab); title('4-D signal'); set(gca, 'plotboxaspectratio', [1.5 2 1.5], 'Xtick', xtick, 'XTickLabel', xticklabel, 'Ytick', ytick, 'YTickLabel', yticklabel)


