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

📄 dispkrig3d.m

📁 Kriging插值matlab toolbox
💻 M
📖 第 1 页 / 共 2 页
字号:
    case 2
	  shading flat
    case 3
      shading interp
    end
  case 5   	%%%%%%%% 2D display  %%%%%%%%%%%%%%%%%%%%%
   pcolor(X,Y,DispVar);
   switch hdl.dispkrig3d.shading_index
   case 1
      shading faceted
   case 2
	  shading flat
   case 3
      shading interp
   end
   hold on
   if hdl.dispkrig3d.var_index  == 1   % kriged variable
 	  var=data.in.tv;
   else
 	  var=data.out.krig.err;
   end
   vcontour=auto_contour(var,para.dispkrig.num_of_contour,para.dispkrig.digits_of_contour);
%   cmap=colormap;
   if ~isempty(vcontour)
  		if isnan(vcontour) 
    		[c,H]=contour(X,Y,DispVar,'k');
  		else
    		[c,H]=contour(X,Y,DispVar,vcontour,'k');
  		end
  		hh=clabel(c,H);
   end
  case 6    %%%%%%%%% plot data on tracklines or values on ustomized grids
  % doing nothing
  otherwise
end

%% plot customized grid data
if para.krig.load_griddata_file == 1
   hold on
   cmap=colormap;
   ngd=length(data.out.krig.gx);
   if data.in.dim == 2                              % 2D grids
   %% plot color-coded values on the customized grids
      if hdl.dispkrig3d.var_index  == 1   % kriged variable
         data.out.krig.gv=griddata(X,Y,data.out.krig.Vg,data.out.krig.gx,data.out.krig.gy);
         var_gd=data.out.krig.gv;
      else											% kriging variance
         data.out.krig.ge=griddata(X,Y,data.out.krig.Eg,data.out.krig.gx,data.out.krig.gy);
         var_gd=data.out.krig.ge;
      end    
      if para.dispkrig.trackline.dispflag == 1
        cmap=colormap;
        markersize=para.dispkrig.markersize;
        Vmax=max(max(max(DispVar)));
        Vmin=min(min(min(DispVar)));
        clr_gd=min(max(floor(clr_max*(var_gd-Vmin)/(Vmax-Vmin)),0)+1,clr_max);
	    inc_gd=max(1,round(ngd/1600));
        ni=1;
 	    for i=1:inc_gd:ngd
   		  hdl.dispkrig3d.trackline.hxy(ni)=plot(data.out.krig.gx(i),data.out.krig.gy(i),'.','color',cmap(clr_gd(i),:),'markersize',para.dispkrig.customized_grid_data_markersize);
          ni=ni+1;
	    end   
      end
   else                                                 % 3D grids
   %% plot color-coded values on the customized grids
      if hdl.dispkrig3d.var_index  == 1   % kriged variable
         data.out.krig.gv=griddata(X,Y,Z,data.out.krig.Vg,data.out.krig.gx,data.out.krig.gy,data.out.krig.gy);
         var_gd=data.out.krig.gv;
      else											% kriging variance
         data.out.krig.ge=griddata(X,Y,Z,data.out.krig.Eg,data.out.krig.gx,data.out.krig.gy,data.out.krig.gy);
         var_gd=data.out.krig.ge;
      end    
      if para.dispkrig.trackline.dispflag == 1
        cmap=colormap;
        markersize=para.dispkrig.markersize;
        Vmax=max(max(max(DispVar)));
        Vmin=min(min(min(DispVar)));
        clr_gd=min(max(floor(clr_max*(var_gd-Vmin)/(Vmax-Vmin)),0)+1,clr_max);
	    inc_gd=max(1,round(ngd/1600));
        ni=1;
 	    for i=1:inc_gd:ngd
   		  hdl.dispkrig3d.trackline.hxy(ni)=plot3(data.out.krig.gx(i),data.out.krig.gy(i),data.out.krig.gy(i),'.','color',cmap(clr_gd(i),:),'markersize',para.dispkrig.customized_grid_data_markersize);
          ni=ni+1;
 	    end   
      end
   end
