From b86a09cd7f622d5721be671c0303b6bda5d61fa0 Mon Sep 17 00:00:00 2001 From: curt Date: Thu, 10 Apr 2003 18:04:40 +0000 Subject: [PATCH] Fixed [hopefully] the magvar decoding. The last four digits are quite clearly the date of installation at that particular offset. Offsets are usually not changed because this would imply moving intersection points, fixes, changing approaches, and all sorts of cascading effects. GEP near my house hasn't been adjusted since 1965; it is now about 8 degrees off the real current magvar. --- scripts/perl/dafif/dafift2nav.pl | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/scripts/perl/dafif/dafift2nav.pl b/scripts/perl/dafif/dafift2nav.pl index 570eb7a48..8d0787b71 100755 --- a/scripts/perl/dafif/dafift2nav.pl +++ b/scripts/perl/dafif/dafift2nav.pl @@ -94,6 +94,18 @@ sub write_navaid { $magvar, $name, $TYPE_NAMES[$type]); } +sub make_dmagvar { + my($coord) = shift; + my( $value ); + my( $dir, $deg, $date ) = $coord =~ m/^([EW])(\d\d\d\d)(\d\d\d\d)/; + $value = $deg / 10.0; + if ( $dir eq "W" ) { + $value = -$value; + } + + return $value; +} + <>; # skip header line @@ -125,8 +137,13 @@ while (<>) if ($magvar eq '') { $magvar = 'XXX'; } else { - $magvar =~ /^([EW])([0-9.]+)( .*)?/; - $magvar = sprintf("%02d%s", $2/100000, $1); + my $tmp = make_dmagvar( $magvar ); + # print "$magvar $tmp\n"; + if ( $tmp <= 0 ) { + $magvar = sprintf("%02.0fW", -$tmp ); + } else { + $magvar = sprintf("%02.0fE", $tmp ); + } } my $name = $F[5]; -- 2.39.5