Package: aiscot
DescriptionThe 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:https://ww.tak.govAISCOT was original developed to support an open ocean boat race in the Northern
Pacific Ocean, as described in this article:http://ampledata.org/boat_race_support.htmlConcept of OperationsAISCOT can operate in two different modes, as described in detail below:AIS Over-the-air (RF)AIS Aggregator (AISHUB)AIS Over-the-air Operation (RF)Receive AIS data from a VHF AIS receiver, such as the
MegwattdAISy+. From there
AIS can be decoded byAIS Dispatcherand
forwarded to AISCOT to be transformed to COT and transmitted to COT destinations.AIS Aggregator Operation (AISHUB.com)Receive AIS data from theAISHUBservice.
Requires a subscription to AISHUB.Support DevelopmentInstallationAISCOT requires Python 3.6 or above.AISCOT functionality is provided by a command-line tool calledaiscot, which can be
installed several ways.Installing as a Debian/Ubuntu Package [Use Me!]:$ wget https://github.com/ampledata/pytak/releases/latest/download/python3-pytak_latest_all.deb
$ sudo apt install -f ./python3-pytak_latest_all.deb
$ wget https://github.com/ampledata/aiscot/releases/latest/download/python3-aiscot_latest_all.deb
$ sudo apt install -f ./python3-aiscot_latest_all.debInstall from the Python Package Index [Alternative]:$ python3 -m pip install -U pytak
$ python3 -m pip install -U aiscotInstall from this source tree [Developer]:$ git clone https://github.com/ampledata/aiscot.git
$ cd aiscot/
$ python3 setup.py aiscotUsageAISCOT 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
-c CONFIG_FILE, --CONFIG_FILE CONFIG_FILE
                        Optional configuration file. Default: config.ini
-p PREF_PACKAGE, --PREF_PACKAGE PREF_PACKAGE
                        Optional connection preferences package zip file (aka Data Package).Configuration options:COT_URLstr,  default: udp://239.2.3.1:6969URL to CoT destination. Must be a URL, e.g.tcp://1.2.3.4:1234ortls://...:1234, etc. SeePyTAKfor options, including TLS support.AIS_PORTint, default: 5050AIS UDP Listen Port, for use with Over-the-air (RF) AIS.COT_STALEint, default: 3600CoT Stale period (“timeout”), in seconds. Default3600seconds (1 hour).COT_TYPEstr, default: a-u-S-X-MOverride COT Event Type (“marker type”).FEED_URLstr, optionalAISHUB feed URL. SeeAISHUB usage notesin README below.KNOWN_CRAFTstr, optionalKnown Craft hints file. CSV file containing callsign/marker hints.INCLUDE_ALL_CRAFTbool, optionalIf using KNOWN_CRAFT, still include other craft not in our KNOWN_CRAFT list.IGNORE_ATONbool, optionalIF SET- adsbcot will ignore AIS from Aids to Naviation (buoys, etc).See example-config.ini in the source tree for example configuration.AISHUB usage notesAISHUB.com 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:https://data.aishub.net/ws.php?format=1&output=json&compress=0&username=AISHUB_USERNAME&latmin=BBOX_LAT_MIN&latmax=BBOX_LAT_MAX&lonmin=BBOX_LON_MON&lonmax=BBOX_LON_MAXReplacingAISHUB_USERNAMEwith your AISHUB.com username, and specifying the
Bounding Box is specified as follows:latminsigned floatThe minimum latitude of the Bounding Box (degrees from Equator) as a signed float
(use negative sign for East:-).latmaxsigned floatThe maximum latitude of the Bounding Box (degrees from Equator) as a signed float
(use negative sign for East:-).lonminsigned floatThe minimum longitude of the Bound Box (degrees from Prime Meridian) as a signed float
(use negative sign for North:-).lonmaxsigned floatThe 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 SetupThe 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)Database UpdateOccasional updates to the YADD Ship Name database can be found at:http://www.yaddnet.org/pages/php/test/tmp/Updates to the MID database can be found at: TKSourceGithub:https://github.com/ampledata/aiscotAuthorGreg Albrechtoss@undef.nethttp://ampledata.org/Copyrightaiscot Copyright 2023 Greg Albrecht <oss@undef.net>pyAISm.py Copyright 2016 Pierre PayenLicenseCopyright 2023 Greg Albrecht <oss@undef.net>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 athttp://www.apache.org/licenses/LICENSE-2.0Unless 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.pyAISm.py is licensed under the MIT License. See aiscot/pyAISm.py for details.