AISViz / AISdb

AISdb Python package for smart AIS data storage and interaction.
https://aisviz.cs.dal.ca
GNU Affero General Public License v3.0
7 stars 0 forks source link
ais-data ais-receiver ais-tracking spatial-analysis spatial-data spatial-data-science spatial-database spatial-index

.. |space| unicode:: 0xA0

General Information

.. raw:: html

Commits in the Repository

Licensing and Integration

.. raw:: html

CI status CodeQL status Test installation status

Documentation and Tutorials

.. |aisgpt| image:: https://img.shields.io/website?url=https%3A%2F%2Fchat.openai.com/g/g-hTTH0rUBv-aisdb-assistant :target: https://img.shields.io/website?url=https%3A%2F%2Fchat.openai.com/g/g-hTTH0rUBv-aisdb-assistant .. |aisviz| image:: https://img.shields.io/website?url=https%3A%2F%2Faisviz.github.io :target: https://img.shields.io/website?url=https%3A%2F%2Faisviz.github.io .. |aisdb_doc| image:: https://img.shields.io/website?url=https%3A%2F%2Faisviz.gitbook.io/documentation/ :target: https://img.shields.io/website?url=https%3A%2F%2Faisviz.gitbook.io/documentation/ .. |aisdb_tut| image:: https://img.shields.io/website?url=https%3A%2F%2Faisviz.gitbook.io/tutorials/ :target: https://img.shields.io/website?url=https%3A%2F%2Faisviz.gitbook.io/tutorials/ .. |aisdb_rtd| image:: https://img.shields.io/website?url=https%3A%2F%2Faisdb.meridian.cs.dal.ca/doc/readme.html :target: https://img.shields.io/website?url=https%3A%2F%2Faisdb.meridian.cs.dal.ca/doc/readme.html

🚢 AISdb Package Overview

AISdb is an open-source database management system that supports storing, retrieving, analyzing, and visualizing data from the Automatic Identification System (AIS). This system is engineered to manage the vast amounts of data generated by maritime traffic, making it an essential tool for research and development initiatives within the marine industry and government bodies. AISdb utilizes the capabilities of both SQLite and PostgreSQL, ensuring a highly flexible and scalable data management framework. This adaptability allows AISdb to cater to a wide range of needs, from localized data handling to comprehensive server-based deployments, making it a key resource for stakeholders and research enthusiasts across the maritime sector.

📌 AISdb has an extensive set of tools adaptable to different sizes of projects:

📌 AISdb is built with a focus on high performance, scalability, and ease of use:

📌 The AISdb visualization module runs locally on the browser (outdated) :

.. image:: https://aisdb.meridian.cs.dal.ca/readme_example.png :width: 700px :align: center

📢 What is AIS Data?

Automatic Identification System (AIS) messages are critical data packets transmitted by vessels and AIS base stations to communicate essential navigational and identification information across the maritime domain. These messages play a significant role in facilitating a safe and efficient flow of marine traffic by ensuring that vessels within proximity know each other's presence, course, and navigational intentions.

Structured Data Exchange

AIS messages are encoded in a highly structured format and categorized into distinct types, each designed to serve specific informational needs. The commonly encountered messages in maritime operations include:

🚨 Although AIS messages are rich in information, open-source AIS is usually limited to positional data.

🌐 Encoding and Transmission

AIS messages are transmitted using VHF radio frequencies, which ensures reliable coverage even in harsh weather conditions. The messages are encoded in a standardized format that promotes interoperability among different AIS equipment manufacturers and facilitates seamless integration with global maritime traffic management systems. To collect these messages, on-shore antennas or low-orbit satellites are used. The temporal resolution of the AIS data varies with the collection method used to capture messages.

Significance in Maritime Operations

AIS messages are more than just a tool for tracking vessels. They are a valuable resource for vessel operators, maritime authorities, and traffic management centers, as they provide real-time information on maritime traffic. This data helps these entities make informed decisions, increase situational awareness, and proactively address potential navigational hazards. The availability of AIS data has also led to the development of secondary applications, such as maritime research, environmental monitoring, and the creation of advanced navigational algorithms that optimize shipping routes and reduce the environmental impact of maritime operations. AISdb is an example of an application that is sourced on the importance of AIS.

📚 For more information about AIS and its inner-workings, you may want to check these links:

📦 Installing

To set up AISdb in your environment, follow these commands in your terminal:

.. code-block::

python -m venv AISdb  # Create and activate a virtual environment
source AISdb/bin/activate  # On Windows use `AISdb\Scripts\activate`
pip install aisdb  # Install the latest pre-compiled AISdb from PyPI

🚧 Developing

For developers looking to contribute to AISdb or integrate it into more extensive projects, the following steps outline how to prepare a development environment for AISdb. This includes setting up a virtual environment, activating it, and installing AISdb along with the tools required for development:

.. code-block::

python -m venv AISdb  # Create and activate a virtual environment for AISdb
source AISdb/bin/activate  # On Windows use `AISdb\Scripts\activate`

# Cloning the Repository and installing the package
git clone https://github.com/AISViz/AISdb.git && cd aisdb

# Windows users can instead download the installer:
#   - https://forge.rust-lang.org/infra/other-installation-methods.html#rustup
#   - https://static.rust-lang.org/rustup/dist/i686-pc-windows-gnu/rustup-init.exe
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > install-rust.sh

# Installing Rust and Maturin
/bin/bash install-rust.sh -q -y
pip install --upgrade maturin[patchelf]

# Building AISdb package with Maturin
maturin develop --release --extras=test,docs