<?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=Fixdepth_ac9_pnb.m</id>
	<title>Fixdepth ac9 pnb.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=Fixdepth_ac9_pnb.m"/>
	<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Fixdepth_ac9_pnb.m&amp;action=history"/>
	<updated>2026-05-21T20:57:36Z</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=Fixdepth_ac9_pnb.m&amp;diff=201&amp;oldid=prev</id>
		<title>128.111.101.185: Created page with '&lt;pre&gt; % FIXDEPTH_AC9.M % 29 SEP 97, 04 JUN 2000 % John Ubante, SRW % Input:  	stripped mer, ac9 files [time depth] % Output: 	returns scale and offset of regression of ac9 on mer…'</title>
		<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Fixdepth_ac9_pnb.m&amp;diff=201&amp;oldid=prev"/>
		<updated>2010-08-05T23:16:47Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;pre&amp;gt; % FIXDEPTH_AC9.M % 29 SEP 97, 04 JUN 2000 % John Ubante, SRW % Input:  	stripped mer, ac9 files [time depth] % Output: 	returns scale and offset of regression of ac9 on mer…&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;
% FIXDEPTH_AC9.M&lt;br /&gt;
% 29 SEP 97, 04 JUN 2000&lt;br /&gt;
% John Ubante, SRW&lt;br /&gt;
% Input:  	stripped mer, ac9 files [time depth]&lt;br /&gt;
% Output: 	returns scale and offset of regression of ac9 on mer&lt;br /&gt;
%               steps_ac9$cruisename:&lt;br /&gt;
%		[startindex, X, Y, endindex, X, Y, avedepth, avetime]&lt;br /&gt;
%		depthoffset_$cruisename: [scale offset]&lt;br /&gt;
% Assumptions:	you are in a $cruisename/acmpc directory&lt;br /&gt;
% Purpose:	to find values that will align stupid ac9 &lt;br /&gt;
%		values to less stupid mer values&lt;br /&gt;
% Calls:	{shrink,xnr,elimexp,jexcise,combine}&lt;br /&gt;
% Maintain: 	{filename, columnarraylist, disp_text}&lt;br /&gt;
% Example:  	fixdepth_ac9&lt;br /&gt;
% Notes:        &lt;br /&gt;
% 06/2000       Doesn't account for instrument position on cage.&lt;br /&gt;
%               Changed to function, pass arrays retrieve from mat file.&lt;br /&gt;
%               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function [scale,offset,matrix]=fixdepth_ac9(mer,ac9)&lt;br /&gt;
					% declare local variables&lt;br /&gt;
mat_in_flag=-1.0e+40;&lt;br /&gt;
flag=-9.9e+35;&lt;br /&gt;
matrixnull=[];&lt;br /&gt;
matrix=matrixnull;&lt;br /&gt;
yesno=2;&lt;br /&gt;
ctr=0;&lt;br /&gt;
matrixoffset=0;&lt;br /&gt;
matrixbrand='mer';&lt;br /&gt;
numsteps=[];&lt;br /&gt;
xmax=0;					% get cruisename&lt;br /&gt;
pwdd = pwd;&lt;br /&gt;
indslash = find(pwdd(1,:)=='/');&lt;br /&gt;
cruisename = pwdd(1,indslash(1,size(indslash,2)-1)+1:indslash(1,size(indslash,2))-1);&lt;br /&gt;
clear indslash pwdd &lt;br /&gt;
&lt;br /&gt;
					% load mer and ac9 data&lt;br /&gt;
%load mat_in.depth;&lt;br /&gt;
&lt;br /&gt;
% $$$ 					% separate mer and ac9 data&lt;br /&gt;
% $$$ indflag=find(mat_in(:,1)==mat_in_flag);&lt;br /&gt;
% $$$ mer=mat_in(1:indflag-1,:);&lt;br /&gt;
% $$$ ac9=mat_in(indflag+1:size(mat_in,1),:);&lt;br /&gt;
% $$$ clear flag mat_in indflag&lt;br /&gt;
                                        % check for sign on depth and&lt;br /&gt;
                                        % make positive&lt;br /&gt;
