pull/68/head
Konstantin Gründger 2017-10-03 13:31:24 +02:00
rodzic 3b074ff0b1
commit a76bcc1750
16 zmienionych plików z 64 dodań i 92 usunięć

Wyświetl plik

@ -1,16 +1,12 @@
from ogn.commands.dbutils import engine, session
from ogn.model import Base, AddressOrigin, AircraftBeacon, ReceiverBeacon, Device, Receiver
from ogn.utils import get_airports, open_file
from ogn.collect.database import update_device_infos
from ogn.gateway.process import message_to_beacon
from sqlalchemy import insert, distinct
from sqlalchemy.sql import null
import os
from manager import Manager
from ogn.commands.dbutils import session
from ogn.gateway.process import message_to_beacon
from ogn.model import AircraftBeacon, ReceiverBeacon
from ogn.utils import open_file
manager = Manager()

Wyświetl plik

@ -1,12 +1,12 @@
from manager import Manager
from ogn.collect.database import update_device_infos
from ogn.commands.dbutils import engine, session
from ogn.model import Base, AddressOrigin, AircraftBeacon, ReceiverBeacon, Device, Receiver
from ogn.utils import get_airports, open_file
from ogn.collect.database import update_device_infos
from ogn.utils import get_airports
from sqlalchemy import insert, distinct
from sqlalchemy.sql import null
from manager import Manager
manager = Manager()
ALEMBIC_CONFIG_FILE = "alembic.ini"

Wyświetl plik

@ -1,5 +1,5 @@
import os
import importlib
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

Wyświetl plik

@ -1,18 +1,12 @@
from sqlalchemy.sql import func
from sqlalchemy import and_, or_
from sqlalchemy.orm import aliased
from ogn.model import AircraftBeacon, Device
from ogn.commands.dbutils import session
from aerofiles.igc import Writer
import datetime
import re
from aerofiles.igc import Writer
from manager import Manager
from ogn.commands.dbutils import session
from ogn.model import AircraftBeacon, Device
manager = Manager()
@ -34,7 +28,7 @@ def write(address, date):
.first()
if (device_id is None):
print ("Device with address '{}' not found.".format(address))
print("Device with address '{}' not found.".format(address))
return
with open('sample.igc', 'wb') as fp:

Wyświetl plik

@ -2,17 +2,16 @@
from datetime import timedelta, datetime
from sqlalchemy.sql import func
from manager import Manager
from ogn.collect.logbook import compute_logbook_entries
from ogn.collect.takeoff_landing import compute_takeoff_and_landing
from ogn.commands.dbutils import session
from ogn.model import Device, DeviceInfo, TakeoffLanding, Airport, Logbook
from sqlalchemy import and_, or_
from sqlalchemy.orm import aliased
from sqlalchemy.sql import func
from ogn.model import Device, DeviceInfo, TakeoffLanding, Airport, Logbook
from ogn.commands.dbutils import session
from ogn.collect.takeoff_landing import compute_takeoff_and_landing
from ogn.collect.logbook import compute_logbook_entries
from manager import Manager
manager = Manager()

Wyświetl plik

@ -1,8 +1,9 @@
from ogn.model import Airport
from ogn.commands.dbutils import session
from manager import Manager
from ogn.commands.dbutils import session
from ogn.model import Airport
from sqlalchemy import and_, between
manager = Manager()

Wyświetl plik

@ -1,9 +1,10 @@
from manager import Manager
from ogn.commands.dbutils import session
from ogn.model import AddressOrigin
from ogn.model.device_info import DeviceInfo
from sqlalchemy import func, and_, true, false
from manager import Manager
from ogn.model.device_info import DeviceInfo
manager = Manager()

Wyświetl plik

@ -1,8 +1,9 @@
from manager import Manager
from ogn.commands.dbutils import session
from ogn.model import Device, AircraftType
from sqlalchemy import func
from manager import Manager
manager = Manager()

Wyświetl plik

@ -1,11 +1,11 @@
from datetime import datetime, timedelta
from sqlalchemy.sql import func
from sqlalchemy import distinct, and_
from ogn.model import ReceiverBeacon, Receiver
from ogn.commands.dbutils import session
from manager import Manager
from ogn.commands.dbutils import session
from ogn.model import ReceiverBeacon, Receiver
from sqlalchemy import distinct, and_
from sqlalchemy.sql import func
manager = Manager()
receiver_beacons_per_day = 24 * 60 / 5

Wyświetl plik

@ -1,13 +1,9 @@
import logging
from ogn.client import AprsClient
from ogn.gateway.process import process_beacon, message_to_beacon
from datetime import datetime
from manager import Manager
from ogn.model import AircraftBeacon, ReceiverBeacon
from ogn.client import AprsClient
from ogn.gateway.process import process_beacon
from ogn.utils import open_file
import os
manager = Manager()

Wyświetl plik

@ -1,7 +1,9 @@
import logging
from ogn.commands.dbutils import session
from ogn.model import AircraftBeacon, ReceiverBeacon, Location
from ogn.parser import parse_aprs, parse_ogn_receiver_beacon, parse_ogn_aircraft_beacon, ParseError
from ogn.parser import parse, ParseError
logger = logging.getLogger(__name__)
@ -19,33 +21,16 @@ def message_to_beacon(raw_message, reference_date):
if raw_message[0] != '#':
try:
message = parse_aprs(raw_message, reference_date)
# symboltable / symbolcodes used by OGN:
# I&: used as receiver
# /X: helicopter_rotorcraft
# /': glider_or_motorglider
# \^: powered_aircraft
# /g: para_glider
# /O: ?
# /^: ?
# \n: ?
# /z: ?
# /o: ?
if 'symboltable' not in message and 'symbolcode' not in message:
# we have a receiver_beacon (status message)
message.update(parse_ogn_receiver_beacon(message['comment']))
beacon = ReceiverBeacon(**message)
elif message['symboltable'] == "I" and message['symbolcode'] == '&':
# ... we have a receiver_beacon
if message['comment']:
message.update(parse_ogn_receiver_beacon(message['comment']))
message = parse(raw_message, reference_date)
if message['aprs_type'] == 'position':
message = replace_lonlat_with_wkt(message)
if message['beacon_type'] == 'aircraft_beacon':
beacon = AircraftBeacon(**message)
elif message['beacon_type'] == 'receiver_beacon':
beacon = ReceiverBeacon(**message)
else:
# ... we have a aircraft_beacon
message.update(parse_ogn_aircraft_beacon(message['comment']))
message = replace_lonlat_with_wkt(message)
beacon = AircraftBeacon(**message)
print("Whoops: what is this: {}".format(message))
except ParseError as e:
logger.error('Received message: {}'.format(raw_message))
logger.error('Drop packet, {}'.format(e.message))

Wyświetl plik

@ -1,6 +1,6 @@
from geoalchemy2.types import Geometry
from sqlalchemy import Column, String, Integer, Float, SmallInteger
from sqlalchemy.orm import relationship
from geoalchemy2.types import Geometry
from .base import Base

Wyświetl plik

@ -1,7 +1,7 @@
from geoalchemy2.shape import to_shape
from geoalchemy2.types import Geometry
from sqlalchemy import Column, String, Integer, Float, DateTime
from sqlalchemy.ext.declarative import AbstractConcreteBase
from geoalchemy2.types import Geometry
from geoalchemy2.shape import to_shape
from .base import Base
from .geo import Location

Wyświetl plik

@ -1,8 +1,8 @@
from sqlalchemy import Integer, DateTime, Column, ForeignKey, case, null
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import relationship
from .base import Base
from sqlalchemy.ext.hybrid import hybrid_property
class Logbook(Base):

Wyświetl plik

@ -1,7 +1,7 @@
from geoalchemy2.shape import to_shape
from geoalchemy2.types import Geometry
from sqlalchemy import Column, String, Integer, DateTime
from sqlalchemy.orm import relationship
from geoalchemy2.types import Geometry
from geoalchemy2.shape import to_shape
from .base import Base
from .geo import Location

Wyświetl plik

@ -1,16 +1,15 @@
import requests
import csv
import gzip
from io import StringIO
from aerofiles.seeyou import Reader
from geopy.exc import GeopyError
from geopy.geocoders import Nominatim
from ogn.parser.utils import feet2m
import requests
from .model import AddressOrigin, DeviceInfo, Airport, Location
from geopy.geocoders import Nominatim
from geopy.exc import GeopyError
from aerofiles.seeyou import Reader
from ogn.parser.utils import feet2m
import gzip
DDB_URL = "http://ddb.glidernet.org/download/?t=1"
@ -108,7 +107,7 @@ def get_airports(cupfile):
def open_file(filename):
"""Opens a regular or unzipped textfile for reading."""
f = open(filename,'rb')
f = open(filename, 'rb')
a = f.read(2)
f.close()
if (a == b'\x1f\x8b'):