Fast Robust Waveform inversion: Examples and results

Scripts to reproduce the famous Camembert example, as well as results from several papers are included. Updated to conform to the new software design outlined in [4].

Contents

Camembert example

The basic functionality of the waveform inversion code is demonstrated on an example based on the famous `Camembert' model [1]. See the script camembert.m.

% true model
[v,n,d,o] = rsf_read_all([resultsdir '/camembert/vtrue.rsf']);

v  = 1e-3*v;
[z,x] = odn2grid(o,d,n);
z = z*1e-3; x = x*1e-3;

figure;imagesc(x,z,v,[2.25 2.75]);colorbar;
xlabel('x [km]');ylabel('z [km]'); title('true model');
% reconstructions
vnr = rsf_read_all([resultsdir '/camembert/vn_r.rsf']);
vnt = rsf_read_all([resultsdir '/camembert/vn_t.rsf']);
vnr = 1e-3*vnr;
vnt = 1e-3*vnt;

figure;imagesc(x,z,vnr,[2.25 2.75]);colorbar;
xlabel('x [km]');ylabel('z [km]'); title('reconstruction form reflection data');

figure;imagesc(x,z,vnt,[2.25 2.75]);colorbar;
xlabel('x [km]');ylabel('z [km]'); title('reconstruction form tranmission data');

Fast Waveform inversion without source-encoding

Waveform inversion using stochastic optimization with bound constraints. See the script bg2_batch.m.

[v,n,d,o] = rsf_read_all([datadir '/bg2v.rsf']);
[v0,n,d,o] = rsf_read_all([datadir '/bg2v0.rsf']);

v  = 1e-3*v;
v0 = 1e-3*v0;
[z,x] = odn2grid(o,d,n);
z = z*1e-3; x = x*1e-3;
scnsize = get(0,'ScreenSize');

% The true and initial model
%

figure('Position',scnsize./[1 1 2 2]);imagesc(x,z,v,[1.5 4.5]);colorbar;set(gca,'plotboxaspectratio',[3 1 1]);
xlabel('x [km]');ylabel('z [km]'); title('true model');
figure('Position',scnsize./[1 1 2 2]);imagesc(x,z,v0,[1.5 4.5]);colorbar;set(gca,'plotboxaspectratio',[3 1 1]);
xlabel('x [km]');ylabel('z [km]'); title('initial model');

reconstruction with batching after 17th. frequency band.

[mn,n,d,o] = rsf_read_all([resultsdir '/bg2_batch/mn_17.rsf']);
vn = real(1./sqrt(mn));

figure('Position',scnsize./[1 1 2 2]);imagesc(x,z,vn,[1.5 4.5]);colorbar;set(gca,'plotboxaspectratio',[3 1 1]);
xlabel('x [km]');ylabel('z [km]'); title('final model');
xslices = [3 8 13];
for i=1:length(xslices)
    ix = x==xslices(i);
    figure;plot(v(:,ix),z,'k',v0(:,ix),z,'k--',vn(:,ix),z,'r');axis ij; ylim([0 2]);set(gca,'plotboxaspectratio',[1 1.5 1]);
    xlabel('v [km/s]');ylabel('z [km/s]');title(['x = ' num2str(xslices(i)) ' km']);legend('true','initial','final');
end

Robust waveform inversion with source estimation

Robust waveform inversion with robust source estimation [3].

[v, n,d,o] = rsf_read_all([datadir 'marmv.rsf']);
[v0,n,d,o] = rsf_read_all([datadir 'marmv0.rsf']);

[z,x] = odn2grid(o,d,n);

m  = 1e6./v.^2;
m0 = 1e6./v0.^2;

figure;imagesc(x,z,m-m0,[-1 1]*5e-2);axis equal tight;colormap(gray);
xlabel('x [km]');ylabel('z [km]'); title('true perturbation');

A LS-LS reconstruction without outliers looks like this. See mbase.m.

[mbase] = rsf_read_all([resultsdir '/mbase/mn.rsf']);

figure;imagesc(x,z,mbase-m0,[-1 1]*5e-2);axis equal tight;colormap(gray);
xlabel('x [km]');ylabel('z [km]'); title('LS-LS reconstruction w/o noise');

Reconstructions with outliers using LS-LS, or ST-ST, see mlsls.m and mstst.m.

[mlsls] = rsf_read_all([resultsdir '/mlsls/mn.rsf']);
[mstst] = rsf_read_all([resultsdir '/mstst/mn.rsf']);


figure;imagesc(x,z,mlsls-m0,[-1 1]*5e-2);axis equal tight;colormap(gray);
xlabel('x [km]');ylabel('z [km]'); title('LS-LS reconstruction w noise');

figure;imagesc(x,z,mstst-m0,[-1 1]*5e-2);axis equal tight;colormap(gray);
xlabel('x [km]');ylabel('z [km]'); title('ST-ST reconstruction w noise');

References

[1] O. Gauthier, J. Virieux, and A. Tarantola. Two-dimensional nonlinear inversion of seismic waveforms: Numerical results. Geophysics 51, 1387-1403 (1986)

[2] T. van Leeuwen and F.J. Herrmann - Fast Waveform inversion without source-encoding, Geophysical Prospecting, submitted

[3] A.Y. Aravkin, T. van Leeuwen and F.J. Herrmann - Source estimation for frequency-domain FWI with robust penalties, EAGE Expanded abstracts 2012.

[4] C. Da Silva, F.J. Herrmann - A unified 2D/3D software environment for large scale time-harmonic full waveform inversion.

Acknowledgements

The synthetic Compass model was provided by the BG-GROUP, see also the disclaimer.