Skip to main content

AIS Cursor-On-Target Gateway.

Project description

Screenshot of AIS as COT PLI in ATAK.


The Automatic Identification System to Cursor on Target gateway (AISCOT) transforms automatic identification system (AIS) to Cursor on Target (CoT) for use with TAK products such as ATAK, WinTAK & iTAK. Vessels sending AIS either over the air (RF), through a local networks (NMEA), or through internet aggregators (AISHUB), will be displayed in TAK with appropriate icons, attitude, type, track, bearing, speed, callsign and more.

For more information the TAK Product suite, see:

AISCOT was original developed to support an open ocean boat race in the Northern Pacific Ocean, as described in this article:

Concept of Operations

AISCOT can operate in two different modes, as described in detail below:

  1. AIS Over-the-air (RF)

  2. AIS Aggregator (AISHUB)

AIS Over-the-air Operation (RF)

AISCOT "AIS Over the Air" Operation

Receive AIS data from a VHF AIS receiver, such as the Megwatt dAISy+. From there AIS can be decoded by AIS Dispatcher and forwarded to AISCOT to be transformed to COT and transmitted to COT destinations.

AIS Aggregator Operation (

AISCOT "AIS Aggregator" Operation

Receive AIS data from the AISHUB service. Requires a subscription to AISHUB.

Support Development

Support Development: Buy me a coffee!


AISCOT requires Python 3.6 or above.

AISCOT functionality is provided by a command-line tool called aiscot, which can be installed several ways.

Installing as a Debian/Ubuntu Package [Use Me!]:

$ wget
$ sudo apt install -f ./python3-pytak_latest_all.deb
$ wget
$ sudo apt install -f ./python3-aiscot_latest_all.deb

Install from the Python Package Index [Alternative]:

$ python3 -m pip install -U pytak
$ python3 -m pip install -U aiscot

Install from this source tree [Developer]:

$ git clone
$ cd aiscot/
$ python3 aiscot


AISCOT can be configured with a INI-style configuration file, or using environmental variables.

Command-line options:

usage: aiscot [-h] [-c CONFIG_FILE] [-p PREF_PACKAGE]

optional arguments:
-h, --help            show this help message and exit
                        Optional configuration file. Default: config.ini
                        Optional connection preferences package zip file (aka Data Package).
Configuration options:
COT_URLstr, default: udp://

URL to CoT destination. Must be a URL, e.g. tcp:// or tls://...:1234, etc. See PyTAK for options, including TLS support.

AIS_PORTint, default: 5050

AIS UDP Listen Port, for use with Over-the-air (RF) AIS.

COT_STALEint, default: 3600

CoT Stale period (“timeout”), in seconds. Default 3600 seconds (1 hour).

COT_TYPEstr, default: a-u-S-X-M

Override COT Event Type (“marker type”).

FEED_URLstr, optional

AISHUB feed URL. See AISHUB usage notes in README below.

KNOWN_CRAFTstr, optional

Known Craft hints file. CSV file containing callsign/marker hints.

INCLUDE_ALL_CRAFTbool, optional

If using KNOWN_CRAFT, still include other craft not in our KNOWN_CRAFT list.

IGNORE_ATONbool, optional

IF SET- adsbcot will ignore AIS from Aids to Naviation (buoys, etc).

See example-config.ini in the source tree for example configuration.

AISHUB usage notes requires registration. Once registered the site will provide you with a Username that you’ll use with their feed. You’ll also need to specify a Bounding Box when accessing the feed.

The AISHUB_URL must be specified as follows:

Replacing AISHUB_USERNAME with your username, and specifying the Bounding Box is specified as follows:

latminsigned float

The minimum latitude of the Bounding Box (degrees from Equator) as a signed float (use negative sign for East: -).

latmaxsigned float

The maximum latitude of the Bounding Box (degrees from Equator) as a signed float (use negative sign for East: -).

lonminsigned float

The minimum longitude of the Bound Box (degrees from Prime Meridian) as a signed float (use negative sign for North: -).

lonmaxsigned float

The maximum longitude of the Bound Box (degrees from Prime Meridian) as a signed float (use negative sign for North: -).

For example, the following Bound Box paints a large swath around Northern California: latmin=35&latmax=38&lonmin=-124&lonmax=-121. This can be read as: “Between 35° and 38° latitude & -121° and -124° longitude”.

Example Setup

The following diagram shows an example setup of AISCOT utilizing a dAISy+ AIS receiver with an outboard Marine VHF antenna, a Raspberry Pi running aisdispatcher and AISCOT, forwarding COT to a TAK Server and WinTAK & ATAK clients. (OV-1)

AISCOT Example setup

Database Update

Occasional updates to the YADD Ship Name database can be found at:

Updates to the MID database can be found at: TK




Greg Albrecht


Copyright 2023 Greg Albrecht <>

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

  • is licensed under the MIT License. See aiscot/ for details.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiscot-5.2.1.tar.gz (770.0 kB view hashes)

Uploaded Source

Built Distribution

aiscot-5.2.1-py3-none-any.whl (773.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page