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

    function		batch_krig()
%% function		batch_krig()
%% Batch kriging on slected data files using current variogram/correlogram and kriging parameters
%%
%%  Modified on 2/4/00		to be able to include the last file on the filename list
%%									without CR at the end
%%
%%  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
	
if ~isfield(para.vario,'nugt')
   message(1,'Need to set variogram/correlogram parameters for batch processing information');
   return;
end

if 0
if para.krig.xmin == -0.5 & para.krig.xmax == 0.5 ...
   & para.krig.ymin == -0.5 & para.krig.ymax == 0.5
   message(1,'You may need to set kriging parameters for batch processing information');
   return;
end
end

if ~isfield(para.krig,'batch_data_file')
   message(1,'Need to provide a file that contains a list of filenames');
   return;
end
if ~isfield(para.krig,'batch_log_file')
   message(1,'Need to specify a log filename that record the batch processing information');
   return;
end

fid=fopen(para.krig.batch_data_file,'r');
if isempty(fid)
  return
end
para.krig.batch_file_proc=1;



%%% get input filenames and set output filenames   3/2/00
%file_len;
k=0;
while 1
  line = fgetl(fid);
  if ~isstr(line) | isempty(line), break, end   %%%%%%xxxxx modified 15June2004
  k=k+1;
  fname_len(k)=length(line);
  para.krig.batch_filename_in(k,1:fname_len(k))=getfilename(line,para); 
  if length(para.krig.batch_filename_in(k,:)) > fname_len(k)                %%%%%%xxxxx modified 15June2004
      dflen=length(para.krig.batch_filename_in(k,:))-fname_len(k);
      len2=length(para.krig.batch_filename_in(k,:));
      len1=fname_len(k)+1;
      para.krig.batch_filename_in(k,len1:len2)=' '*ones(1,dflen);
  end
  fname=filenametruncation(line);
  out_file=[para.file_dir.batch_log fname '.mat']; 
  file_len(k)=length(out_file);
  para.krig.batch_filename_out(k,1:length(out_file))=out_file;
end
fclose(fid);              

para.krig.bat_proc_time=0;
fid=fopen(para.krig.batch_log_file,'w');
for i=1:k
   para.krig.bat_proc_cnt=i;
   line1=sprintf('file #%3d',i);
   fprintf(fid,'%s\n',line1);
   fid1=fopen(para.krig.batch_filename_in(i,1:fname_len(i)),'r');              %%%%%%xxxxx modified 15June2004
   if fid1 < 0
     line1=sprintf('input filename %s is not found',para.krig.batch_filename_in(i,:));
     message(1,line1);
   else
	  fclose(fid1);						% added on 2/5/00
     line2=sprintf('    input filename = %s',para.krig.batch_filename_in(i,:));    
     fprintf(fid,'%s\n',line2);
%% start data processing
     para.krig.data_file=para.krig.batch_filename_in(i,1:fname_len(i));
     indx=find(para.krig.data_file == '/' | para.krig.data_file == '\' | para.krig.data_file ==':');
     if ~isempty(indx)
        pindx=max(indx);
        filename=para.krig.data_file(pindx+1:length(para.krig.data_file));
     else
        filename=para.krig.data_file;
     end        
%     truncated_filename=filenametruncation(filename);
     [pathi truncated_filename ext ver]=fileparts(para.krig.data_file);
	  set(hdl.krig.fileID,'string',truncated_filename);
	  para.dataprep.fileID=truncated_filename;
	  loaddatfile(2);			% load data file from kriging window
	  datachk(2);					% calling datachk.m from kriging window
     if ~isfield(para.dataprep,'transform_index') para.dataprep.transform_index=1;end
     data.in.tv=datatransform(1,data.in.v,para.dataprep.transform_index);	% Forward Data Transformation
     krig3dmanager;
  %   if ~isfield(para.dispkrig,'trackline')   %% added 3/2/00
			para.dispkrig.trackline.type_indx=1;
			para.dispkrig.trackline.line_color=1;
			para.dispkrig.colormap_indx=11;
			para.dispkrig.num_of_contour=4;
			para.dispkrig.digits_of_contour=3;
			para.dispkrig.trackline.color_indx=8;
			para.dispkrig.trackline.size_indx=8;
			para.dispkrig.validation_model=1;
			para.dispkrig.Qcheck=0;
			para.dispkrig.JKcheck=0;
  %   end
     line3=sprintf('    output filename = %s',para.krig.batch_filename_out(i,:));
     cmd=['save ''' para.krig.batch_filename_out(i,1:file_len(i)) ''' para data'];
     eval(cmd);
     fprintf(fid,'%s\n',line3);
  end
end
fclose(fid);