pull/68/head
Konstantin Gründger 2019-01-30 20:29:56 +01:00
rodzic 0ea6a955e8
commit 6522bce14d
9 zmienionych plików z 14 dodań i 88 usunięć

Wyświetl plik

@ -1,6 +1,6 @@
from celery.utils.log import get_task_logger
from sqlalchemy import insert, distinct
from sqlalchemy import distinct
from sqlalchemy.sql import null, and_, func, not_, case
from sqlalchemy.dialects import postgresql
from sqlalchemy.dialects.postgresql import insert

Wyświetl plik

@ -1,9 +1,8 @@
from celery.utils.log import get_task_logger
from sqlalchemy import String, Date
from sqlalchemy import Date
from sqlalchemy import and_, insert, update, exists, between
from sqlalchemy.sql import func, null
from sqlalchemy.sql.expression import literal_column
from ogn.collect.celery import app
from ogn.model import AircraftBeacon, ReceiverCoverage

Wyświetl plik

@ -41,7 +41,7 @@ class LogfileDbSaver():
def get_datestrs(self, no_index_only=False):
"""Get the date strings from imported log files."""
index_clause = " AND hasindexes = FALSE" if no_index_only == True else ""
index_clause = " AND hasindexes = FALSE" if no_index_only else ""
self.cur.execute(("""
SELECT DISTINCT(RIGHT(tablename, 10))
@ -53,81 +53,13 @@ class LogfileDbSaver():
return [datestr[0].replace('_', '-') for datestr in self.cur.fetchall()]
def create_tables(self):
"""Create date dependant tables for log file import."""
"""Create date dependent tables for log file import."""
try:
self.cur.execute('CREATE EXTENSION IF NOT EXISTS postgis;')
self.cur.execute('CREATE EXTENSION IF NOT EXISTS btree_gist;')
self.cur.execute('DROP TABLE IF EXISTS "{}";'.format(self.aircraft_table))
self.cur.execute('DROP TABLE IF EXISTS "{}";'.format(self.receiver_table))
self.cur.execute("""
CREATE TABLE "{0}" (
location geometry,
altitude real,
name character varying,
dstcall character varying,
relay character varying,
receiver_name character varying(9),
"timestamp" timestamp without time zone,
track smallint,
ground_speed real,
address_type smallint,
aircraft_type smallint,
stealth boolean,
address character varying,
climb_rate real,
turn_rate real,
signal_quality real,
error_count smallint,
frequency_offset real,
gps_quality_horizontal smallint,
gps_quality_vertical smallint,
software_version real,
hardware_version smallint,
real_address character varying(6),
signal_power real,
distance real,
radial smallint,
quality real,
location_mgrs character varying(15),
location_mgrs_short character varying(9),
receiver_id int,
device_id int);
""".format(self.aircraft_table))
self.cur.execute("""
CREATE TABLE "{0}" (
location geometry,
altitude real,
name character varying,
receiver_name character varying(9),
dstcall character varying,
"timestamp" timestamp without time zone,
version character varying,
platform character varying,
cpu_load real,
free_ram real,
total_ram real,
ntp_error real,
rt_crystal_correction real,
voltage real,
amperage real,
cpu_temp real,
senders_visible integer,
senders_total integer,
rec_input_noise real,
senders_signal real,
senders_messages integer,
good_senders_signal real,
good_senders integer,
good_and_bad_senders integer,
receiver_id int);
""".format(self.receiver_table))
self.cur.execute('DROP TABLE IF EXISTS "{}"; SELECT INTO {} FROM aircraft_beacons WHERE 1 = 2;'.format(self.aircraft_table))
self.cur.execute('DROP TABLE IF EXISTS "{}"; SELECT INTO {} FROM receiver_beacons WHERE 1 = 2;'.format(self.receiver_table))
self.conn.commit()
except Exception as e:
raise Exception("I can't create the tables")

Wyświetl plik

@ -69,5 +69,3 @@ def process_raw_message(raw_message, reference_date=None, saver=saver):
logger.debug('Received message: {}'.format(raw_message))
message = string_to_message(raw_message, reference_date)
saver.add_message(message)

Wyświetl plik

@ -1,7 +1,6 @@
from geoalchemy2.shape import to_shape
from geoalchemy2.types import Geometry
from sqlalchemy import Column, String, SmallInteger, Float, DateTime
from sqlalchemy.sql import func
from sqlalchemy.ext.declarative import AbstractConcreteBase
from sqlalchemy.ext.hybrid import hybrid_property
@ -30,8 +29,8 @@ class Beacon(AbstractConcreteBase, Base):
aprs_type = None
# Debug information
raw_message = None #Column(String)
reference_timestamp = None #Column(DateTime, index=True)
raw_message = None
reference_timestamp = None
@hybrid_property
def location(self):

Wyświetl plik

@ -1,7 +1,5 @@
from sqlalchemy import Column, String, Integer, SmallInteger, Float, Date, ForeignKey, Index
from sqlalchemy.orm import relationship, backref
from sqlalchemy.sql import func
from .base import Base