fixcompass.m
author A.M. Thurnherr <athurnherr@yahoo.com>
Tue, 29 Jun 2021 09:14:43 -0400
changeset 23 e83393696a24
parent 20 61b92f8fb463
permissions -rw-r--r--
IX_14 Release Version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
     1
%======================================================================
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
     2
%                    F I X C O M P A S S . M 
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
     3
%                    doc: Fri Dec 30 14:59:27 2011
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
     4
%                    dlm: Sun Mar  6 12:15:39 2016
2
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
     5
%                    (c) 2011 A.M. Thurnherr
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
     6
%                    uE-Info: 42 0 NIL 0 0 72 0 2 4 NIL ofnI
2
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
     7
%======================================================================
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
     8
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     9
function [d,p]=fixcompass(d,p)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    10
% 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    11
% fix compass issues
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    12
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    13
% p.fix_compass=1  apply offset only
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    14
% p.fix_compass=2  fix up looking compass to down looking compass + offset
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    15
% p.fix_compass=3  fix down looking compass to up looking compass + offset
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    16
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    17
% p.hdg_offset will apply a fixed rotation to the compass. In most cases you
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    18
%        will want to set the compass that you trust to 0 and rotate the other one
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    19
%        by the difference in direction between the two beam 3 headings as mounted 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    20
%        on the frame
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    21
%        : [downoffset  upoffset]
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    22
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    23
% once you done this rotup2down gets disabled since I assume you know what the offset was
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    24
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    25
% M. Visbeck LDEO 2004
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    26
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    27
2
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    28
% Changes by ant:
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    29
%	Dec 30, 2011: - BUG: p.fix_compass = 2 and = 3 did not work; bug report and fix 
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    30
%						 provided by Roman Tarakanov <rtarakanov@gmail.com> today
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    31
%						 bug fix verified with PALE data (old code produces garbage results)
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
    32
%	Mar  6, 2016: - BUG: p.fix_compass = 1 did not work for single-head profiles
2
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    33
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    34
disp('FIXCOMPASS adjust compass')
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    35
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    36
% use tilt sensors to figure out allingment between instruments
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
    37
if p.fix_compass > 1
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
    38
	diary off
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
    39
	  hoff2=fminsearch('checktilt',0,[],[d.rol(2,:);d.pit(2,:);d.rol(1,:);d.pit(1,:)]);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
    40
	diary on
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
    41
    disp([' mean instrument alignment based on tilt is ',num2str(hoff2),' deg'])
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 2
diff changeset
    42
end
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    43
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    44
[lb,lt]=size(d.ru);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    45
if p.fix_compass==2
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    46
 p=setdefv(p,'hdg_offset',[0 hoff2]);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    47
elseif p.fix_compass==3
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    48
 p=setdefv(p,'hdg_offset',[-hoff2 0]);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    49
else
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    50
 p=setdefv(p,'hdg_offset',[0 0]);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    51
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    52
p=setdefv(p,'hdg_offset_used',[0 0]);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    53
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    54
rot=p.hdg_offset;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    55
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    56
rotv(1,:)=ones(1,lt)*rot(1);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    57
disp([' offset down looking compass by : ',num2str(rot(1))]) 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    58
p.hdg_offset_used(1)=p.hdg_offset_used(1)+rot(1);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    59
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    60
if p.fix_compass==3
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    61
  disp(' use up looking compass on down looking ADCP')
2
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    62
  rotv(1,:)=d.hdg(2,:)-d.hdg(1,:)+rot(1);
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    63
  p.rotup2down=0;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    64
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    65
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    66
if length(d.izu)>0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    67
  rotv(2,:)=ones(1,lt)*rot(2);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    68
  disp([' offset up looking compass by : ',num2str(rot(2))]) 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    69
  p.hdg_offset_used(2)=p.hdg_offset_used(2)+rot(2);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    70
  if p.fix_compass==2
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    71
   disp(' use down looking compass on up looking ADCP')
2
ec6b10ba8a34 Version IX_8
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    72
   rotv(2,:)=d.hdg(1,:)-d.hdg(2,:)+rot(2);
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    73
   p.rotup2down=0;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    74
  end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    75
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    76
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    77
rotm=meshgrid(rotv(1,:),d.izd);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    78
[d.ru(d.izd,:),d.rv(d.izd,:)]=uvrot(d.ru(d.izd,:),d.rv(d.izd,:),rotm);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    79
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    80
if length(rotv(1,:))==size(d.bvel,1)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    81
 [d.bvel(:,1),d.bvel(:,2)]=uvrot(d.bvel(:,1),d.bvel(:,2),rotv(1,:)');
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    82
else
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    83
 [d.bvel(1,:),d.bvel(2,:)]=uvrot(d.bvel(1,:),d.bvel(2,:),rotv(1,:));
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    84
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    85
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    86
if length(d.izu)>0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    87
 rotm=meshgrid(rotv(2,:),d.izu);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    88
 [d.ru(d.izu,:),d.rv(d.izu,:)]=uvrot(d.ru(d.izu,:),d.rv(d.izu,:),rotm);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    89
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    90