Here's the code for the app which drives seab.us.
#Listener The listener program receives and processses marine telemetry data relayed from a raspberry pi with an RTL-SDR tuner running aisdecoder to decode AIS beacons.
#Web The flask app provides near realtime access to the seabus telemetry data via websocket push updates.
#Hacking The vagrantfile will get you most of the way to a working dev environment, may be a bit wonky though.
To set up:
- Activate virtualenv.
vagrant@vagrant-ubuntu-trusty-64:~/seabus$ source seabus/.venv/bin/activate
- Initialize empty database.
(.venv) vagrant@vagrant-ubuntu-trusty-64:~/seabus$ ./manage.py db upgrade
To run the web app:
(.venv) vagrant@vagrant-ubuntu-trusty-64:~/seabus$ ./manage.py rundev
To run the listener:
(.venv) vagrant@vagrant-ubuntu-trusty-64:~/seabus$ ./manage.py listendev
To send a few recorded seabus AIS update beacons to the running listener:
(.venv) vagrant@vagrant-ubuntu-trusty-64:~/seabus/seabus/nmea_listen$ ./sendbeacons.sh seabus_beacons.txt
#API
There is an experimental API read endpoint available at http://api.seab.us/data/v1. At the moment it requires no access key and provides the same data delivered to the web front end. Both of these things may change, watch this space!