end

% Plot track line
if para.dispkrig.trackline.dispflag == 1
  if isfield(hdl.dispkrig3d.trackline,'hxy') & ~isempty(hdl.dispkrig3d.trackline.hxy)
      if ishandle(hdl.dispkrig3d.trackline.hxy)
         delete(hdl.dispkrig3d.trackline.hxy);
      end
      hdl.dispkrig3d.trackline.hxy=[];
  end
  if isfield(hdl.dispkrig3d.trackline,'htxt')& ~isempty(hdl.dispkrig3d.trackline.htxt)
      if  ~isempty(find(ishandle(hdl.dispkrig3d.trackline.htxt) ==1))
         delete(hdl.dispkrig3d.trackline.htxt);
      end
      hdl.dispkrig3d.trackline.htxt=[];
  end

    hold on
    cmap=colormap;
    markersize=para.dispkrig.markersize;
    Vmax=max(max(max(DispVar)));
    Vmin=min(min(min(DispVar)));
    if hdl.dispkrig3d.var_index  == 1   % kriged variable
 	   var=data.in.tv;
	   clr=min(max(floor(clr_max*(var-Vmin)/(Vmax-Vmin)),0)+1,clr_max);
	   TrackLineType=para.dispkrig.trackline.type_indx;
 	   TrackLineColor=para.dispkrig.trackline.line_color;
    else								   % kriging variance
 	   var=data.out.krig.err;
	   TrackLineType=2;
       TrackLineColor=1;
    end
	n=length(data.in.x0);
	inc=max(1,round(n/1600));
	track_color='ymcrgbwk';
	clr_indx=TrackLineColor+6;
    if data.in.dim == 2                         % 2D track-line
	  switch TrackLineType 
		case 1			% color-coded tracklines
            ni=1;
 			for i=1:inc:n
   			   hdl.dispkrig3d.trackline.hxy(ni)=plot(data.in.x0(i),data.in.y0(i),'.','color',cmap(clr(i),:),'markersize',markersize);
               ni=ni+1;
 			end
   	    case 2		% black/white tracklines
  			if n >= 100000
    			hdl.dispkrig3d.trackline.hxy=plot(data.in.x0,data.in.y0,['-' track_color(clr_indx)],'linewidth',2.5);
  			else
    			hdl.dispkrig3d.trackline.hxy=plot(data.in.x0,data.in.y0,['.' track_color(clr_indx)],'markersize',markersize);
  			end
		case 3		% attribute values
  			hdl.dispkrig3d.trackline.hxy=plot(data.in.x0,data.in.y0,['.' track_color(clr_indx)],'markersize',markersize);
  			hdl.dispkrig3d.trackline.htxt=text(data.in.x0,data.in.y0,num2str(var));
  			set(hdl.dispkrig3d.trackline.htxt,'fontsize',para.dispkrig.trackline.size_indx,'color',track_color(para.dispkrig.trackline.color_indx));
		case 4		% difference between observed and kriged attribute values 
            Is=griddata(X,Y,DispVar,data.in.x0,data.in.y0);
  			hdl.dispkrig3d.trackline.hxy=plot(data.in.x0,data.in.y0,['.' track_color(clr_indx)],'markersize',markersize);
  			hdl.dispkrig3d.trackline.htxt=text(data.in.x0,data.in.y0,num2str(var-Is));
  			set(hdl.dispkrig3d.trackline.htxt,'fontsize',para.dispkrig.trackline.size_indx,'color',track_color(para.dispkrig.trackline.color_indx));
	    end
    else                                         % 3D track-line
	  switch TrackLineType 
		case 1			% color-coded tracklines
            ni=1;
 			for i=1:inc:n
   			   hdl.dispkrig3d.trackline.hxy(ni)=plot3(data.in.x0(i),data.in.y0(i),data.in.z0(i),'.','color',cmap(clr(i),:),'markersize',markersize);
               ni=ni+1;
 			end
   	    case 2		% black/white tracklines
  			if n >= 100000
    			hdl.dispkrig3d.trackline.hxy=plot3(data.in.x0,data.in.y0,data.in.z0,['-' track_color(clr_indx)],'linewidth',2.5);
  			else
    			hdl.dispkrig3d.trackline.hxy=plot3(data.in.x0,data.in.y0,data.in.z0,['.' track_color(clr_indx)],'markersize',markersize);
  			end
		case 3		% attribute values
            message(1,'Not an valid option !!')
		case 4		% difference between observed and kriged attribute values 
            message(1,'Not an valid option !!')
      end   
   end  
