--- a/RDI_Coords.pl
+++ b/RDI_Coords.pl
@@ -1,9 +1,9 @@
#======================================================================
# R D I _ C O O R D S . P L
# doc: Sun Jan 19 17:57:53 2003
-# dlm: Thu Dec 23 15:00:02 2010
+# dlm: Sat Jan 22 22:35:17 2011
# (c) 2003 A.M. Thurnherr
-# uE-Info: 30 48 NIL 0 0 72 2 2 4 NIL ofnI
+# uE-Info: 262 0 NIL 0 0 72 2 2 4 NIL ofnI
#======================================================================
# RDI Workhorse Coordinate Transformations
@@ -27,7 +27,9 @@
# May 23, 2009: - debugged & renamed to &velBeamToBPEarth
# May 23, 2010: - changed prototypes of rad() & deg() to conform to ANTS
# Dec 20, 2010: - cosmetics
-# Dec 23, 3020: - added &velBeamToBPInstrument
+# Dec 23, 2010: - added &velBeamToBPInstrument
+# Jan 22, 2011: - made velApplyHdgBias calculate sin/cos every time to allow
+# per-ensemble corrections
use strict;
use POSIX;
@@ -245,28 +247,19 @@
# Bias correction for beam-coordinate data is done in velInstrumentToEarth()
#======================================================================
-{ # STATIC SCOPE
- my($sh,$ch);
+sub velApplyHdgBias(@)
+{
+ my($dta,$ens,$v1,$v2,$v3,$v4) = @_;
+ return undef unless (defined($v1) && defined($v2));
- sub velApplyHdgBias(@)
- {
- my($dta,$ens,$v1,$v2,$v3,$v4) = @_;
- return undef unless (defined($v1) && defined($v2));
-
- unless (defined($sh)) {
- printf(STDERR "$0: warning HEADING_ALIGNMENT == %g ignored\n",
- $dta->{HEADING_ALIGNMENT})
- if ($dta->{HEADING_ALIGNMENT});
- $sh = sin(rad(-$dta->{HEADING_BIAS}));
- $ch = cos(rad(-$dta->{HEADING_BIAS}));
- }
+ my($sh) = sin(rad(-$dta->{HEADING_BIAS}));
+ my($ch) = cos(rad(-$dta->{HEADING_BIAS}));
- return ( $v1*$ch + $v2*$sh,
- -$v1*$sh + $v2*$ch,
- $v3 ,
- $v4 );
- }
-} # STATIC SCOPE
+ return ( $v1*$ch + $v2*$sh,
+ -$v1*$sh + $v2*$ch,
+ $v3 ,
+ $v4 );
+}
#----------------------------------------------------------------------
# Pitch/Roll Functions