📄 dispkrig3d.m
字号:
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 + -