⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shotsubsynt.m

📁 基于matlab的反演程序,用于地球物理勘探中射线追踪及偏移成像程序.
💻 M
字号:

% Subtract traveltimes of shot i from j
% i, j = shot numbers
% shotcoord = shot location vector
% fbcoord = receiver location matrix (shot, rec)
% fbtime = fb pick matrix (shot, rec)
% step = interpolation interval 
function [startx, endx, tdiff1, tdiff2,start1index, start2index,i,j] = shotsubsynt(i,j,shotcoord,fbcoord,fbtime)

%traveltime difference between adjacent shot records;
if shotcoord(i)>shotcoord(j)
  k=i;
  l=j;
  j=k;
  i=l;
end

% validxi = 1-isnan(fbcoord(i,:));
% validxj = 1-isnan(fbcoord(j,:));

validxi = find(~isnan(fbcoord(i,:)));
validxj = find(~isnan(fbcoord(j,:)));

[startp1x startp1xi] = min(fbcoord(i,validxi));
[startp2x startp2xi] = min(fbcoord(j,validxj));
startx = max(startp1x, startp2x);
if( startx == startp1x )
   start1index = find(fbcoord(i,:) == startx);
else
   start1index = find(fbcoord(j,:) == startx);
end

jsubpoints1 = find(fbcoord(j,validxj)<shotcoord(i) & fbcoord(j,validxj)>=startx);
isubpoints1 = find(fbcoord(i,validxi)<shotcoord(i) & fbcoord(i,validxi)>=startx);

% Now, work forwards from the beginning of the first section to find
% the index of the end of the first section.
[maxs1x end1index] = max(fbcoord(j,jsubpoints1));
end1index = find(fbcoord(j,:) == maxs1x);

tdiff1 = fbtime(j,jsubpoints1) - fbtime(i,isubpoints1);


[endp1x endp1xi] = max(fbcoord(i,validxi));
[endp2x endp2xi] = max(fbcoord(j,validxj));
endx = min(endp1x, endp2x);
if( endx == endp1x )
   end2index = find(fbcoord(i,:)==endp1xi);
else
   end2index = find(fbcoord(j,:)==endp2xi);
end


jsubpoints2 = find(fbcoord(j,validxj)>shotcoord(j) & fbcoord(j,validxj)<=endx);
isubpoints2 = find(fbcoord(i,validxi)>shotcoord(j) & fbcoord(i,validxi)<=endx);

% Now, work backwards from the end of the second section to find
% the index of the beginning of the second section.
[mins2x start2index] = min(fbcoord(j,jsubpoints2));
start2index = find(fbcoord(j,:) == mins2x);

tdiff2 = fbtime(i,isubpoints) - fbtime(j,jsubpoints);




% Old stock

%xloc=startx:step:endx;
%p1=interp1(fbcoord(i,:),fbtime(i,:),xloc,'linear');
%p2=interp1(fbcoord(j,:),fbtime(j,:),xloc,'linear');

%tdiff2=fbtime(j,startx:endx)-fbtime(i,startx:endx);
%tdiff2=p2-p1;
%start2 = startx;
%end2 = endx;


%step=1;
%xloc=startx:step:endx;
%p1=interp1(fbcoord(i,:),fbtime(i,:),xloc,'linear');
%p2=interp1(fbcoord(j,:),fbtime(j,:),xloc,'linear');

%tdiff1=fbtime(i,startx:endx)-fbtime(j,startx:endx);
%tdiff1=p1-p2;
%start1 = startx;
%end1 = endx;
%endx = shotcoord(j);
%startx = shotcoord(i);



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -