kopia lustrzana https://github.com/glidernet/ogn-python
ogn.utils: Add get_trackable.
rodzic
49104499d9
commit
bebf11edf3
12
ogn/utils.py
12
ogn/utils.py
|
@ -12,6 +12,10 @@ DDB_URL = "http://ddb.glidernet.org/download"
|
||||||
deg2rad = pi/180
|
deg2rad = pi/180
|
||||||
rad2deg = 1/deg2rad
|
rad2deg = 1/deg2rad
|
||||||
|
|
||||||
|
address_prefixes = {'F':'FLR',
|
||||||
|
'O':'OGN',
|
||||||
|
'I':'ICA'}
|
||||||
|
|
||||||
|
|
||||||
def get_ddb(csvfile=None):
|
def get_ddb(csvfile=None):
|
||||||
if csvfile is None:
|
if csvfile is None:
|
||||||
|
@ -43,6 +47,14 @@ def get_ddb(csvfile=None):
|
||||||
return devices
|
return devices
|
||||||
|
|
||||||
|
|
||||||
|
def get_trackable(ddb):
|
||||||
|
l = []
|
||||||
|
for i in ddb:
|
||||||
|
if i.tracked and i.address_type in address_prefixes:
|
||||||
|
l.append('{}{}'.format(address_prefixes[i.address_type], i.address))
|
||||||
|
return l
|
||||||
|
|
||||||
|
|
||||||
def get_country_code(latitude, longitude):
|
def get_country_code(latitude, longitude):
|
||||||
geolocator = Nominatim()
|
geolocator = Nominatim()
|
||||||
location = geolocator.reverse("%f, %f" % (latitude, longitude))
|
location = geolocator.reverse("%f, %f" % (latitude, longitude))
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
#DEVICE_TYPE,DEVICE_ID,AIRCRAFT_MODEL,REGISTRATION,CN,TRACKED,IDENTIFIED
|
#DEVICE_TYPE,DEVICE_ID,AIRCRAFT_MODEL,REGISTRATION,CN,TRACKED,IDENTIFIED
|
||||||
'F','DD4711','HK36 TTC','D-EULE','CU','Y','Y'
|
'F','DD4711','HK36 TTC','D-EULE','CU','Y','Y'
|
||||||
'F','DD0815','Ventus 2cxM','D-1234','','Y','Y'
|
'F','DD0815','Ventus 2cxM','D-1234','','Y','N'
|
||||||
'F','DD3141','Arcus T','OE-4321','','Y','Y'
|
'F','DD1234','LS 8 18m','D-8654','12','N','Y'
|
||||||
|
'F','DD3141','Arcus T','OE-4321','','N','N'
|
||||||
|
'O','DEADBE','Baloon','OE-ABC','','Y','Y'
|
||||||
|
'I','999999','A380','G-XXXL','XXL','Y','Y'
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from ogn.utils import get_ddb, get_country_code, wgs84_to_sphere
|
from ogn.utils import get_ddb, get_trackable, get_country_code, wgs84_to_sphere
|
||||||
from ogn.model import AddressOrigin
|
from ogn.model import AddressOrigin
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ class TestStringMethods(unittest.TestCase):
|
||||||
|
|
||||||
def test_get_ddb_from_file(self):
|
def test_get_ddb_from_file(self):
|
||||||
devices = get_ddb('tests/custom_ddb.txt')
|
devices = get_ddb('tests/custom_ddb.txt')
|
||||||
self.assertEqual(len(devices), 3)
|
self.assertEqual(len(devices), 6)
|
||||||
device = devices[0]
|
device = devices[0]
|
||||||
|
|
||||||
self.assertEqual(device.address, 'DD4711')
|
self.assertEqual(device.address, 'DD4711')
|
||||||
|
@ -23,6 +23,15 @@ class TestStringMethods(unittest.TestCase):
|
||||||
|
|
||||||
self.assertEqual(device.address_origin, AddressOrigin.userdefined)
|
self.assertEqual(device.address_origin, AddressOrigin.userdefined)
|
||||||
|
|
||||||
|
def test_get_trackable(self):
|
||||||
|
devices = get_ddb('tests/custom_ddb.txt')
|
||||||
|
trackable = get_trackable(devices)
|
||||||
|
self.assertEqual(len(trackable), 4)
|
||||||
|
self.assertIn('FLRDD4711', trackable)
|
||||||
|
self.assertIn('FLRDD0815', trackable)
|
||||||
|
self.assertIn('OGNDEADBE', trackable)
|
||||||
|
self.assertIn('ICA999999', trackable)
|
||||||
|
|
||||||
def test_get_country_code(self):
|
def test_get_country_code(self):
|
||||||
latitude = 48.0
|
latitude = 48.0
|
||||||
longitude = 11.0
|
longitude = 11.0
|
||||||
|
|
Ładowanie…
Reference in New Issue