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 import os
from manager import Manager 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() 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.commands.dbutils import engine, session
from ogn.model import Base, AddressOrigin, AircraftBeacon, ReceiverBeacon, Device, Receiver from ogn.model import Base, AddressOrigin, AircraftBeacon, ReceiverBeacon, Device, Receiver
from ogn.utils import get_airports, open_file from ogn.utils import get_airports
from ogn.collect.database import update_device_infos
from sqlalchemy import insert, distinct from sqlalchemy import insert, distinct
from sqlalchemy.sql import null from sqlalchemy.sql import null
from manager import Manager
manager = Manager() manager = Manager()
ALEMBIC_CONFIG_FILE = "alembic.ini" ALEMBIC_CONFIG_FILE = "alembic.ini"

Wyświetl plik

@ -1,5 +1,5 @@
import os
import importlib import importlib
import os
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker 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 datetime
import re import re
from aerofiles.igc import Writer
from manager import Manager from manager import Manager
from ogn.commands.dbutils import session
from ogn.model import AircraftBeacon, Device
manager = Manager() manager = Manager()

Wyświetl plik

@ -2,17 +2,16 @@
from datetime import timedelta, datetime 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 import and_, or_
from sqlalchemy.orm import aliased 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() 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 manager import Manager
from ogn.commands.dbutils import session
from ogn.model import Airport
from sqlalchemy import and_, between from sqlalchemy import and_, between
manager = Manager() manager = Manager()

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -1,11 +1,11 @@
from datetime import datetime, timedelta 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 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() manager = Manager()
receiver_beacons_per_day = 24 * 60 / 5 receiver_beacons_per_day = 24 * 60 / 5

Wyświetl plik

@ -1,13 +1,9 @@
import logging 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 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() manager = Manager()

Wyświetl plik

@ -1,7 +1,9 @@
import logging import logging
from ogn.commands.dbutils import session from ogn.commands.dbutils import session
from ogn.model import AircraftBeacon, ReceiverBeacon, Location 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__) logger = logging.getLogger(__name__)
@ -19,33 +21,16 @@ def message_to_beacon(raw_message, reference_date):
if raw_message[0] != '#': if raw_message[0] != '#':
try: try:
message = parse_aprs(raw_message, reference_date) message = parse(raw_message, reference_date)
# symboltable / symbolcodes used by OGN: if message['aprs_type'] == 'position':
# 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 = replace_lonlat_with_wkt(message) message = replace_lonlat_with_wkt(message)
if message['beacon_type'] == 'aircraft_beacon':
beacon = AircraftBeacon(**message)
elif message['beacon_type'] == 'receiver_beacon':
beacon = ReceiverBeacon(**message) beacon = ReceiverBeacon(**message)
else: else:
# ... we have a aircraft_beacon print("Whoops: what is this: {}".format(message))
message.update(parse_ogn_aircraft_beacon(message['comment']))
message = replace_lonlat_with_wkt(message)
beacon = AircraftBeacon(**message)
except ParseError as e: except ParseError as e:
logger.error('Received message: {}'.format(raw_message)) logger.error('Received message: {}'.format(raw_message))
logger.error('Drop packet, {}'.format(e.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 import Column, String, Integer, Float, SmallInteger
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from geoalchemy2.types import Geometry
from .base import Base 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 import Column, String, Integer, Float, DateTime
from sqlalchemy.ext.declarative import AbstractConcreteBase from sqlalchemy.ext.declarative import AbstractConcreteBase
from geoalchemy2.types import Geometry
from geoalchemy2.shape import to_shape
from .base import Base from .base import Base
from .geo import Location from .geo import Location

Wyświetl plik

@ -1,8 +1,8 @@
from sqlalchemy import Integer, DateTime, Column, ForeignKey, case, null from sqlalchemy import Integer, DateTime, Column, ForeignKey, case, null
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from .base import Base from .base import Base
from sqlalchemy.ext.hybrid import hybrid_property
class Logbook(Base): 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 import Column, String, Integer, DateTime
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from geoalchemy2.types import Geometry
from geoalchemy2.shape import to_shape
from .base import Base from .base import Base
from .geo import Location from .geo import Location

Wyświetl plik

@ -1,16 +1,15 @@
import requests
import csv import csv
import gzip
from io import StringIO 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 .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" DDB_URL = "http://ddb.glidernet.org/download/?t=1"