if mean(mer(:,2))&amp;lt;0&lt;br /&gt;
 mer(:,2)=-mer(:,2);&lt;br /&gt;
end					% end if&lt;br /&gt;
if mean(ac9(:,2))&amp;lt;0&lt;br /&gt;
 ac9(:,2)=-ac9(:,2);&lt;br /&gt;
end					% end if&lt;br /&gt;
					% check for validity of data&lt;br /&gt;
if size(mer,2)~=2&lt;br /&gt;
 disp('Your mer data is not in 2 column format');&lt;br /&gt;
end&lt;br /&gt;
if size(ac9,2)~=2&lt;br /&gt;
 disp('Your ac9 data is not in 2 column format')&lt;br /&gt;
end&lt;br /&gt;
					% begin step interval loop&lt;br /&gt;
dataset=mer;&lt;br /&gt;
while(yesno)&lt;br /&gt;
 ctr=ctr+1;&lt;br /&gt;
					%  if first step of data ask for number&lt;br /&gt;
                    %   of step intervals&lt;br /&gt;
 if ctr==1&lt;br /&gt;
					%   plot data real big&lt;br /&gt;
  fig=figure;&lt;br /&gt;
  set (gcf,'units','inches', 'pos',[2.5 2 8 5])&lt;br /&gt;
  plot(dataset(:,1),dataset(:,2))&lt;br /&gt;
  set(gca,'ydir','rev')&lt;br /&gt;
  titlestr=['Depth vs. Index in ',matrixbrand,' data of ',cruisename];&lt;br /&gt;
  title(titlestr);&lt;br /&gt;
  grid on;&lt;br /&gt;
  disp(' ')&lt;br /&gt;
  disp('A whole step is defined as a step preceeded and followed by sloped data.')&lt;br /&gt;
  disp('Count the bottom step only if both plots display a leading slope.')&lt;br /&gt;
  numsteps(yesno)=input('Count the whole steps enter the value: ');&lt;br /&gt;
  disp('Select the boundaries of your first interval.')&lt;br /&gt;
 else&lt;br /&gt;
  disp('Select the boundaries of your next interval.')&lt;br /&gt;
 end					%  end if&lt;br /&gt;
&lt;br /&gt;
					%  get zoom points&lt;br /&gt;
 [x,y]=ginput(2);&lt;br /&gt;
&lt;br /&gt;
					%  zoom in&lt;br /&gt;
 if y(1)&amp;lt;y(2)&lt;br /&gt;
  if x(1)&amp;lt;x(2)&lt;br /&gt;
   axis([x(1),x(2),y(1),y(2)])&lt;br /&gt;
  else&lt;br /&gt;
   axis([x(2),x(1),y(1),y(2)])&lt;br /&gt;
  end&lt;br /&gt;
 else&lt;br /&gt;
  if x(1)&amp;lt;x(2)&lt;br /&gt;
   axis([x(1),x(2),y(2),y(1)])&lt;br /&gt;
  else&lt;br /&gt;
   axis([x(2),x(1),y(2),y(1)])&lt;br /&gt;
  end					%   end if&lt;br /&gt;
 end					%  end if&lt;br /&gt;
&lt;br /&gt;
% if y(1) &amp;gt; y(2)&lt;br /&gt;
%  axis([x(1),x(2),y(2),y(1)]);&lt;br /&gt;
% else&lt;br /&gt;
%  axis([x,y]);&lt;br /&gt;
% end&lt;br /&gt;
 hold on;&lt;br /&gt;
 grid off;&lt;br /&gt;
 plot(dataset(:,1),dataset(:,2),'ro');&lt;br /&gt;
 titlestr=['Zoom of step interval #',num2str(ctr),' of ',cruisename];&lt;br /&gt;
 title(titlestr);&lt;br /&gt;
 plot([x(1), x(2)], [0, 0], 'g-.'); &lt;br /&gt;
 hold off;&lt;br /&gt;
