Why Westerschelde?
- The Westerschelde is a busy shipping lane with continuous activity of a variety of vessels.
- There are several land-based AIS receivers, providing good coverage.
- I am familiar with the waterway, harbours and some of the ships.
Implementations:
#1: firebase AIS
My local server runs the python backend, for asynchroneous parsing of a somewhat downsampled realtime AIS datastream. The backend script updates a google firebase database several times per second. In the javascript frontend, hosted on a commercial webspace, database events trigger realtime updates to a google custom map, rendered on the firebase_AIS webpage.
#2: open source AIS
Currently still a work in progress. Another local python backend parses the AIS datastream to a data object in memory, which is supplied to the javascript frontend as a JSON object, at a specified time interval (once every minute). Ship data are refreshed via AJAX. Map visualization employs the Leaflet javascript library. Map tiles are sourced from OpenStreetMap, Bing Aerial and OpenSeaMap. opensource_AIS, as of now, is just a rudimentary development snapshot.
Green Computing
The backends run on a headless Raspberry Pi 4, that consumes less than 5 Watts of power.
Why conceive a homemade AIS viewer?
As ever so often, the project spiraled out of hand, starting off from a sailing skipper's interest in the technical principles and data structures of AIS, including the peculiar 6 bit encoding.
Encouraged by a humble GPS parser and navigation program, decoding AIS datastreams in a python backend was a logical next step. With that, the need for visualization arose, leading to the javascript frontend.
Once a working solution, depending on proprietary services, was at hand, the idea of a second implementation with open source tools was born.
All very basic.
All just for fun.
What is AIS?
Principles:
The automatic identification system (AIS) is an information and tracking system that uses VHF transceivers on ships, to disseminate information to surrounding vessels, and conversely, to receive information from them.
AIS Data:
Ships broadcast static data (e.g. their unique Maritmime Mobile Service Identity, vessel name, and voyage related data) as well as dynamic data (e.g. position, course, and speed).
Message density:
Depending on vessel category, navigational status, and speed, any given ship may emit AIS messages at intervals of 2 - 30 seconds.
Collision Avoidance:
AIS complements radar for situational awareness and collision avoidance. AIS signals may be received by ships, maritime vessel traffic services, commercial or private land-based stations, as well as by satellites.
Vessel tracking:
A number of companies supply global AIS data to subscription customers, who may be fleet owners, logistic providers, freight proprietors, financial services and insurance companies, amongst others. Often, a limited functionality is made available to the public via dedicated websites.