The Python program for the reception of ATIS.

What is ATIS
ATIS is the abbreviation for Automatic Transmitter Identification System. It is a system for automatic identification of marine VHF radios (European coastal and inland).
If the ATIS-code of the ship is built in the marine radio, the transmitter is automatically identified. The ATIS code is a digital signal, two tones (1300 and 2100 Hz). By means of this ATIS code, bridges, locks and harbours can see who is calling them.

Locks at Gaarkeuken

Decoding ATIS identifications with a program written in Python
I do live close to the locks in Gaarkeuken. So it would be nice to make a program to decode these ATIS codes. When a ship does call the locks, this code is transmitted at the end of the transmission.
When an ATIS code has been received, the Python program makes a text file with the name of the decoded ATIS code. In that text file, the time, code and country code is written. If the ATIS code has been received before, the new date and time is appended to the existing text file. So every ATIS code has one specific text file. In that text file, you can read how often and when that code has been received. If you do not activate the ATIS logging, the information is only displayed on the screen and no text files will be made. As an extra, this program should be able to decode DSC (Digital Selective Calling) signals of ships. It are messages for the maritime traffic on sea, but it has never been tested. The information is displayed on the screen, and when DSC logging is activated, also in the file "DSClogfile.txt".

With this Python program, ATIS identification codes
can be decoded and stored in a directory on the PC.

Reception of the ATIS identification signals
The radio signals can be received with an old fashioned radio scanner. The LF output is connected via a series resistor of 10k to the audio input of the PC. This resistor is a protection for the audio input. The radio frequency for bridges and locks is 156.900 MHz for ships. For DSC signals, the frequency is 156.525 MHz.

Reception of the ATIS signals with a scanner.
It turned out to be difficult to see if data was being received or that the program is working. That is why this Version 02 has a test mode so that you can see the status of the audio buffer and the level of the audio signal.
This version is also suitable for the Raspberry Pi 2B, you have to change the sample rate from 22050 to 11025 samples/sec. And you have to install the "Pulse" audio platform on the Raspberry Pi. This is used for the downsampling of the audio stream. Type the following commands in a terminal window:
sudo apt-get install pulseaudio
sudo apt-get install pavucontrol is suitable for a Raspberry Pi. It has also a test mode.
And, as you can see, it can indeed decode DSC messages!


Before you are using this program, you have to install Python. That is very simple. But read first something about Python by clicking the following link:


As the source code of Python is written in ASCII, it is very simple to modify the program to you own requirements. Think for example about the size of the screen, the colors etc.

Required Python version:

Required external modules (site-packages for the correct Python version!):
Download here the Python program by clicking the link here below: