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

📄 plotvariogram2d3d.m

📁 Kriging插值matlab toolbox
💻 M
字号:
function 	plotvariogram2d3d(opt)
% function 	plotvariogram2d3d(opt) displays the 2D/3D semi-variogram/correlogram
% opt = 1	:   initial or re-plot with a new set of variogram/correlogram
%     = 2   :   replot selected variogram in azimuth (3D)
%     = 3   :   replot selected variogram in elevation  (3D)
%     = 4   :   adjust color scale display
%%
%%  Kriging Software Package  version 3.0,   May 1, 2004
%%  Copyright (c) 1999, 2001, 2004, property of Dezhang Chu and Woods Hole Oceanographic
%%  Institution.  All Rights Reserved.

global para hdl data color


if opt == 1 
  plotvariogram2d3dfig;
end
   
switch opt		
case 1
   if para.vario.dim == 2
      n=data.out.vario.nlag2d3d;								% number of lags at each direction
      m=max(para.vario.nazm,para.vario.ndip);		% number of directions
	  vario_corr=reshape(data.out.vario.gammah2d3d,n,m);
	  x=reshape(data.out.vario.xx,n,m);
      y=reshape(data.out.vario.yy,n,m);
   else
      n=data.out.vario.nlag2d3d;								% number of lags at each direction
      m=para.vario.nazm;										% number of directions in azimuth
      l=para.vario.ndip;
      nidip=round(l/2);
      indx=n*m*(nidip-1)+1:n*m*nidip;
   	  vario_corr=reshape(data.out.vario.gammah2d3d(indx),n,m);
	  x=reshape(data.out.vario.xx(indx),n,m);
      y=reshape(data.out.vario.yy(indx),n,m);
      set(hdl.dispvario2d3d.azm_val,'string','0-360 deg');
      mean_dip_ang=(para.vario.dip_beg+para.vario.dip_end)/2;
      set(hdl.dispvario2d3d.dip_slider,'value',0.5)
      set(hdl.dispvario2d3d.azm_slider,'value',0)
      set(hdl.dispvario2d3d.dip_val,'string',[num2str(mean_dip_ang)  '  deg'])
      set(hdl.dispvario2d3d.azm_val,'enable','off')
      set(hdl.dispvario2d3d.azm_slider,'enable','on')
   end
   xmax=max(max(x));
   ymax=max(max(y));      
   xx=x;
   yy=-y;
	if get(hdl.vario.variogram,'Value') == 1
      hdl.dispvario2d3d.axes1=pcolor(y,x,vario_corr);
      hold on
      hdl.dispvario2d3d.axes1=pcolor(yy,xx,vario_corr);
      hold off
	else
		hdl.dispvario2d3d.axes1=pcolor(y,x,1-vario_corr);
      hold on
      hdl.dispvario2d3d.axes1=pcolor(yy,xx,1-vario_corr);
      hold off
   end
   if get(hdl.dispvario2d3d.shading_radio1,'value') == 1
      shading faceted;
   elseif get(hdl.dispvario2d3d.shading_radio2,'value') == 1
      shading flat;
   elseif get(hdl.dispvario2d3d.shading_radio3,'value') == 1
      shading interp;
   end        
   hdl.dispvario2d3d.htxt2d(1)=text(xmax*1.15,0,'0^o');
   hdl.dispvario2d3d.htxt2d(2)=text(0,ymax*1.15,'90^o');
	hdl.dispvario2d3d.htxt2d(3)=text(-xmax*1.4,0,'180^o');
   hdl.dispvario2d3d.htxt2d(4)=text(0,-ymax*1.15,'270^o');
   set(hdl.dispvario2d3d.htxt2d(1:4),'fontweight','bold','fontsize',12);   
   axis(1.1*[-xmax xmax -ymax ymax])
