A simple viewer and logger for data received by AIS-transponders or AIS-receivers.
Python
Latest commit 80a779e Aug 9, 2009 Erik Olsson Bugfix: don't fail sorting in alert/remark view
Due to a bug in WxPython, some unicode strings fail to compare in
the given __ColumnSorter. To fix this, a function was defined that
overrides __ColumnSorter and does the right thing(TM). This should
make sure that the window won't fail to show up when dealing with
unicode strings.

README.md

AIS Logger

AIS Logger is a simple viewer and logger for data received by AIS-transponders or -receivers.

In summary:

Features

  • Can capture raw data from several sources at the same time
  • Can act as a server for streaming raw data
  • Decodes standard NMEA AIS sentences as well as SAAB TransponderTech sentences
  • Logs data to a SQLite database
  • Plots positions on vector maps
  • Displays data in two fully sortable list views
  • Alerts can be set to notify user of approaching ships
  • Remarks can be added to ships

Status

The software is quite stable for daily use, but has some rough edges. The GUI is not as friendly as it could be with regards to helpful error messages and wizards. There are also a few GUI problems when running on *nix systems, but it is usable.

Dependencies

AIS Logger has a few, but large, dependencies that needs to be installed in order to use it. All of these should be readily available in package repositories on *nix systems. If you plan to use AIS Logger under Windows, please use a release binary as they are mostly self contained (see the install instructions below).

These are the run-time dependencies:

Installing

  • Installing from a binary release archive (Windows):

    Download and extract the archive to a location of your choosing. Create a suitable shortcut to aislogger.exe and enjoy.

    NOTE: You may have to install a few DLL files for AIS Logger to run. You may put them in the winnt\system directory or directly in the AIS Logger directory. Common missing files are gdiplus.dll (from GDI+), msvcp90.dll and msvcr90.dll (both from Visual C++).

  • Installing from a release tarball (*nix):

    Download and extract the archive to a temporary location and then do:

      $ python setup.py install   # As root
      $ aislogger                 # As normal user to start program
    
  • Installing from git (*nix):

    To compile the documentation you will need markdown in your path. Then clone from Github, and do:

      $ make doc                  # Generates manual (not necessary)
      $ python setup.py install   # As root
      $ aislogger                 # As normal user to start program
    

Uninstalling

  • A binary release

    Simply delete the directory containing AIS Logger.

  • A source release installed with setup.py

    Find the site-packages directory under your python installation directory (typically /usr/lib/pythonX.X/site-packages/ on *nix). Delete the aislogger directory and the file aislogger-XXXX-pyX.X.egg-info. You also have to delete the script aislogger (typically in /usr/bin under *nix). Done.

Configuring

When running on Windows and saving the configuration file, you can safely save the configuration file to the program directory.

Under *nix, you cannot save the configuration file directly to the suggested directory because you don't have permission to write to the AIS Logger directory. Please save the configuration file in your home directory and start the program with the -c switch and the config file:

    $ aislogger -c myconfigfile.ini

Building on Windows

To build AIS Logger on Windows, first install all dependencies given above. You will also need to install py2exe to build the distribution (any modern version should do).

Extract the source archive to a directory. Then run the following command:

    > python setup.py py2exe

You may need to use the full path to your python installation if it's not in your $PATH. The result of the build is now in the directory "dist" and is ready to run and distribute.

Known issues

  • Color depth needs to be 24 bits.
  • The GUI looks bad (wrong positioning of widgets) on *nix systems.

Questions, comments or code

  • See the doc/ directory for current documentation.
  • Got questions or bug reports? Contact me.
  • Contribute by forking on Github or send patches by email.

Background information on AIS

Automatic Identification System is a system used to identify and locate maritime vessels. Transponders automatically broadcast information via a VHF transceiver, so called “messages”, containing data such as the vessels current position, heading, speed, name and radio callsign. To receive these messages you will need either a full-fledged transponder or a special receiver that communicate with a computer through a serial interface. In theory, you could use a standard VHF-scanner and a sound card to intercept AIS messages, but this is currently not supported in AIS Logger. For this you could try GNU AIS instead.

External code in AIS Logger

The following code is used by, and distributed with, AIS Logger but is externally developed: