From 3ee5ca904434eac3e62c2c4fea9ac31bd9ffd201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Sat, 14 Nov 2015 10:42:41 +0100 Subject: [PATCH] Fixed extended lat/lon bug and added radius, theta, phi --- ogn/model/aircraft_beacon.py | 9 +++++++-- tests/model/test_aircraft_beacon.py | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ogn/model/aircraft_beacon.py b/ogn/model/aircraft_beacon.py index 2edeb31..ac67d1a 100644 --- a/ogn/model/aircraft_beacon.py +++ b/ogn/model/aircraft_beacon.py @@ -27,6 +27,11 @@ class AircraftBeacon(Beacon): flightlevel = Column(Float) + # Calculated values + radius = Column(Float) + theta = Column(Float) + phi = Column(Float) + # Pattern address_pattern = re.compile(r"id(\S{2})(\S{6})") climb_rate_pattern = re.compile(r"([\+\-]\d+)fpm") @@ -100,8 +105,8 @@ class AircraftBeacon(Beacon): elif error_count_match is not None: self.error_count = int(error_count_match.group(1)) elif coordinates_extension_match is not None: - dlat = int(coordinates_extension_match.group(1)) / 1000 - dlon = int(coordinates_extension_match.group(2)) / 1000 + dlat = int(coordinates_extension_match.group(1)) / 1000 / 60 + dlon = int(coordinates_extension_match.group(2)) / 1000 / 60 self.latitude = self.latitude + dlat self.longitude = self.longitude + dlon diff --git a/tests/model/test_aircraft_beacon.py b/tests/model/test_aircraft_beacon.py index 6d5cfd0..eaee0fa 100644 --- a/tests/model/test_aircraft_beacon.py +++ b/tests/model/test_aircraft_beacon.py @@ -36,8 +36,8 @@ class TestStringMethods(unittest.TestCase): position = AircraftBeacon() position.parse("!W26! id21400EA9 -2454fpm +0.9rot 19.5dB 0e -6.6kHz gps1x1 s6.02 h44 rDF0C56") - self.assertEqual(position.latitude, 0.002) - self.assertEqual(position.longitude, 0.006) + self.assertEqual(position.latitude, 2 / 1000 / 60) + self.assertEqual(position.longitude, 6 / 1000 / 60) self.assertEqual(position.software_version, 6.02) self.assertEqual(position.hardware_version, 44) self.assertEqual(position.real_id, "DF0C56")