case 2								% adjust azm angle
   n=data.out.vario.nlag2d3d;								% number of lags at each direction
   m=para.vario.nazm;										% number of directions in azimuth
   l=para.vario.ndip;										% number of directions in dip
   rate=(para.vario.azm_end-para.vario.azm_beg);
   azm_ang=get(hdl.dispvario2d3d.azm_slider,'value')*rate+para.vario.azm_beg;
   niazm=min(floor(round(get(hdl.dispvario2d3d.azm_slider,'value')*m)+1),m);
   set(hdl.dispvario2d3d.azm_val,'string',num2str(azm_ang))
   indx=(niazm-1)*n+1:n*niazm;
   for i=2:l
      indx1=n*m*(i-1)+(niazm-1)*n+1;
      indx=[indx indx1:indx1+n-1];
   end 
   vario_corr=reshape(data.out.vario.gammah2d3d(indx),n,l);
   range=linspace(0,para.vario.range,n);
	dip_ang=linspace(para.vario.dip_beg,para.vario.dip_end,l);  
	x=range(:)*cos(dip_ang*pi/180);
   z=-range(:)*sin(dip_ang*pi/180);
   xmax=max(max(abs(x)));
   zmax=max(max(abs(z)));      
	if get(hdl.vario.variogram,'Value') == 1
      hdl.dispvario2d3d.axes1=pcolor(x,z,vario_corr);
	else
		hdl.dispvario2d3d.axes1=pcolor(x,z,1-vario_corr);
   end
   if get(hdl.dispvario2d3d.shading_radio1,'value') == 1
      shading faceted;
   elseif get(hdl.dispvario2d3d.shading_radio2,'value') == 1
      shading flat;
   elseif get(hdl.dispvario2d3d.shading_radio3,'value') == 1
      shading interp;
   end        
   hdl.dispvario2d3d.htxt2d(1)=text(xmax*1.15,0,'0^o');
   hdl.dispvario2d3d.htxt2d(2)=text(0,zmax*1.15,'-90^o');
  	hdl.dispvario2d3d.htxt2d(3)=text(0,-zmax*1.15,'90^o');
   set(hdl.dispvario2d3d.htxt2d(1:3),'fontweight','bold','fontsize',12);   
   axis(1.1*[-xmax xmax -zmax zmax])
case 3															% adjust dip angle
   n=data.out.vario.nlag2d3d;								% number of lags at each direction
   m=para.vario.nazm;										% number of directions in azimuth
   l=para.vario.ndip;										% number of directions in dip
   rate=(para.vario.dip_end-para.vario.dip_beg);
   dip_ang=get(hdl.dispvario2d3d.dip_slider,'value')*rate+para.vario.dip_beg;
   nidip=min(floor(round(get(hdl.dispvario2d3d.dip_slider,'value')*l)+1),l);
   set(hdl.dispvario2d3d.dip_val,'string',num2str(dip_ang))
   indx=n*m*(nidip-1)+1:n*m*nidip;
   vario_corr=reshape(data.out.vario.gammah2d3d(indx),n,m);
   range=linspace(0,para.vario.range,n);
   azm_ang=linspace(para.vario.azm_beg,para.vario.azm_end,m);  
   x=range(:)*cos(azm_ang*pi/180);
   y=range(:)*sin(azm_ang*pi/180);
   xx=x;
   yy=-y;
   xmax=max(max(x));
   ymax=max(max(y));      
	if get(hdl.vario.variogram,'Value') == 1
      hdl.dispvario2d3d.axes1=pcolor(y,x,vario_corr);
      hold on
      hdl.dispvario2d3d.axes1=pcolor(yy,xx,vario_corr);
      hold off
	else
		hdl.dispvario2d3d.axes1=pcolor(y,x,1-vario_corr);
      hold on
      hdl.dispvario2d3d.axes1=pcolor(yy,xx,1-vario_corr);
      hold off
   end
   if get(hdl.dispvario2d3d.shading_radio1,'value') == 1
      shading faceted;
   elseif get(hdl.dispvario2d3d.shading_radio2,'value') == 1
      shading flat;
   elseif get(hdl.dispvario2d3d.shading_radio3,'value') == 1
      shading interp;
   end        
   hdl.dispvario2d3d.htxt2d(1)=text(xmax*1.15,0,'0^o');
   hdl.dispvario2d3d.htxt2d(2)=text(0,ymax*1.15,'90^o');
	hdl.dispvario2d3d.htxt2d(3)=text(-xmax*1.4,0,'180^o');
  	hdl.dispvario2d3d.htxt2d(4)=text(0,-ymax*1.15,'270^o');
   set(hdl.dispvario2d3d.htxt2d,'fontweight','bold','fontsize',12);   
   axis(1.1*[-xmax xmax -ymax ymax])
case 4
   DispVar=max(get(hdl.dispvario2d3d.axes1,'Ydata'));
   var1=get(hdl.dispvario2d3d.cbar_slider_bot,'value');  
   var2=get(hdl.dispvario2d3d.cbar_slider_top,'value');  
   max_var=max(max(max(DispVar)));
   min_var=min(min(min(DispVar)));
   step=(max_var-min_var)/100;
   disp_var1=min_var+(max_var-min_var)*var1;
   disp_var2=max_var-(max_var-min_var)*(1-var2);
   caxis([disp_var1 disp_var2]);
end

axis off
axis square
hdl.dispvario2d3d.colorbar2=colorbar;
set(hdl.dispvario2d3d.colorbar2,'Position',[0.85 0.4 0.045 0.5]);
%set(hdl.dispvario2d3d.colorbar2,'visible','off');
%set(get(hdl.dispvario2d3d.colorbar2,'children'),'visible','off');

⌨️ 快捷键说明

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