&lt;br /&gt;
					%  get start and end points of step interval&lt;br /&gt;
 disp('click on start and finish of step interval')&lt;br /&gt;
 [x,y]=ginput(2);&lt;br /&gt;
                                        % convert x(:) to indices&lt;br /&gt;
 for i=1:2&lt;br /&gt;
   find(x(i)&amp;lt;=dataset(:,1));&lt;br /&gt;
   xind(i)=ans(1);&lt;br /&gt;
 end&lt;br /&gt;
					%  find interval's averages&lt;br /&gt;
 aved=mean(dataset(xind(1):xind(2),2));&lt;br /&gt;
 avet=mean(dataset(xind(1):xind(2),1));&lt;br /&gt;
&lt;br /&gt;
					%  add step interval data to matrix&lt;br /&gt;
 %matrix=[matrix;x(1),dataset(xind(1),:),x(2),dataset(xind(2),:),aved,avet];&lt;br /&gt;
 matrix=[matrix;xind(1),dataset(xind(1),:),xind(2),dataset(xind(2),:),aved,avet];&lt;br /&gt;
					%  plot dataset real big with &lt;br /&gt;
					%  already checked step intervals&lt;br /&gt;
 plot(dataset(:,1),dataset(:,2),'g')&lt;br /&gt;
 set(gca,'ydir','rev')&lt;br /&gt;
 titlestr=['Depth vs. Index in ',matrixbrand,' data of ',cruisename]; &lt;br /&gt;
 title(titlestr)&lt;br /&gt;
 hold on&lt;br /&gt;
					%  loop to plot done step intervals&lt;br /&gt;
 for i=matrixoffset+1:size(matrix,1),&lt;br /&gt;
  plot(dataset(matrix(i,1):matrix(i,4),1),dataset(matrix(i,1):matrix(i,4),2),'m')&lt;br /&gt;
 end					%  end for loop&lt;br /&gt;
 clear i&lt;br /&gt;
 plot(matrix(matrixoffset+1:size(matrix,1),2),matrix(matrixoffset+1:size(matrix,1),3),'ro')&lt;br /&gt;
 plot(matrix(matrixoffset+1:size(matrix,1),5),matrix(matrixoffset+1:size(matrix,1),6),'ro')&lt;br /&gt;
 grid on;&lt;br /&gt;
					%  after numsteps intervals, ask if points ok&lt;br /&gt;
 if ctr==numsteps(yesno)&lt;br /&gt;
  titlestr=['Selected steps in ',matrixbrand,' of ',cruisename];&lt;br /&gt;
  title(titlestr);&lt;br /&gt;
  done=input('Are these points ok? ','s');&lt;br /&gt;
					%   if points ok, exit loop&lt;br /&gt;
  if (done=='y'|done=='Y')&lt;br /&gt;
%   eval(['save steps_ac9' cruisename '.dat matrix -ascii']);&lt;br /&gt;
   disp('You RULE!!');&lt;br /&gt;
   yesno=yesno-1;&lt;br /&gt;
   dataset=ac9;&lt;br /&gt;
   matrixnull=matrix;&lt;br /&gt;
   ctr=0;&lt;br /&gt;
   matrixoffset=size(matrix,1);&lt;br /&gt;
   matrixbrand='ac9';&lt;br /&gt;
   grid on&lt;br /&gt;
   set (gcf, 'pos',[0.9 5 5.5 5])&lt;br /&gt;
  else&lt;br /&gt;
   matrix=matrixnull;&lt;br /&gt;
   ctr=0;&lt;br /&gt;
&lt;br /&gt;
  end					%   end if&lt;br /&gt;
 end					%  end if&lt;br /&gt;
