kopia lustrzana https://github.com/glidernet/ogn-python
Refactoring
rodzic
0ea6a955e8
commit
6522bce14d
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue