aisdb.receiver module

aisdb.receiver.start_receiver(sqlite_dbpath='/aisdb_src/ais_rx.db', postgres_connection_string=None, connect_addr='aisdb.meridian.cs.dal.ca:9920', tcp_listen_addr=None, udp_listen_addr=None, multicast_addr=None, multicast_rebroadcast=None, tcp_output_addr=None, udp_output_addr=None, stdout=False)[source]

Receive raw AIS data from an upstream UDP data source, parse the data into JSON format, and create a websocket listener to send parsed results downstream. If dbpath is given, parsed data will be stored in an SQLite database.

Parameters:
  • sqlite_dbpath (Option<str>) – If given, raw messages will be parsed and stored in an SQLite database at this location

  • postgres_connection_string (Option<String>) – Postgres database connection string

  • connect_addr (Option<str>) – Optionally forward upstream TCP/TLS host to udp_listen_addr

  • tcp_listen_addr (str) – if not None, a thread will be spawned to forward TCP connections to incoming UDP port udp_listen_addr

  • udp_listen_addr (str) – UDP port to listen for incoming AIS data streams e.g. “0.0.0.0:9921” or “[::]:9921”

  • multicast_addr (str) – Raw UDP messages will be parsed and then routed to TCP socket listeners via this channel.

  • multicast_rebroadcast (Option<str>) – Optionally pass a UDP rebroadcast address where raw data will be filtered and rebroadcasted to this channel for e.g. forwarding to downstream networks

  • tcp_output_addr (str) – TCP port to listen for websocket clients to send parsed data in JSON format

  • stdout (bool) – If True, raw input will be copied to stdout