else
  if isfield(hdl.dispkrig3d.trackline,'hxy') & ~isempty(hdl.dispkrig3d.trackline.hxy)
      delete(hdl.dispkrig3d.trackline.hxy);
      hdl.dispkrig3d.trackline.hxy=[];
  end
  if isfield(hdl.dispkrig3d.trackline,'htxt') & ~isempty(hdl.dispkrig3d.trackline.htxt)
      delete(hdl.dispkrig3d.trackline.htxt);
      hdl.dispkrig3d.trackline.htxt=[];
  end
end                 % end of displsy_trackline

if dir_index ~= 4 & dir_index ~= 6
	if para.dataprep.var1_indx <= 2 | para.dataprep.var2_indx <= 2	% either x or y is Lat or Long
     ntick=4;
     [xinc,xdits,yinc,ydits]=get_ninc(hdl.dispkrig3d.axes1,ntick);
	  if para.dataprep.var1_indx <= 2
       mapax(xinc,xdits,yinc,ydits,hdl.dispkrig3d.axes1,1);		% x-axis label
	  end
	  if para.dataprep.var2_indx <= 2
       mapax(xinc,xdits,yinc,ydits,hdl.dispkrig3d.axes1,2);		% y-axis label
	  end
	end
end

if get(hdl.dispkrig3d.xdir_reverse,'value') == 1
   set(hdl.dispkrig3d.axes1,'xdir','reverse');
end
if get(hdl.dispkrig3d.ydir_reverse,'value') == 1
   set(hdl.dispkrig3d.axes1,'ydir','reverse');
end
if data.in.dim == 3
 if get(hdl.dispkrig3d.zdir_reverse,'value') == 1
     set(hdl.dispkrig3d.axes1,'zdir','reverse');
 end
end

%%% color bar and color scale
if isfield(hdl.dispkrig3d,'colorbar') & ishandle(hdl.dispkrig3d.colorbar) 
    delete(hdl.dispkrig3d.colorbar);
end
hdl.dispkrig3d.colorbar=colorbar;
set(hdl.dispkrig3d.colorbar,'Position',[0.85 0.4 0.045 0.5],'Tag','colorbar1');

xlabelstr=para.dataprep.xlabel;
ylabelstr=para.dataprep.ylabel;
hx=xlabel(xlabelstr);
hy=ylabel(ylabelstr);


if data.in.dim == 3
	zlabelstr=para.dataprep.zlabel;
	hz=zlabel(zlabelstr);
	set([hx hy hz],'fontsize',12,'fontweight','bold')
	set(hx,'Rotation',16);
    set(hy,'Rotation',-27);
else
	set([hx hy],'fontsize',12,'fontweight','bold')
end

hcs=text(hori_clrbar,1.1,'Color Scale','sc');
set(hcs,'fontsize',10,'fontweight','bold');

if 0
switch hdl.dispkrig3d.shading_index
 case 1
   shading faceted
 case 2
	shading flat
 case 3
   shading interp
end
end

drawnow
hold off
if rotation_checked_flag == 1
    view(hdl.dispkrig3d.view_AZ,hdl.dispkrig3d.view_EL);
end

⌨️ 快捷键说明

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