www.gusucode.com > EasyKrig_V3.0工具箱matlab源码程序 > EasyKrig_V3.0/dataprep/dataprep3d.m
%% Load data file and specify necessary specification % function dataprep3d(status) % status = 1 load input file % = 2 do not load input file % = 3 do not load input file, just perform date transformation %% %% 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. function dataprep3d(status) global data hdl para clr_max=length(colormap); if status > 1 & isempty(data) message(1,'Data have not been loaded yet !!!'); return end if status == 1 %%%%%%%%%%%%%%%%%%%%%%%% load data into memory %%%%%%%%%%%%%%%%%% loaddatfile(1); % load data file from data preparation window end if status <= 2 %%%%%%%% delete nans, filtering and data reduction %%%%%%%%% datachk(1); % call from dataprep window end %% Data Transformation data.in.tvar=datatransform(1,data.in.var); % forward transformation on the original data data.in.tv=datatransform(1,data.in.v); % forward transformation on the normalized data %%%%%%%%%%%%%%%%% plot the data %%%%%%%%%%%%%%%%% if para.dataprep.data_disptype == 1 if para.dataprep.data_disptype0 == 1 hv1=hdl.dataprep.axes1; elseif para.dataprep.data_disptype0 == 2 hv1=hdl.dataprep.axes2; end delete(hdl.dataprep.axes1_clrbar); para.dataprep.data_disptype0=1; % historical setting hld2i=get(hv1,'children'); for i=1:length(hld2i) delete(hld2i(i)) end set(hv1,'xticklabel','','xtick',[]) set(hv1,'yticklabel','','ytick',[]) set(hv1,'yticklabel','','xticklabel',''); set(get(hv1,'xlabel'),'string',''); set(get(hv1,'ylabel'),'string',''); if data.in.dim == 3 set(hv1,'zticklabel',''); set(get(hv1,'zlabel'),'string',''); end delete(hv1); hdl.dataprep.axes1 = axes('Parent',hdl.dataprep.h0, 'Color',[1 1 1],'Position',[0.1 0.55 0.5 0.4]); hv1=hdl.dataprep.axes1; end n=length(data.in.x); x=para.dataprep.x_norm*data.in.x./para.dataprep.latlonfac+para.dataprep.x_offset; y=para.dataprep.y_norm*data.in.y+para.dataprep.y_offset; var=data.in.tv; sta=1:n; clr=max(0,floor(clr_max*(var-min(var))/(max(var)-min(var))))+1; clr=min(clr,clr_max); cmap=colormap; inc=max(1,round(n/1600)); %hdl.dataprep.axes1=axes('parent',hdl.dataprep.h0,'position',Pos1,'Tag','dataprepAxes1','NextPlot','replace'); %%%%%%% Display Type 1 if get(hdl.dataprep.data_type1,'value') == 1 % 2D/3D View of Color-Coded Data if ~isempty(data.in.z) z=para.dataprep.z_norm*data.in.z+para.dataprep.z_offset; for i=1:inc:n plot3(x(i),y(i),z(i),'.','color',cmap(clr(i),:),'markersize',para.dispkrig.markersize); if i == 1;hold on,end end if get(hdl.dataprep.zdir,'value') set(hdl.dataprep.axes1,'zdir','reverse'); end else for i=1:inc:n plot(x(i),y(i),'.','color',cmap(clr(i),:),'markersize',para.dispkrig.markersize); if i == 1;hold on,end end end if get(hdl.dataprep.xdir,'value') set(hdl.dataprep.axes1,'xdir','reverse'); end if get(hdl.dataprep.ydir,'value') set(hdl.dataprep.axes1,'ydir','reverse'); end hold off xstr1=get(hdl.dataprep.xlabel,'string'); xstr2=get(hdl.dataprep.x_unit,'string'); indx_str=get(hdl.dataprep.x_unit,'value'); xlabel_str=[char(xstr1) ' ' char(xstr2(indx_str))]; ystr1=get(hdl.dataprep.ylabel,'string'); ystr2=get(hdl.dataprep.y_unit,'string'); indx_str=get(hdl.dataprep.y_unit,'value'); ylabel_str=[char(ystr1) ' ' char(ystr2(indx_str))]; hx1=xlabel(xlabel_str); hy1=ylabel(ylabel_str); para.dataprep.xlabel=xlabel_str; para.dataprep.ylabel=ylabel_str; hvl1=[hx1 hy1]; if ~isempty(data.in.z) zstr1=get(hdl.dataprep.zlabel,'string'); zstr2=get(hdl.dataprep.z_unit,'string'); indx_str=get(hdl.dataprep.z_unit,'value'); zlabel_str=[char(zstr1) ' ' char(zstr2(indx_str))]; hz1=zlabel(zlabel_str); hvl1=[hvl1 hz1]; set(hvl1,'fontweight','bold') set(get(hdl.dataprep.axes1,'xlabel'),'rotation',15) set(get(hdl.dataprep.axes1,'ylabel'),'rotation',-22) para.dataprep.zlabel=zlabel_str; else set(hvl1,'fontweight','bold') end if get(hdl.dataprep.var1,'Value') < 3 | get(hdl.dataprep.var2,'Value') < 3 % either x or y is Lat/Long ntick=4; [xinc,xdits,yinc,ydits]=get_ninc(hdl.dataprep.axes1,ntick); if get(hdl.dataprep.var1,'Value') < 3 & max(data.in.var1) <= 360 & min(data.in.var1) >= -360 mapax(xinc,xdits,yinc,ydits,hdl.dataprep.axes1,1); end if get(hdl.dataprep.var2,'Value') < 3 & max(data.in.var2) <= 360 & min(data.in.var2) >= -360 mapax(xinc,xdits,yinc,ydits,hdl.dataprep.axes1,2); end tick_len=size(get(hdl.dataprep.axes1,'yticklabel'),2); switch tick_len case 9 set(hdl.dataprep.axes1,'fontsize',9) case 10 set(hdl.dataprep.axes1,'fontsize',8) end end % drawnow %% colorbar % hdl.dataprep.axes1_clrbar=colorbar; pos = get(gca,'Position'); stripe = 0.075; edge = 0.02; [az,el] = view; if all([az,el]==[0 90]), space = 0.05; else space = .1; end set(hdl.dataprep.axes1,'Position',[pos(1) pos(2) pos(3)*(1-stripe-edge-space) pos(4)]) rect = [pos(1)+(1-stripe-edge)*pos(3) pos(2) stripe*pos(3) pos(4)]; hdl.dataprep.axes1_clrbar = axes('Position', rect); ax=hdl.dataprep.axes1_clrbar; image([0 1],[min(var) max(var)],(1:clr_max)','Tag','TMW_COLORBAR','deletefcn','colorbar(''delete'')'); set(ax,'Ydir','normal') set(ax,'YAxisLocation','right') set(ax,'xtick',[]) elseif get(hdl.dataprep.data_type2,'value') == 1 % Sample sequence data if para.dataprep.data_disptype0 == 1 hv2=hdl.dataprep.axes1; elseif para.dataprep.data_disptype0 == 2 hv2=hdl.dataprep.axes2; end para.dataprep.data_disptype0=2; % historical setting Pos2=get(hv2,'position'); hld2i=get(hv2,'children'); for i=1:length(hld2i) delete(hld2i(i)) end set(hv2,'xticklabel','','xtick',[]) set(hv2,'yticklabel','','ytick',[]) set(hv2,'yticklabel','','xticklabel','') set(get(hv2,'xlabel'),'string','') set(get(hv2,'ylabel'),'string','') if data.in.dim == 3 set(hv2,'zticklabel',''); set(get(hv2,'zlabel'),'string',''); end % hdl.dataprep.axes2=axes('parent',hdl.dataprep.h0,'position',Pos2,'Tag','dataprepAxes2','NextPlot','replace'); hdl.dataprep.axes2 = axes('Parent',hdl.dataprep.h0, 'Color',[1 1 1],'Position',[0.1 0.55 0.5 0.4]); plot(sta,var,'-') hold on for i=1:n plot(sta(i),var(i),'.','color',cmap(clr(i),:),'markersize',para.dispkrig.markersize); end hold off hx2=xlabel('Sample Number'); hy2=ylabel('Observation Value'); hvl2=[hx2 hy2]; set(hvl2,'fontweight','bold') delete(hdl.dataprep.axes1_clrbar); pos=get(gca,'Position'); stripe = 0.075; edge = 0.02; [az,el] = view; if all([az,el]==[0 90]), space = 0.05; else space = .1; end set(hdl.dataprep.axes2,'Position',[pos(1) pos(2) pos(3)*(1-stripe-edge-space) pos(4)]) rect = [pos(1)+(1-stripe-edge)*pos(3) pos(2) stripe*pos(3) pos(4)]; hdl.dataprep.axes1_clrbar = axes('Position', rect); ax=hdl.dataprep.axes1_clrbar; image([0 1],[min(var) max(var)],(1:clr_max)','Tag','TMW_COLORBAR','deletefcn','colorbar(''delete'')'); set(ax,'Ydir','normal') set(ax,'YAxisLocation','right') set(ax,'xtick',[]) end % Data Display Type action=check_unitsfig(1); if get(hdl.dataprep.data_format,'value') % save data format file save_data_format_info(2) end if ~isempty(var) para.status.dataprep=1; % data have been loaded end