aiscot


Nameaiscot JSON
Version 5.2.1 PyPI version JSON
download
home_pagehttps://github.com/ampledata/aiscot
SummaryAIS Cursor-On-Target Gateway.
upload_time2023-02-13 01:01:35
maintainer
docs_urlNone
authorGreg Albrecht
requires_python
licenseApache License, Version 2.0
keywords sailing ais cursor on target atak tak cot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            AISCOT - AIS Cursor on Target Gateway
*************************************

.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/screenshot_1676076870_2962.png
   :alt: Screenshot of AIS as COT PLI in ATAK.
   :target: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/screenshot_1676076870_2962.png

Description
===========

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: https://ww.tak.gov

AISCOT 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.html


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)**

.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/aiscot_ota.png
   :alt: AISCOT "AIS Over the Air" Operation

Receive AIS data from a VHF AIS receiver, such as the 
Megwatt `dAISy+ <https://shop.wegmatt.com/products/daisy-ais-receiver>`_. From there 
AIS can be decoded by `AIS Dispatcher <https://www.aishub.net/ais-dispatcher>`_ and 
forwarded to AISCOT to be transformed to COT and transmitted to COT destinations.

**AIS Aggregator Operation (AISHUB.com)**

.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/aiscot_agg.png
   :alt: AISCOT "AIS Aggregator" Operation

Receive AIS data from the `AISHUB <https://www.aishub.com>`_ service. 
Requires a subscription to AISHUB.


Support Development
===================

.. image:: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png
    :target: https://www.buymeacoffee.com/ampledata
    :alt: Support Development: Buy me a coffee!


Installation
============

**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 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.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 https://github.com/ampledata/aiscot.git
    $ cd aiscot/
    $ python3 setup.py aiscot


Usage
=====

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
    -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_URL`` : str,  default: udp://239.2.3.1:6969
        URL to CoT destination. Must be a URL, e.g. ``tcp://1.2.3.4:1234`` or ``tls://...:1234``, etc. See `PyTAK <https://github.com/ampledata/pytak#configuration-parameters>`_ for options, including TLS support.
    ``AIS_PORT`` : int, default: 5050
        AIS UDP Listen Port, for use with Over-the-air (RF) AIS.
    ``COT_STALE`` : int, default: 3600
        CoT Stale period ("timeout"), in seconds. Default `3600` seconds (1 hour).
    ``COT_TYPE`` : str, default: a-u-S-X-M
        Override COT Event Type ("marker type").
    ``FEED_URL`` : str, optional
        AISHUB feed URL. See **AISHUB usage notes** in README below.
    ``KNOWN_CRAFT`` : str, optional
        Known Craft hints file. CSV file containing callsign/marker hints.
    ``INCLUDE_ALL_CRAFT`` : bool, optional
        If using KNOWN_CRAFT, still include other craft not in our KNOWN_CRAFT list.
    ``IGNORE_ATON`` : bool, 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**

AISHUB.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_MAX``

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

latmin : signed float
    The minimum latitude of the Bounding Box (degrees from Equator) as a signed float 
    (use negative sign for East: ``-``).
latmax : signed float
    The maximum latitude of the Bounding Box (degrees from Equator) as a signed float
    (use negative sign for East: ``-``).
lonmin : signed float
    The minimum longitude of the Bound Box (degrees from Prime Meridian) as a signed float
    (use negative sign for North: ``-``).
lonmax : signed 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)


.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/aiscot_home.png
   :alt: AISCOT Example setup


Database Update
===============
Occasional 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: TK  


Source
======
Github: https://github.com/ampledata/aiscot


Author
======
Greg Albrecht oss@undef.net

http://ampledata.org/


Copyright
=========

* aiscot Copyright 2023 Greg Albrecht <oss@undef.net>
* pyAISm.py Copyright 2016 Pierre Payen


License
=======

Copyright 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 at http://www.apache.org/licenses/LICENSE-2.0

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.

* pyAISm.py is licensed under the MIT License. See aiscot/pyAISm.py for details.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ampledata/aiscot",
    "name": "aiscot",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Sailing,AIS,Cursor on Target,ATAK,TAK,CoT",
    "author": "Greg Albrecht",
    "author_email": "oss@undef.net",
    "download_url": "https://files.pythonhosted.org/packages/d7/ef/362fbec2328253629a1101b692fc4ef36781cd9dc3b337101f000060a7b0/aiscot-5.2.1.tar.gz",
    "platform": null,
    "description": "AISCOT - AIS Cursor on Target Gateway\n*************************************\n\n.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/screenshot_1676076870_2962.png\n   :alt: Screenshot of AIS as COT PLI in ATAK.\n   :target: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/screenshot_1676076870_2962.png\n\nDescription\n===========\n\nThe Automatic Identification System to Cursor on Target gateway (AISCOT) transforms \nautomatic identification system (AIS) to Cursor on Target (CoT) for use with TAK \nproducts such as ATAK, WinTAK & iTAK. Vessels sending AIS either \nover the air (RF), through a local networks (NMEA), or through internet aggregators \n(AISHUB), will be displayed in TAK with appropriate icons, attitude, type, track, \nbearing, speed, callsign and more.\n\nFor more information the TAK Product suite, see: https://ww.tak.gov\n\nAISCOT was original developed to support an open ocean boat race in the Northern \nPacific Ocean, as described in this article: http://ampledata.org/boat_race_support.html\n\n\nConcept of Operations\n=====================\n\nAISCOT can operate in two different modes, as described in detail below:\n\n1. AIS Over-the-air (RF)\n2. AIS Aggregator (AISHUB)\n\n**AIS Over-the-air Operation (RF)**\n\n.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/aiscot_ota.png\n   :alt: AISCOT \"AIS Over the Air\" Operation\n\nReceive AIS data from a VHF AIS receiver, such as the \nMegwatt `dAISy+ <https://shop.wegmatt.com/products/daisy-ais-receiver>`_. From there \nAIS can be decoded by `AIS Dispatcher <https://www.aishub.net/ais-dispatcher>`_ and \nforwarded to AISCOT to be transformed to COT and transmitted to COT destinations.\n\n**AIS Aggregator Operation (AISHUB.com)**\n\n.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/aiscot_agg.png\n   :alt: AISCOT \"AIS Aggregator\" Operation\n\nReceive AIS data from the `AISHUB <https://www.aishub.com>`_ service. \nRequires a subscription to AISHUB.\n\n\nSupport Development\n===================\n\n.. image:: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\n    :target: https://www.buymeacoffee.com/ampledata\n    :alt: Support Development: Buy me a coffee!\n\n\nInstallation\n============\n\n**AISCOT requires Python 3.6 or above.**\n\nAISCOT functionality is provided by a command-line tool called ``aiscot``, which can be \ninstalled several ways.\n\nInstalling as a Debian/Ubuntu Package [Use Me!]::\n\n    $ wget https://github.com/ampledata/pytak/releases/latest/download/python3-pytak_latest_all.deb\n    $ sudo apt install -f ./python3-pytak_latest_all.deb\n    $ wget https://github.com/ampledata/aiscot/releases/latest/download/python3-aiscot_latest_all.deb\n    $ sudo apt install -f ./python3-aiscot_latest_all.deb\n\nInstall from the Python Package Index [Alternative]::\n\n    $ python3 -m pip install -U pytak\n    $ python3 -m pip install -U aiscot\n\nInstall from this source tree [Developer]::\n\n    $ git clone https://github.com/ampledata/aiscot.git\n    $ cd aiscot/\n    $ python3 setup.py aiscot\n\n\nUsage\n=====\n\nAISCOT can be configured with a INI-style configuration file, or using \nenvironmental variables.\n\nCommand-line options::\n\n    usage: aiscot [-h] [-c CONFIG_FILE] [-p PREF_PACKAGE]\n\n    optional arguments:\n    -h, --help            show this help message and exit\n    -c CONFIG_FILE, --CONFIG_FILE CONFIG_FILE\n                            Optional configuration file. Default: config.ini\n    -p PREF_PACKAGE, --PREF_PACKAGE PREF_PACKAGE\n                            Optional connection preferences package zip file (aka Data Package).\n\nConfiguration options:\n    ``COT_URL`` : str,  default: udp://239.2.3.1:6969\n        URL to CoT destination. Must be a URL, e.g. ``tcp://1.2.3.4:1234`` or ``tls://...:1234``, etc. See `PyTAK <https://github.com/ampledata/pytak#configuration-parameters>`_ for options, including TLS support.\n    ``AIS_PORT`` : int, default: 5050\n        AIS UDP Listen Port, for use with Over-the-air (RF) AIS.\n    ``COT_STALE`` : int, default: 3600\n        CoT Stale period (\"timeout\"), in seconds. Default `3600` seconds (1 hour).\n    ``COT_TYPE`` : str, default: a-u-S-X-M\n        Override COT Event Type (\"marker type\").\n    ``FEED_URL`` : str, optional\n        AISHUB feed URL. See **AISHUB usage notes** in README below.\n    ``KNOWN_CRAFT`` : str, optional\n        Known Craft hints file. CSV file containing callsign/marker hints.\n    ``INCLUDE_ALL_CRAFT`` : bool, optional\n        If using KNOWN_CRAFT, still include other craft not in our KNOWN_CRAFT list.\n    ``IGNORE_ATON`` : bool, optional\n        IF SET- adsbcot will ignore AIS from Aids to Naviation (buoys, etc).\n\nSee example-config.ini in the source tree for example configuration.\n\n**AISHUB usage notes**\n\nAISHUB.com requires registration. Once registered the site will provide you with a\nUsername that you'll use with their feed. You'll also need to specify a Bounding Box \nwhen accessing the feed. \n\nThe AISHUB_URL must be specified as follows:\n\n``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_MAX``\n\nReplacing ``AISHUB_USERNAME`` with your AISHUB.com username, and specifying the \nBounding Box is specified as follows:\n\nlatmin : signed float\n    The minimum latitude of the Bounding Box (degrees from Equator) as a signed float \n    (use negative sign for East: ``-``).\nlatmax : signed float\n    The maximum latitude of the Bounding Box (degrees from Equator) as a signed float\n    (use negative sign for East: ``-``).\nlonmin : signed float\n    The minimum longitude of the Bound Box (degrees from Prime Meridian) as a signed float\n    (use negative sign for North: ``-``).\nlonmax : signed float\n    The maximum longitude of the Bound Box (degrees from Prime Meridian) as a signed float \n    (use negative sign for North: ``-``).\n\nFor example, the following Bound Box paints a large swath around Northern California: \n``latmin=35&latmax=38&lonmin=-124&lonmax=-121``. This can be read as: \n\"Between 35\u00b0 and 38\u00b0 latitude & -121\u00b0 and -124\u00b0 longitude\".\n\n\n\nExample Setup\n=============\n\nThe following diagram shows an example setup of AISCOT utilizing a dAISy+ AIS receiver \nwith an outboard Marine VHF antenna, a Raspberry Pi running aisdispatcher and AISCOT, \nforwarding COT to a TAK Server and WinTAK & ATAK clients. (OV-1)\n\n\n.. image:: https://raw.githubusercontent.com/ampledata/aiscot/main/docs/aiscot_home.png\n   :alt: AISCOT Example setup\n\n\nDatabase Update\n===============\nOccasional updates to the YADD Ship Name database can be found at: http://www.yaddnet.org/pages/php/test/tmp/\n\nUpdates to the MID database can be found at: TK  \n\n\nSource\n======\nGithub: https://github.com/ampledata/aiscot\n\n\nAuthor\n======\nGreg Albrecht oss@undef.net\n\nhttp://ampledata.org/\n\n\nCopyright\n=========\n\n* aiscot Copyright 2023 Greg Albrecht <oss@undef.net>\n* pyAISm.py Copyright 2016 Pierre Payen\n\n\nLicense\n=======\n\nCopyright 2023 Greg Albrecht <oss@undef.net>\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n* pyAISm.py is licensed under the MIT License. See aiscot/pyAISm.py for details.\n",
    "bugtrack_url": null,
    "license": "Apache License, Version 2.0",
    "summary": "AIS Cursor-On-Target Gateway.",
    "version": "5.2.1",
    "project_urls": {
        "Homepage": "https://github.com/ampledata/aiscot"
    },
    "split_keywords": [
        "sailing",
        "ais",
        "cursor on target",
        "atak",
        "tak",
        "cot"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "32785b5f246fd503621712d257e88dc8a1dcda12cce0728b7891ef09871a6204",
                "md5": "3887160cf604c896c255931c7914c182",
                "sha256": "e994a143c144da54ddbd48601a8473be5e9647cc70aeff3024284e67ec485db3"
            },
            "downloads": -1,
            "filename": "aiscot-5.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3887160cf604c896c255931c7914c182",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 773329,
            "upload_time": "2023-02-13T01:01:33",
            "upload_time_iso_8601": "2023-02-13T01:01:33.077478Z",
            "url": "https://files.pythonhosted.org/packages/32/78/5b5f246fd503621712d257e88dc8a1dcda12cce0728b7891ef09871a6204/aiscot-5.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d7ef362fbec2328253629a1101b692fc4ef36781cd9dc3b337101f000060a7b0",
                "md5": "eb3f2d180670451a8a56d8b47ac7b5e2",
                "sha256": "9df21fd8e1f1de67bd199f8697737f7701aa0dcffbaba477bf772b902171b685"
            },
            "downloads": -1,
            "filename": "aiscot-5.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "eb3f2d180670451a8a56d8b47ac7b5e2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 769984,
            "upload_time": "2023-02-13T01:01:35",
            "upload_time_iso_8601": "2023-02-13T01:01:35.185358Z",
            "url": "https://files.pythonhosted.org/packages/d7/ef/362fbec2328253629a1101b692fc4ef36781cd9dc3b337101f000060a7b0/aiscot-5.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-02-13 01:01:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ampledata",
    "github_project": "aiscot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "aiscot"
}
        
Elapsed time: 0.26362s