diff --git a/app/backend/liveglidernet.py b/app/backend/liveglidernet.py
deleted file mode 100644
index 3dd7a77..0000000
--- a/app/backend/liveglidernet.py
+++ /dev/null
@@ -1,103 +0,0 @@
-from datetime import datetime, timezone
-
-from app.model import AircraftBeacon, ReceiverBeacon
-from app import db
-
-
-def utc_to_local(utc_dt):
- return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)
-
-
-def encode(address):
- return "xx" + address
-
-
-def decode(code):
- return code[2:9]
-
-
-def rec(min_timestamp, min_online_timestamp):
- last_seen_query = (
- db.session.query(ReceiverBeacon).filter(ReceiverBeacon.timestamp > min_timestamp).order_by(ReceiverBeacon.receiver_id, ReceiverBeacon.timestamp).distinct(ReceiverBeacon.receiver_id)
- )
-
- lines = []
- lines.append('')
- lines.append("")
- lines.append('')
- for receiver_beacon in last_seen_query:
- if receiver_beacon.location is None or receiver_beacon.name.startswith("FNB"):
- continue
- lines.append(
- ''.format(
- receiver_beacon.name, receiver_beacon.location.latitude, receiver_beacon.location.longitude, receiver_beacon.timestamp < min_online_timestamp
- )
- )
-
- lines.append("")
- xml = "\n".join(lines)
-
- return xml
-
-
-def lxml(show_offline=False, lat_max=90, lat_min=-90, lon_max=180, lon_min=-180):
-
- timestamp_range_filter = [db.between(AircraftBeacon.timestamp, datetime(2018, 7, 31, 11, 55, 0), datetime(2018, 7, 31, 12, 5, 0))]
-
- last_seen_query = db.session.query(AircraftBeacon).filter(*timestamp_range_filter).order_by(AircraftBeacon.device_id, AircraftBeacon.timestamp).distinct(AircraftBeacon.device_id)
- lines = list()
- lines.append('')
- lines.append("")
-
- for aircraft_beacon in last_seen_query:
- device = aircraft_beacon.device
-
- code = encode(device.address)
-
- if device.info:
- if not device.info.tracked or not device.info.identified:
- continue
-
- if not device.info.competition:
- competition = device.info.registration[-2:]
- else:
- competition = device.info.competition
-
- if not device.info.registration:
- registration = "???"
- else:
- registration = device.info.registration
-
- address = device.address
-
- else:
- competition = ("_" + code[-2:]).lower()
- registration = code
- address = 0
-
- elapsed_time = datetime.utcnow() - aircraft_beacon.timestamp
- elapsed_seconds = int(elapsed_time.total_seconds())
-
- lines.append(
- ' '.format(
- aircraft_beacon.location.latitude,
- aircraft_beacon.location.longitude,
- competition,
- registration,
- int(aircraft_beacon.altitude),
- utc_to_local(aircraft_beacon.timestamp).strftime("%H:%M:%S"),
- elapsed_seconds,
- int(aircraft_beacon.track),
- int(aircraft_beacon.ground_speed),
- int(aircraft_beacon.climb_rate * 10) / 10,
- aircraft_beacon.aircraft_type,
- aircraft_beacon.receiver_name,
- address,
- code,
- )
- )
-
- lines.append("")
- xml = "\n".join(lines)
-
- return xml
diff --git a/app/gateway/beacon_conversion.py b/app/gateway/beacon_conversion.py
index 8421835..4e7be5f 100644
--- a/app/gateway/beacon_conversion.py
+++ b/app/gateway/beacon_conversion.py
@@ -1,13 +1,13 @@
from mgrs import MGRS
-import rasterio as rs
from ogn.parser import parse
from app.model import AircraftType
+#import rasterio as rs
+#elevation_dataset = rs.open('/Volumes/LaCieBlack/Wtf4.tiff')
mgrs = MGRS()
-#elevation_dataset = rs.open('/Volumes/LaCieBlack/Wtf4.tiff')
def aprs_string_to_message(aprs_string):
diff --git a/setup.py b/setup.py
index fcc8acd..3461288 100644
--- a/setup.py
+++ b/setup.py
@@ -54,8 +54,8 @@ setup(
'xmlunittest==0.5.0',
'flower==0.9.5',
'tqdm==4.51.0',
- 'requests==2.25.0',
- 'matplotlib=3.3.3'
+ 'requests==2.25.0',
+ 'matplotlib==3.3.3'
],
test_require=[
'pytest==5.0.1',
diff --git a/tests/backend/__init__.py b/tests/backend/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/backend/test_backends.py b/tests/backend/test_backends.py
deleted file mode 100644
index 28f3d8f..0000000
--- a/tests/backend/test_backends.py
+++ /dev/null
@@ -1,194 +0,0 @@
-import json
-from datetime import datetime, date
-
-import unittest
-from unittest import mock
-
-from xmlunittest import XmlTestMixin
-
-from tests.base import TestBaseDB, db
-
-from app.model import AircraftBeacon, AircraftType, Receiver, Sender, DeviceInfo, ReceiverCoverage
-
-from app.backend.liveglidernet import rec, lxml
-from app.backend.ognrange import stations2_filtered_pl, max_tile_mgrs_pl
-
-
-class TestDB(TestBaseDB, XmlTestMixin):
- def setUp(self):
- super().setUp()
-
- # Prepare Beacons
- self.r01 = Receiver(name="Koenigsdf", location_wkt="0101000020E610000061E8FED7A6EE26407F20661C10EA4740", lastseen="2017-12-20 10:00:00", altitude=601, version="0.2.5", platform="ARM")
- self.r02 = Receiver(name="Bene", location_wkt="0101000020E6100000D5E76A2BF6C72640D4063A6DA0DB4740", lastseen="2017-12-20 09:45:00", altitude=609, version="0.2.7", platform="x64")
- self.r03 = Receiver(name="Ohlstadt", location_wkt="0101000020E6100000057E678EBF772640A142883E32D44740", lastseen="2017-12-20 10:05:00", altitude=655, version="0.2.6", platform="ARM")
- db.session.add(self.r01)
- db.session.add(self.r02)
- db.session.add(self.r03)
- db.session.commit()
-
- self.d01 = Sender(address="DD4711", lastseen="2017-12-20 10:00:02")
- self.d02 = Sender(address="DD0815", lastseen="2017-12-20 09:56:00")
- db.session.add(self.d01)
- db.session.add(self.d02)
- db.session.commit()
-
- self.di01 = DeviceInfo(registration="D-4711", competition="Hi", tracked=True, identified=True)
- db.session.add(self.di01)
- db.session.commit()
-
- self.ab11 = AircraftBeacon(
- name="FLRDD4711",
- receiver_name="Koenigsdf",
- location_wkt="0101000020E6100000211FF46C56ED26402650D7EDC6E94740",
- aircraft_type=AircraftType.GLIDER_OR_MOTOR_GLIDER,
- timestamp="2017-12-20 10:00:01",
- track=105,
- ground_speed=57,
- climb_rate=-0.5,
- )
- self.ab12 = AircraftBeacon(
- name="FLRDD4711",
- receiver_name="Koenigsdf",
- location_wkt="0101000020E6100000806DEA295FED2640347D898BB6E94740",
- aircraft_type=AircraftType.GLIDER_OR_MOTOR_GLIDER,
- timestamp="2017-12-20 10:00:02",
- track=123,
- ground_speed=55,
- climb_rate=-0.4,
- altitude=209,
- )
- self.ab21 = AircraftBeacon(
- name="FLRDD0815",
- receiver_name="Koenigsdf",
- location_wkt="0101000020E6100000F38B25BF58F22640448B6CE7FBE94740",
- aircraft_type=AircraftType.POWERED_AIRCRAFT,
- timestamp="2017-12-20 09:54:30",
- track=280,
- ground_speed=80,
- climb_rate=-2.9,
- )
- self.ab22 = AircraftBeacon(
- name="FLRDD0815",
- receiver_name="Bene",
- location_wkt="0101000020E6100000A5E8482EFFF12640DC1EAA16FEE94740",
- aircraft_type=AircraftType.POWERED_AIRCRAFT,
- timestamp="2017-12-20 09:56:00",
- track=270,
- ground_speed=77,
- climb_rate=-1.5,
- altitude=543,
- )
- db.session.add(self.ab11)
- db.session.add(self.ab12)
- db.session.add(self.ab21)
- db.session.add(self.ab22)
- db.session.commit()
-
- self.rc11 = ReceiverCoverage(
- location_mgrs_short="32TPU8312", date=date(2017, 12, 20), max_signal_quality=10, max_altitude=1000, min_altitude=600, aircraft_beacon_count=20, device_count=2, receiver=self.r01
- )
- self.rc12 = ReceiverCoverage(
- location_mgrs_short="32TPU8434", date=date(2017, 12, 20), max_signal_quality=10, max_altitude=1000, min_altitude=600, aircraft_beacon_count=20, device_count=2, receiver=self.r01
- )
- self.rc12 = ReceiverCoverage(
- location_mgrs_short="32TPU8434", date=date(2017, 12, 21), max_signal_quality=10, max_altitude=1000, min_altitude=600, aircraft_beacon_count=20, device_count=2, receiver=self.r01
- )
- self.rc21 = ReceiverCoverage(
- location_mgrs_short="32TPU8512", date=date(2017, 12, 20), max_signal_quality=10, max_altitude=1000, min_altitude=600, aircraft_beacon_count=20, device_count=2, receiver=self.r02
- )
- db.session.add(self.rc11)
- db.session.add(self.rc12)
- db.session.add(self.rc21)
- db.session.commit()
-
- @unittest.skip("broken")
- def test_rec(self):
- data = rec(min_timestamp=datetime(2017, 12, 19, 10, 0), min_online_timestamp=datetime(2017, 12, 20, 10, 0)).encode(encoding="utf-8")
-
- # Check the document
- root = self.assertXmlDocument(data)
- self.assertXmlNode(root, tag="markers")
- self.assertXpathsOnlyOne(root, ('./m[@a="Koenigsdf"]', './m[@a="Bene"]', './m[@a="Ohlstadt"]'))
-
- # Check the complete document
- expected = """
-
-
-
-
-
-
- """.encode(
- encoding="utf-8"
- )
-
- self.assertXmlEquivalentOutputs(data, expected)
-
- @unittest.skip("broken")
- def test_lxml(self):
- data = lxml().encode(encoding="utf-8")
-
- # Check the complete document
- expected = """
-
-
-
-
- """.encode(
- encoding="utf-8"
- )
-
- self.assertXmlEquivalentOutputs(data, expected)
-
- @mock.patch("app.backend.ognrange.datetime")
- def test_stations2_filtered_pl(self, datetime_mock):
- datetime_mock.utcnow.return_value = datetime(2017, 12, 20, 10, 0)
-
- result = stations2_filtered_pl(start=date(2017, 12, 15), end=date(2017, 12, 25))
-
- data = json.loads(result)
-
- stations = data["stations"]
- self.assertEqual(len(stations), 3)
- s1 = stations[0]
- s2 = stations[1]
- s3 = stations[2]
-
- self.assertEqual(s1["s"], "Bene")
- self.assertEqual(s1["lt"], 47.7158)
- self.assertEqual(s1["lg"], 11.3906)
- self.assertEqual(s1["u"], "D") # Down, because last beacon > 10min. ago
- self.assertEqual(s1["ut"], "2017-12-20 09:45")
- # self.assertEqual(s1["b"], 0)
- self.assertEqual(s1["v"], "0.2.7.x64")
-
- self.assertEqual(s2["s"], "Koenigsdf")
- self.assertEqual(s2["lt"], 47.8286)
- self.assertEqual(s2["lg"], 11.4661)
- self.assertEqual(s2["u"], "U")
- self.assertEqual(s2["ut"], "2017-12-20 10:00")
- # self.assertEqual(s2["b"], 0)
- self.assertEqual(s2["v"], "0.2.5.ARM")
-
- self.assertEqual(s3["s"], "Ohlstadt")
-
- def test_max_tile_mgrs_pl(self):
- result = max_tile_mgrs_pl(station="Koenigsdf", start=date(2017, 12, 15), end=date(2017, 12, 25), squares="32TPU")
-
- data = json.loads(result)
-
- self.assertEqual(data["t"], "32TPU")
- self.assertEqual(data["p"][0], "8312/1")
- self.assertEqual(data["p"][1], "8434/2")
-
- result = max_tile_mgrs_pl(station="Bene", start=date(2017, 12, 15), end=date(2017, 12, 25), squares="32TPU")
-
- data = json.loads(result)
-
- self.assertEqual(data["t"], "32TPU")
- self.assertEqual(data["p"][0], "8512/1")
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/tests/test_timescale_views.py b/tests/test_timescale_views.py
deleted file mode 100644
index f2712ec..0000000
--- a/tests/test_timescale_views.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import unittest
-
-from tests.base import TestBaseDB, db
-
-from app.model import AircraftBeacon
-
-
-class TestDatabase(TestBaseDB):
- def test_view(self):
- from app.timescale_views import MyView
-
- self.insert_airports_and_devices()
- self.insert_aircraft_beacons_broken_rope()
-
- db.session.execute("REFRESH MATERIALIZED VIEW device_stats;")
-
- stats = db.session.query(MyView).all()
- for stat in stats:
- print(stat)
-
-
-if __name__ == "__main__":
- unittest.main()