end					% end while loop&lt;br /&gt;
clear yesno titlestr aved avet ctr done fig matrixnull matrixoffset x y dataset&lt;br /&gt;
clear matrixbrand&lt;br /&gt;
&lt;br /&gt;
temp=numsteps(1);&lt;br /&gt;
numsteps(1)=numsteps(2);&lt;br /&gt;
numsteps(2)=temp;&lt;br /&gt;
clear temp&lt;br /&gt;
grid on&lt;br /&gt;
set (gcf, 'pos',[6.5 5 5.5 5])&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
% DIAGNOSTIC PLOT: superimpose all step intervals from both datasets on to one plot.&lt;br /&gt;
% The x axis will represent index_end - index_start.  The y axis will be depth.&lt;br /&gt;
% Because of the different sample rates between the two instruments, rescale the&lt;br /&gt;
% x axis for the ac9 to match its corresponding mer step interval.  DAMN!!!&lt;br /&gt;
% FINISH LATER&lt;br /&gt;
&lt;br /&gt;
figb=figure;&lt;br /&gt;
set(gca,'ydir','rev')&lt;br /&gt;
&lt;br /&gt;
% set up plot&lt;br /&gt;
% begin looping through each line of matrix&lt;br /&gt;
&lt;br /&gt;
dataset=mer;&lt;br /&gt;
for i=1:numsteps(1)&lt;br /&gt;
 hold on&lt;br /&gt;
 x=dataset(matrix(i,1):matrix(i,4),1)-dataset(matrix(i,1),1);&lt;br /&gt;
 if max(x)&amp;gt; xmax&lt;br /&gt;
  xmax=max(x);&lt;br /&gt;
 end					%  end if&lt;br /&gt;
 y=dataset(matrix(i,1):matrix(i,4),2)-dataset(matrix(i,1),2);&lt;br /&gt;
 plot(x,y,'ro')&lt;br /&gt;
 plot(x,y,'g')&lt;br /&gt;
 hold off&lt;br /&gt;
end					% end for&lt;br /&gt;
hold on&lt;br /&gt;
plot([0 xmax],[0 0],'w--')&lt;br /&gt;
hold off&lt;br /&gt;
clear xmax&lt;br /&gt;
&lt;br /&gt;
done=input('Are these steps ok? ','s');&lt;br /&gt;
if (done=='y'|done=='Y')&lt;br /&gt;
 close(figb)&lt;br /&gt;
 clear figb&lt;br /&gt;
else&lt;br /&gt;
 disp('re-run by typing &amp;quot;fixdepth_ac9&amp;quot; at the prompt');&lt;br /&gt;
return%break;&lt;br /&gt;
end					% end if &lt;br /&gt;
&lt;br /&gt;
% DO LATER:  if numsteps(1)~=numsteps(2) then remove the steps in the cruise&lt;br /&gt;
% with more steps until the number of steps are same, ensuring that only steps&lt;br /&gt;
% without corresponding steps are eliminated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% DO NOW:  Find offset and scale for ac9 data [depthave timeave]&lt;br /&gt;
dt_mer=matrix(1:numsteps(1),7:8);&lt;br /&gt;
dt_ac9=matrix(numsteps(1)+1:sum(numsteps),7:8);&lt;br /&gt;
&lt;br /&gt;
[p,S]=polyfit(dt_mer(:,1),dt_ac9(:,1),1);&lt;br /&gt;
% eval(['save scaleoffset' cruisename '.dat p -ascii']);&lt;br /&gt;
scale=p(1);&lt;br /&gt;
offset=p(2);&lt;br /&gt;
r=corrcoef(dt_mer(:,1)',dt_ac9(:,1)')&lt;br /&gt;
sprintf('YOUR SCALE _IS_: %3.3e',scale)&lt;br /&gt;
sprintf('YOUR OFFSET _IS_: %3.3e',offset)&lt;br /&gt;
plot(dt_mer(:,1),dt_ac9(:,1),'o');&lt;br /&gt;
hold on&lt;br /&gt;
plot(dt_mer(:,1),polyval(p,dt_mer(:,1)),'k')&lt;br /&gt;
ax=axis;&lt;br /&gt;
axis([min(ax(1),ax(3)) max(ax(2),ax(4)) min(ax(1),ax(3)) max(ax(2),ax(4))]);&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;[[fixdepth_ac9_pnb]]&amp;lt;big&amp;gt;&lt;/div&gt;</summary>
		<author><name>128.111.101.185</name></author>
		
	</entry>
</feed>