<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Calview.m</id>
	<title>Calview.m - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Calview.m"/>
	<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Calview.m&amp;action=history"/>
	<updated>2026-04-20T19:20:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki-pnb.eri.ucsb.edu/index.php?title=Calview.m&amp;diff=325&amp;oldid=prev</id>
		<title>Eriks: Created page with '&lt;pre&gt; %cl:  calview() | calview('list_file','foo.txt') % running from cl will always read list_file, gui interaction even if % open  %check for list_file in command line         …'</title>
		<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Calview.m&amp;diff=325&amp;oldid=prev"/>
		<updated>2011-03-17T20:30:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;pre&amp;gt; %cl:  calview() | calview(&amp;#039;list_file&amp;#039;,&amp;#039;foo.txt&amp;#039;) % running from cl will always read list_file, gui interaction even if % open  %check for list_file in command line         …&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
%cl:  calview() | calview('list_file','foo.txt')&lt;br /&gt;
% running from cl will always read list_file, gui interaction even if&lt;br /&gt;
% open&lt;br /&gt;
&lt;br /&gt;
%check for list_file in command line&lt;br /&gt;
         %yes: qcaled(list_file), ac9init, calview(list_file,etc.)&lt;br /&gt;
	 %no: &amp;quot;select file dialog, restart&amp;quot;, qcaled&lt;br /&gt;
%gui: CB: list_file=ac9cal.filename.udata.name (must be current)&lt;br /&gt;
       %calview(list_file)&lt;br /&gt;
       %check for list_file in command line&lt;br /&gt;
	 %yes: qcaled(list_file), ac9init, calview(list_file,etc.)&lt;br /&gt;
	 %no: &amp;quot;select file dialog, restart&amp;quot;, qcaled&lt;br /&gt;
&lt;br /&gt;
%qcaled has to update filename with any changes to filetext&lt;br /&gt;
%ac9init gets qcal filename from qcaled, if ok then call calview&lt;br /&gt;
&lt;br /&gt;
%  list~=qcaled.filename.udata.name, open list_file&lt;br /&gt;
%include in filename.udata the handle of the corresponding qcaled&lt;br /&gt;
%check to see that filename.udata.name are the same in ac9cal and&lt;br /&gt;
%  qcaled to make sure that qcaled hasn't been closed or modified&lt;br /&gt;
%lock out qcaled when cv,cs,ts are running &lt;br /&gt;
%closing qcaled should clear ac9cal.filename.udata.name&lt;br /&gt;
&lt;br /&gt;
%has to be an active list_file to run calview and saved copy must&lt;br /&gt;
%be up to date, make ac9calinit check for this&lt;br /&gt;
&lt;br /&gt;
%what if qcal.txt is modified outside of qcaled?&lt;br /&gt;
% $$$ function calview(list_file,autorun,filetype)&lt;br /&gt;
% $$$   &lt;br /&gt;
% $$$   ac9calinit %get the contents of the list_file&lt;br /&gt;
% $$$   &lt;br /&gt;
% $$$   calviewinit, set up the figures&lt;br /&gt;
% $$$   &lt;br /&gt;
% $$$   for ifile,&lt;br /&gt;
% $$$     calview_main, read the data and plot; modify; save&lt;br /&gt;
% $$$   end&lt;br /&gt;
% $$$   &lt;br /&gt;
% $$$   qcalsave, query save of new qcal.txt&lt;br /&gt;
% $$$   &lt;br /&gt;
% $$$   return&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  % Title:        CALVIEW.M&lt;br /&gt;
% Date:         02/2000&lt;br /&gt;
% Author:       EB/SRW&lt;br /&gt;
% Input:        parfile:string&lt;br /&gt;
% Output:       [returns:dimension]&lt;br /&gt;
% Files:        list_file(qcal.txt)&lt;br /&gt;
% Assumes:      list_file in local dir with file names and intervals,&lt;br /&gt;
%               Order of wavelengths in *.dat file&lt;br /&gt;
%               a650 a676 a715 c510 c555 c630 a412 a440 a488 &lt;br /&gt;
%               c650 c676 c715 a510 a555 a630 c412 c440 c488&lt;br /&gt;
% Purpose:      what do I do?&lt;br /&gt;
% Calls:        function names&lt;br /&gt;
% Uses:         ac9cal_cb&lt;br /&gt;
% Example:      calview() | calview('list_file','foo.txt')&lt;br /&gt;
% NOTES:        autorun []=all,man;&amp;gt;0=ran,man;0=all,auto&lt;br /&gt;
%               Now plots all wavelengths, zoom to see details.&lt;br /&gt;
%		Does not modify list_file if run from the command line.&lt;br /&gt;
%               User asked to save the modified filetext to qcal.txt&lt;br /&gt;
%               at the end program if run from ac9cal_gui.&lt;br /&gt;
%		Varargin passed to calview only update ac9.par in calview,&lt;br /&gt;
%		  can't pass them on to ac9cal as function arguments,&lt;br /&gt;
%		  not in correct form.&lt;br /&gt;
%function fig=calview(list_file,autorun,filetype,prop,mode)&lt;br /&gt;
function fig=calview(varargin)&lt;br /&gt;
% $$$   h_ac9=findall(0,'Tag','ac9calFig');&lt;br /&gt;
% $$$   if isempty(h_ac9),&lt;br /&gt;
% $$$     % No ac9cal gui, start and read defaults&lt;br /&gt;
% $$$   end&lt;br /&gt;
% $$$   ac9=ac9cal_cb('par_update');&lt;br /&gt;
  [ac9calfig,ac9]=ac9cal;&lt;br /&gt;
  %assign command line parameters to local variables&lt;br /&gt;
  narg=length(varargin);&lt;br /&gt;
  nrow=narg/2;&lt;br /&gt;
  if nrow==round(nrow),&lt;br /&gt;
    for iarg=1:2:length(varargin),&lt;br /&gt;
      eval(['ac9.par.' varargin{iarg} '= varargin{iarg+1};']);&lt;br /&gt;
    end&lt;br /&gt;
  else&lt;br /&gt;
    display('calview: command line pairs not correctly formed');&lt;br /&gt;
    return&lt;br /&gt;
  end&lt;br /&gt;
  %check that all parameters have been defined&lt;br /&gt;
  if isempty(ac9.par.prop),&lt;br /&gt;
    msgbox('Select an IOP, rerun calview');&lt;br /&gt;
    return&lt;br /&gt;
  end&lt;br /&gt;
  if isempty(ac9.par.fluid),&lt;br /&gt;
    msgbox('Select a fluid, rerun calview');&lt;br /&gt;
    return&lt;br /&gt;
  end&lt;br /&gt;
  if ac9.par.fluid, % 1 for water&lt;br /&gt;
    if ~isfield(ac9.par,'instr_num'),&lt;br /&gt;
      msgbox('Select an AC9, rerun calview');&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
    if ~isfield(ac9.par,'Tref'),&lt;br /&gt;
      msgbox('Select a factory cal, rerun calview');&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
    Tref=ac9.par.Tref;&lt;br /&gt;
    if isempty(Tref),&lt;br /&gt;
      msgbox('Tref is empty, check factory cal, rerun calview');&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qcal=qcaled_cb('list_load','list_file',ac9.par.list_file);&lt;br /&gt;
  fig=calviewplot(0);&lt;br /&gt;
  set(fig,'Userdata',ac9);&lt;br /&gt;
  calviewplot(1);&lt;br /&gt;
   &lt;br /&gt;
  filetext=qcal.FileText.str;&lt;br /&gt;
  fileval=qcal.FileText.val;&lt;br /&gt;
  channels=ac9.sort_channels;&lt;br /&gt;
  I=ac9.I; %index of channels from .dat file is sorted alphabetically&lt;br /&gt;
  ichannels=ac9.isort_channels; %index of channels in sorted array&lt;br /&gt;
   &lt;br /&gt;
  specdata=[];&lt;br /&gt;
  stddata=[];&lt;br /&gt;
  ndata=[];&lt;br /&gt;
  leg_names='';&lt;br /&gt;
 for ifile=1:length(fileval), %size(udata(1).list.fname,1),&lt;br /&gt;
  if(fileval(ifile)&amp;gt;0),&lt;br /&gt;
    ival=fileval(ifile);&lt;br /&gt;
    %file=deblank(udata(1).list.fname(ifile,:))&lt;br /&gt;
    file=deblank(qcal.list.fname(ifile,:));&lt;br /&gt;
    %add some check to make sure a commented line hasn't been chosen&lt;br /&gt;
    if filetext(ival,1)=='#',&lt;br /&gt;
      display('uncomment this file, save and rerun');&lt;br /&gt;
      break;&lt;br /&gt;
    end&lt;br /&gt;
    set(findobj('Tag','FileText'),'Value',ival);&lt;br /&gt;
    if ac9.par.filetype==1&lt;br /&gt;
      [temp,head]=read_ac9([file '.dat']);&lt;br /&gt;
      %[temp,head]=read_ac9(file);&lt;br /&gt;
      %eval(['temp=read_ac9('''   file  '.dat'');']);&lt;br /&gt;
      temp=exciseit(temp,20);&lt;br /&gt;
      time=temp(:,1)/60000;&lt;br /&gt;
      chan=temp(:,2:19);&lt;br /&gt;
      itemp=temp(:,20);&lt;br /&gt;
      temp2=medfilt1(temp,15);&lt;br /&gt;
      time2=temp2(:,1)/60000;&lt;br /&gt;
      chan2=temp2(:,2:19);&lt;br /&gt;
      itemp2=temp2(:,20);&lt;br /&gt;
    else&lt;br /&gt;
      temp=read_strip([file '.da2']);      &lt;br /&gt;
      %eval(['temp=read_strip('''   file  '.da2'');']);&lt;br /&gt;
      time=temp(:,1)/60000;&lt;br /&gt;
      chan=temp(:,3:20);&lt;br /&gt;
      itemp=temp(:,21);&lt;br /&gt;
      temp2=medfilt1(temp,15);&lt;br /&gt;
      time2=temp2(:,1)/60000;&lt;br /&gt;
      depth2=temp2(:,2);&lt;br /&gt;
      chan2=temp2(:,3:20);&lt;br /&gt;
      itemp2=temp2(:,21);&lt;br /&gt;
    end;&lt;br /&gt;
    if ac9.par.fluid,&lt;br /&gt;
      %add wetlabs temperature correction&lt;br /&gt;
      %get Tcal from a list file&lt;br /&gt;
      Tcaldate=qcal.list.date(ifile,:);&lt;br /&gt;
      %Tcalfile=['watertemp_' ac9.par.instr_num '.txt'];&lt;br /&gt;
      Tcalfile=[ac9.par.instr_num ac9.par.Tcalfile];&lt;br /&gt;
      Tcalfile=fullfile(ac9.par.calroot_dir, ac9.par.instr_num, ...&lt;br /&gt;
			ac9.par.Tcaldir, Tcalfile);&lt;br /&gt;
      qcal.list.tcal=read_text(Tcalfile);&lt;br /&gt;
      find( datenum(Tcaldate)==datenum(parse(qcal.list.tcal,1)) );&lt;br /&gt;
      Tcal=0;&lt;br /&gt;
      if ~isempty(ans),&lt;br /&gt;
	Tcal=parse(qcal.list.tcal(ans(1),:),2);&lt;br /&gt;
	%add cal check&lt;br /&gt;
	if ~strcmp(Tcal,'Reserved');&lt;br /&gt;
	  Tcal=str2num(Tcal);&lt;br /&gt;
	else&lt;br /&gt;
	  msgbox('Enter Tcal into line 5 of the qcal.txt and rerun');&lt;br /&gt;
	  close(fig);&lt;br /&gt;
	  return&lt;br /&gt;
	end&lt;br /&gt;
      else&lt;br /&gt;
	qcal.list.tcal;&lt;br /&gt;
	disp(['Tcaldate is not in this list, check ' Tcalfile]);&lt;br /&gt;
	return&lt;br /&gt;
      end&lt;br /&gt;
      if Tcal&amp;gt;0,&lt;br /&gt;
	del_ts=ac9.par.sit*(Tcal-ac9.par.Tref);&lt;br /&gt;
	del_ts=[del_ts del_ts];&lt;br /&gt;
	for irow=1:size(chan2,1),&lt;br /&gt;
	  chan2(irow,:)=chan2(irow,:)-del_ts(I);&lt;br /&gt;
	end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    %put this data into the figure&lt;br /&gt;
    caldata.file=file;&lt;br /&gt;
    caldata.par=ac9.par;&lt;br /&gt;
    caldata.I=I;&lt;br /&gt;
    caldata.channels=channels;&lt;br /&gt;
    caldata.ichannels=ichannels;&lt;br /&gt;
    caldata.time2=time2;&lt;br /&gt;
    caldata.chan2=chan2;&lt;br /&gt;
    caldata.itemp2=itemp2;&lt;br /&gt;
% $$$     t_lim=[str2num(udata(1).list.t1(ifile,:)) &lt;br /&gt;
% $$$ 	   str2num(udata(1).list.t2(ifile,:)) ];&lt;br /&gt;
    t_lim=[str2num(qcal.list.t1(ifile,:)) &lt;br /&gt;
	   str2num(qcal.list.t2(ifile,:)) ];&lt;br /&gt;
    caldata.t_lim=t_lim;&lt;br /&gt;
    %put the data into the calplot user data&lt;br /&gt;
    set(findobj(fig,'Tag','calplot'),'Userdata',caldata);&lt;br /&gt;
    &lt;br /&gt;
    %put a spectral plot for entire range on same page &lt;br /&gt;
    %fill edit boxes on qcaled&lt;br /&gt;
    %get the time fields to pass as t_lim&lt;br /&gt;
&lt;br /&gt;
    %put into calviewplot and get t_lim from fig.udata.t_lim&lt;br /&gt;
    calviewplot(2);&lt;br /&gt;
    &lt;br /&gt;
% $$$     specdata=get(findobj('Tag','specplot'),'Userdata');&lt;br /&gt;
% $$$     stddata=get(findobj('Tag','stdplot'),'Userdata');&lt;br /&gt;
    newdata=get(findobj(fig,'Tag','specplot'),'Userdata');&lt;br /&gt;
    %save to calplot figure userdata&lt;br /&gt;
    udata=get(fig,'Userdata');&lt;br /&gt;
    %wavelength should be global, get from udata.par.wave &lt;br /&gt;
    %udata(ifile).wave=par.wave;&lt;br /&gt;
    %udata.data should be a structure array of the data&lt;br /&gt;
    %udata(ifile).file=file;&lt;br /&gt;
    %udata(ifile).specdata=newdata.specdata(end,:);&lt;br /&gt;
    %udata(ifile).nspecdata=udata(ifile).specdata - ...&lt;br /&gt;
    %	udata(ifile).specdata(6);&lt;br /&gt;
    %udata(ifile).stddata=newdata.stddata(end,:);&lt;br /&gt;
    %udata(ifile).ndata=newdata.ndata(end,:);&lt;br /&gt;
    udata.data(ifile).file=file;&lt;br /&gt;
    udata.data(ifile).specdata=newdata.specdata(end,:);&lt;br /&gt;
    udata.data(ifile).nspecdata=udata.data(ifile).specdata - ...&lt;br /&gt;
	udata.data(ifile).specdata(6);&lt;br /&gt;
    udata.data(ifile).stddata=newdata.stddata(end,:);&lt;br /&gt;
    udata.data(ifile).ndata=newdata.ndata(end,:);&lt;br /&gt;
    set(fig,'Userdata',udata);&lt;br /&gt;
    %leg_names=strvcat(leg_names,strrep(udata(ifile).file,'_','\_'));&lt;br /&gt;
    leg_names=strvcat(leg_names,strrep(udata.data(ifile).file,'_','\_'));&lt;br /&gt;
    if ~ac9.par.autorun&lt;br /&gt;
        x1_han(1)=findobj(fig,'Tag','calplot');&lt;br /&gt;
        ax1 = axis(x1_han)&lt;br /&gt;
        ax1 = ax1(1)&lt;br /&gt;
      disp('press left mouse and hold to zoom in on an area');&lt;br /&gt;
      disp('press left mouse to zoom out');&lt;br /&gt;
      %disp('write down beginning and ending minute to use');&lt;br /&gt;
      %disp('press return key to continue to next file ');&lt;br /&gt;
      disp('press return key to confirm zoom then press &amp;quot;go&amp;quot; to go to next file')&lt;br /&gt;
      disp('');&lt;br /&gt;
      disp('');&lt;br /&gt;
      uiwait(fig)&lt;br /&gt;
      % pause&lt;br /&gt;
       x2_han(1)=findobj(fig,'Tag','calplot');&lt;br /&gt;
        ax2 = axis(x1_han)&lt;br /&gt;
        ax2 = ax2(1)&lt;br /&gt;
      if ax2 ~= ax1&lt;br /&gt;
        figure(1)  &lt;br /&gt;
      calviewplot(8)&lt;br /&gt;
      &lt;br /&gt;
      end&lt;br /&gt;
      %uiwait(fig);&lt;br /&gt;
      &lt;br /&gt;
      if isempty(get(findall(0,'Tag','goBut'),'Userdata')),&lt;br /&gt;
	break&lt;br /&gt;
      end&lt;br /&gt;
    end %ac9.par.autorun&lt;br /&gt;
  end&lt;br /&gt;
end %ifile&lt;br /&gt;
set(fig,'Close','delete(gcf)')&lt;br /&gt;
&lt;br /&gt;
%save list?&lt;br /&gt;
%backup old list file&lt;br /&gt;
&lt;br /&gt;
%Query list_file save &lt;br /&gt;
&lt;br /&gt;
get(findobj('Tag','SaveBut'),'Value')&lt;br /&gt;
if get(findobj('Tag','SaveBut'),'Value'),&lt;br /&gt;
  ButtonName=questdlg('Save list_file ?');&lt;br /&gt;
  switch ButtonName,&lt;br /&gt;
   case 'Yes',&lt;br /&gt;
    qcaled_cb('save');&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pooh=1;&lt;br /&gt;
while(pooh)&lt;br /&gt;
&lt;br /&gt;
%Problem: file commented out of filetext during calview&lt;br /&gt;
%Following: save original list of files, check that files are subset&lt;br /&gt;
%of that list.&lt;br /&gt;
%Better: ac9cal_update will parse the qcaled_gui into a structure and&lt;br /&gt;
%put it into the figure userdata. This becomes locked while program&lt;br /&gt;
%is running. Querry save at end if filetext has been changed, save&lt;br /&gt;
%flag is up.&lt;br /&gt;
% $$$ if ~get(findobj('Tag','SaveBut'),'Value'),&lt;br /&gt;
  udata=get(fig,'Userdata');&lt;br /&gt;
  %Exclude files that have been commented out of filetext&lt;br /&gt;
% $$$   tdata=get(findobj('Tag','FileText'),'Userdata');&lt;br /&gt;
% $$$   fval0=tdata.fval;&lt;br /&gt;
  %%%%%fval0=qcal.FileText.val&lt;br /&gt;
% $$$   ac9cal_init&lt;br /&gt;
  %get new fval, not in qcaled.udata&lt;br /&gt;
% $$$   tdata=qcaled_cb('parse');&lt;br /&gt;
  %%%%%qcal=qcaled_cb('parse');&lt;br /&gt;
% $$$   udata=get(findobj('Tag','FileText'),'Userdata');&lt;br /&gt;
  %tdata.fval must be a subset of fval0&lt;br /&gt;
% $$$   if all(ismember(qcal.FileText.val,fval0)),&lt;br /&gt;
% $$$     for i=1:length(fval0),&lt;br /&gt;
% $$$       find(fval0(i)==qcal.FileText.val)&lt;br /&gt;
% $$$       if isempty(ans),&lt;br /&gt;
% $$$ 	udata.data(i)=[];&lt;br /&gt;
% $$$ 	leg_names(i,:)=[]&lt;br /&gt;
% $$$       end&lt;br /&gt;
% $$$     end&lt;br /&gt;
% $$$   else&lt;br /&gt;
% $$$     %else won't be needed if the uncomment is blocked during program run&lt;br /&gt;
% $$$     msgbox(['files added which are not included in calview, ' ...&lt;br /&gt;
% $$$ 	    ' rerun calview with new files or run calspec']);&lt;br /&gt;
% $$$     break&lt;br /&gt;
% $$$   end&lt;br /&gt;
  &lt;br /&gt;
  %put a replot in to show overlay again after commenting out file&lt;br /&gt;
  &lt;br /&gt;
  %Move this up to show the spectra first&lt;br /&gt;
  &lt;br /&gt;
% $$$   %Query to run a modified version of calspec using averages in data&lt;br /&gt;
% $$$   ButtonName=questdlg('Show overlay of spectra, aka calspec?');&lt;br /&gt;
 % $$$   switch ButtonName,&lt;br /&gt;
% $$$    case 'Yes',&lt;br /&gt;
% $$$     fig=calspecplot(0);&lt;br /&gt;
% $$$     set(fig,'Userdata',udata);&lt;br /&gt;
% $$$     calspecplot(1);&lt;br /&gt;
% $$$     udata.han=calspecplot(2)&lt;br /&gt;
% $$$     set(fig,'Userdata',udata);&lt;br /&gt;
% $$$     calspecplot(3)&lt;br /&gt;
% $$$     calspecplot(4)&lt;br /&gt;
% $$$     udata.leg_names=leg_names;&lt;br /&gt;
% $$$     a=legend(udata.han,udata.leg_names,-1);&lt;br /&gt;
% $$$     udata.legend=a;&lt;br /&gt;
% $$$     set(fig,'Userdata',udata);&lt;br /&gt;
% $$$   end&lt;br /&gt;
&lt;br /&gt;
% $$$ end&lt;br /&gt;
  %save means last&lt;br /&gt;
  &lt;br /&gt;
  %Query  write mean value files&lt;br /&gt;
  %Only wrote the first one, not using the file to get fval&lt;br /&gt;
  if ~ac9.par.spectra,&lt;br /&gt;
    meanBut=questdlg('What now?','', ...&lt;br /&gt;
		      'Save means and quit', ...&lt;br /&gt;
		      'Quit w/o saving means',...&lt;br /&gt;
		      'View spectra', ...&lt;br /&gt;
		      'View spectra');&lt;br /&gt;
  else&lt;br /&gt;
    meanBut='View';&lt;br /&gt;
  end&lt;br /&gt;
  switch meanBut(1:4),&lt;br /&gt;
   case 'Save',&lt;br /&gt;
    for ifile=1:length(udata.data),&lt;br /&gt;
      ispec=[udata.par.wave;&lt;br /&gt;
	     udata.data(ifile).specdata;&lt;br /&gt;
	     udata.data(ifile).stddata;&lt;br /&gt;
	     udata.data(ifile).ndata];&lt;br /&gt;
      save([udata.data(ifile).file '.txt'],'ispec','-ascii');&lt;br /&gt;
      pooh=0;&lt;br /&gt;
    end&lt;br /&gt;
   case 'Quit'&lt;br /&gt;
    pooh=0;&lt;br /&gt;
   otherwise&lt;br /&gt;
    fig=calspecplot(0);&lt;br /&gt;
    set(fig,'Userdata',udata);&lt;br /&gt;
    calspecplot(1);&lt;br /&gt;
    udata.han=calspecplot(2)&lt;br /&gt;
    set(fig,'Userdata',udata);&lt;br /&gt;
    calspecplot(3)&lt;br /&gt;
    calspecplot(4)&lt;br /&gt;
    udata.leg_names=leg_names;&lt;br /&gt;
    a=legend(udata.han,udata.leg_names,-1);&lt;br /&gt;
    udata.legend=a;&lt;br /&gt;
    set(fig,'Userdata',udata);&lt;br /&gt;
    if ~ac9.par.spectra,&lt;br /&gt;
% $$$       listBut=questdlg('Edit list?')&lt;br /&gt;
% $$$       switch listBut(1:2)&lt;br /&gt;
% $$$        case 'Ye'&lt;br /&gt;
% $$$ 	h=msgbox('Comment and save list, then press OK');&lt;br /&gt;
% $$$ 	set(h,'Delete',' uiresume( findobj(''Tag'',''calspecFig'')) ' );&lt;br /&gt;
% $$$ 	uiwait(fig);&lt;br /&gt;
% $$$       end&lt;br /&gt;
    else&lt;br /&gt;
      ac9.par.spectra=0;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end % while pooh&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
%OUTLINE&lt;br /&gt;
%Select range of data(finalize),&lt;br /&gt;
%   Calc new stats and plot,&lt;br /&gt;
%   Makes new entries in filetext via qcaled,&lt;br /&gt;
%Push go,&lt;br /&gt;
%   Save filetext to tempfile&lt;br /&gt;
%   Calc ave from time in list, save to calviewfig.udata(ifile).ave&lt;br /&gt;
%      and calviewfig.udata(ifile).name for writing later&lt;br /&gt;
%Query filetext save&lt;br /&gt;
%   YES:&lt;br /&gt;
%      Writes qcal.txt file&lt;br /&gt;
%      Writes ave files&lt;br /&gt;
%      Calls calspec for comparison&lt;br /&gt;
%   NO: &lt;br /&gt;
%      Bails, no further action&lt;br /&gt;
&lt;br /&gt;
%TODO&lt;br /&gt;
%Add Pegau temperature correction,&lt;br /&gt;
%   needs Tref from wetlabs cal&lt;br /&gt;
%   needs T of water during field calibration&lt;br /&gt;
%qcaled('ac9 factory cal')&lt;br /&gt;
%   parse ac9cal.dat and put into factory.user&lt;br /&gt;
%   instrument and date list boxes&lt;br /&gt;
%   add inst and date to ac9cal_def like a,c for batching&lt;br /&gt;
%change to qcaled to make updated put ac9calinit into qcaled, real&lt;br /&gt;
%time update to a structure made available via qcaled.userdata&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%calviewplot('ac9_data')&lt;br /&gt;
%serial number list box&lt;br /&gt;
%cal location box&lt;br /&gt;
%cal number, date list box, parse ac9cal.dat&lt;br /&gt;
%tref list box&lt;br /&gt;
%caltype button A | Q&lt;br /&gt;
%&lt;br /&gt;
%&lt;br /&gt;
%&lt;br /&gt;
%in calviewplot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%calview from ac9cal_cb doesn't pick up the iop&lt;br /&gt;
&lt;br /&gt;
%Add calspec plotting to end of calview&lt;br /&gt;
&lt;br /&gt;
%Starting calview, calspec, ts-cal should disables add/remove buttons&lt;br /&gt;
&lt;br /&gt;
%Add tool tips to buttons&lt;br /&gt;
&lt;br /&gt;
%What about putting buttons into menus&lt;br /&gt;
&lt;br /&gt;
%Add zoom/unzoom in menu for each plot&lt;br /&gt;
&lt;br /&gt;
%Std/linreg plot doesn't come up with color symbols&lt;br /&gt;
&lt;br /&gt;
%Dump results and averages, old/new to dialog and querry save&lt;br /&gt;
&lt;br /&gt;
%Editting list should turn on save flag, check this flag before recalculating&lt;br /&gt;
&lt;br /&gt;
%Add reset option to copy filetext.udata -&amp;gt; filetext.string&lt;br /&gt;
&lt;br /&gt;
%Add ndata to data kept, have to change ts_cal input format, need to&lt;br /&gt;
%   calculate weighted average&lt;br /&gt;
&lt;br /&gt;
%Command line launch&lt;br /&gt;
&lt;br /&gt;
%uncommenting a file in qcaled after starting the program is bad&lt;br /&gt;
&lt;br /&gt;
%add Tref to calplot somewhere and note of correction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[calview]]&lt;/div&gt;</summary>
		<author><name>Eriks</name></author>
		
	</entry>
</feed>