A database backend for the Open Glider Network
 
 
 
 
 
 
Go to file
Konstantin Gründger 120d5daf6b Cleanup 2015-11-15 12:10:20 +01:00
ogn Cleanup 2015-11-15 12:10:20 +01:00
tests Cleanup 2015-11-15 12:10:20 +01:00
.gitignore
.travis.yml
CONTRIBUTORS
LICENSE
README.md
manage.py
requirements.txt

README.md

ogn-python

[Build Status] (https://travis-ci.org/Meisterschueler/ogn-python) [Coverage Status] (https://coveralls.io/r/Meisterschueler/ogn-python)

A python module for the Open Glider Network. The submodule 'ogn.gateway' is an aprs client, saving all received beacons into a database with SQLAlchemy. Other submodules process this data.

To schedule tasks like fetching ddb data, Celery with Redis is used.

Installation and Setup

  1. Install python requirements
pip install -r requirements.txt
  1. Install redis for asynchronous tasks ('ogn.collect.*')
$ apt-get install redis-server
  1. Create database
$ ./manage.py db.init

Running the aprs client and task server

This scripts run in the foreground and should be deamonized (eg. use supervisord).

# start aprs client
$ ./manage.py gateway.run

# start task server (make sure redis is up and running)
$ celery -A ogn.collect worker -l info

manage.py - CLI options

usage: manage.py [<namespace>.]<command> [<args>]

positional arguments:
  command     the command to run

optional arguments:
  -h, --help  show this help message and exit

available commands:

  [db]
    init                   Initialize the database.
    updateddb              Update the ddb data.

  [gateway]
    run                    Run the aprs client.

  [logbook]
    show                   Show a logbook for <airport_name> located at given position.

  [show.receiver]
    hardware_stats         Show some statistics of receiver hardware.
    list                   Show a list of all receivers.
    software_stats         Show some statistics of receiver sotware.

The task server must be running for db.updateddb.

TODO

  • Write celery backend and add task 'fetchddb'
  • Rewrite manage.py with https://github.com/Birdback/manage.py or flask-script
  • Rename existing cli commands
  • Document/Improve cli commands
  • Separate settings from module (currently at ogn/command/dbutils.py)
  • Enable granular data acquisition (eg. store receiver beacons only)
  • Database: Rename 'Flarm' to 'Device'?
  • Future Database-Migrations: Use Alembric?
  • Fix command/logbook.py (@Meisterschueler?)
  • Introduce scheduled tasks with 'celery beat' (eg. updateddb)

Scheduled tasks

  • ogn.collect.fetchddb (generate Flarm table)
  • ogn.collect.receiver (generate Receiver table)
  • ogn.collect.logbook (generate TaoffLanding table)

How to use virtualenv

$ sudo apt-get install python-virtualenv

$ virtualenv env
$ source env/bin/activate