www.gusucode.com > EasyKrig_V3.0工具箱matlab源码程序 > EasyKrig_V3.0/dataprep/loaddatfile.m

    function loaddatfile(opt,filename)
%%	opt = 1			called from data preparation window
%%		  2			called from kriging window
%%		  3			called from visualization window
%%
%%  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 data hdl

if opt == 1								% called from data preparation window
 index1=get(hdl.dataprep.x_axis,'value');
 index2=get(hdl.dataprep.y_axis,'value');
 index3=get(hdl.dataprep.z_axis,'value');
 if get(hdl.dataprep.ext_prog,'Value') == 1  & ~isempty(get(hdl.dataprep.dat_conv_fname,'string'))
   eval(['addpath ''' para.file_dir.data_conversion ''''])
   fname_len=length(para.dataprep.dat_conv_fname);
 %  cmd=['[x_axis,y_axis,z_axis,val,data_index]=' para.dataprep.dat_conv_fname '(''' para.dataprep.filename ''');'];
   data_index=[1 2 3 ];
   cmd=['[x_axis,y_axis,z_axis,val]=' para.dataprep.dat_conv_fname '(''' para.dataprep.filename ''');'];
   eval(cmd);
   data.in.var1_raw=x_axis;
   data.in.var2_raw=y_axis;
   set(hdl.dataprep.x_axis,'value',data_index(1));
   set(hdl.dataprep.y_axis,'value',data_index(2));
   if ~isempty(z_axis) & ~isempty(val)
     data.in.var3_raw=z_axis;
     data.in.var_raw=val;
 	 data.in.dim=3;
 %    set(hdl.dataprep.z_axis,'enable','on');  %
     set(hdl.dataprep.var3,'enable','on');  %
     set(hdl.dataprep.zlabel,'enable','on');  %
     set(hdl.dataprep.z_unit,'enable','on');  %
     set(hdl.dataprep.y_axis,'value',data_index(3));
  else
     if isempty(z_axis)
       data.in.var3_raw=[];
       data.in.var_raw=val;
     elseif isempty(val)
       data.in.var3_raw=[];
       data.in.var_raw=z_axis;
     end   
 	 data.in.dim=2;
     set(hdl.dataprep.z_axis,'enable','off');  %
     set(hdl.dataprep.var3,'enable','off');  %
     set(hdl.dataprep.zlabel,'enable','off');  %
     set(hdl.dataprep.z_unit,'enable','off');  %
   end
   data.in.var1=data.in.var1_raw;
   data.in.var2=data.in.var2_raw;
   data.in.var3=data.in.var3_raw;
   data.in.var=data.in.var_raw;
 else									% load data directly
   eval(['dat=load(' '''' para.dataprep.filename ''');'])
   data.in.var1_raw=dat(:,1);
   data.in.var2_raw=dat(:,2);
   if size(dat,2) >= 4			% 3-D data
     data.in.var3_raw=dat(:,3);
     data.in.var_raw=dat(:,4);
 	 data.in.dim=3;
     set(hdl.dataprep.z_axis,'enable','on');  %
     set(hdl.dataprep.var3,'enable','on');  %
     set(hdl.dataprep.zlabel,'enable','on');  %
     set(hdl.dataprep.z_unit,'enable','on');  %
   else								% 2-D data
     data.in.var3_raw=[];
  	  data.in.dim=2;
     data.in.var_raw=dat(:,3);
     set(hdl.dataprep.z_axis,'enable','off');  %
     set(hdl.dataprep.var3,'enable','off');  %
     set(hdl.dataprep.zlabel,'enable','off');  %
     set(hdl.dataprep.z_unit,'enable','off');  %
   end
   data.in.var1=dat(:,index1);
   data.in.var2=dat(:,index2);
   data.in.var3=dat(:,index3);
   data.in.var=data.in.var_raw;
 end
 para.dataprep.x_axis_indx=get(hdl.dataprep.x_axis,'value');
 para.dataprep.y_axis_indx=get(hdl.dataprep.y_axis,'value');
 if data.in.dim == 3
   para.dataprep.z_axis_indx=get(hdl.dataprep.z_axis,'value');
 end
elseif opt == 2										% called from kriging window
% if ~isfield(para.dataprep,'ext_prog') para.dataprep.ext_prog=0;end
 if para.dataprep.ext_prog == 1							% external file
   eval(['addpath ''' para.file_dir.data_conversion ''''])
   cmd=['[x_axis,y_axis,z_axis,val]=' para.dataprep.dat_conv_fname '(''' para.krig.data_file ''');'];
   eval(cmd);
   data.in.var1_raw=x_axis;
   data.in.var2_raw=y_axis;
   if ~isempty(z_axis) & ~isempty(val)          % 3-D data
     data.in.var3_raw=z_axis;
     data.in.var_raw=val;
 	 data.in.dim=3;
   else                                         % 2-D data
     if isempty(z_axis)
       data.in.var3_raw=[];
       data.in.var_raw=val;
     elseif isempty(val)
       data.in.var3_raw=[];
       data.in.var_raw=z_axis;
     end   
 	  data.in.dim=2;
  	end
   data.in.var1=data.in.var1_raw;
   data.in.var2=data.in.var2_raw;
   data.in.var3=data.in.var3_raw;
   data.in.var=data.in.var_raw;
else																			% no external file
   index1=para.dataprep.x_axis_indx;
   index2=para.dataprep.y_axis_indx;
   eval(['dat=load(' '''' para.krig.data_file ''');'])
   data.in.var1_raw=dat(:,1);
   data.in.var2_raw=dat(:,2);
   if size(dat,2) >= 4			% 3-D data
     data.in.var3_raw=dat(:,3);
     data.in.var_raw=dat(:,4);
  	 index3=para.dataprep.z_axis_indx;
	 data.in.dim=3;
   else								% 2-D data
     data.in.var3_raw=[];
  	 data.in.dim=2;
     data.in.var_raw=dat(:,3);
     index3=[];
   end
   data.in.var1=dat(:,index1);
   data.in.var2=dat(:,index2);
   data.in.var3=dat(:,index3);
   data.in.var=data.in.var_raw; 
 end
elseif opt == 3										% called from visualization window
    mat_file_in=para.file_dir.mat_file_in;
	cmd=['load ''' filename ''''];
    current_matlab_version=para.Matlab_Version;
    HDIR=para.home_dir;
    eval(cmd)
    para.Matlab_Version=current_matlab_version;
    para.home_dir=HDIR;
    para.file_dir.mat_file_in=mat_file_in;
    set(hdl.dispkrig3d.fileID,'string',para.dataprep.fileID);
end
para.dataprep.checkunit_action=0;
para.krig.xmin0=min(data.in.var1);
para.krig.xmax0=max(data.in.var1);
para.krig.dx0=(max(data.in.var1)-min(data.in.var1))/19;
para.krig.ymin0=min(data.in.var2);
para.krig.ymax0=max(data.in.var2);
para.krig.dy0=(max(data.in.var2)-min(data.in.var2))/19;
if data.in.dim == 3   
     para.krig.zmin0=min(data.in.var3);
     para.krig.zmax0=max(data.in.var3);
     para.krig.dz0=(max(data.in.var3)-min(data.in.var3))/19;
end
if hdl.status.krigingfig == 1 & opt == 1
   set(hdl.krig.xmin,'string',para.krig.xmin0);
   set(hdl.krig.xmax,'string',para.krig.xmax0);
   set(hdl.krig.dx,'string',para.krig.dx0);
   set(hdl.krig.ymin,'string',para.krig.ymin0);
   set(hdl.krig.ymax,'string',para.krig.ymax0);
   set(hdl.krig.dy,'string',para.krig.dy0);
   if data.in.dim == 3
     set(hdl.krig.zmin,'string',para.krig.zmin0);
     set(hdl.krig.zmax,'string',para.krig.zmax0);
     set(hdl.krig.dz,'string',para.krig.dz0);
   else
     set(hdl.krig.zmin,'enable','off');
     set(hdl.krig.zmax,'enable','off');
     set(hdl.krig.dz,'enable','off');
  end
end