Skip to content

IQTLabs/edgetech-object-ledger

Repository files navigation

Contributors Forks Stargazers Issues MIT License


EdgeTech Object Ledger

This project manages a ledger of moving objects, such as aircraft or ships, that can be used for pointing a camera at the object.

In more detail, the object ledger subscribes to MQTT message topics for ADS-B messages, which provide aircraft position and velocity, and AIS messages, which provide ship position and velocity. Each messages corresponds to a uniquely identifiable object which is used to update a ledger by unique identifier. A figure of merit is computed for each object, and one object selected for tracking. The ledger is maintained in a Pandas DataFrame, which is serialized to local storage so that the history of objects selected for tracking can be used by the figure of merit calculation. All object ledger parameters can be customized through environment variables, or using an MQTT message published to a configuration topic. Units of measure are meters, seconds, and degrees, and operation of the object ledger is extensively logged.

Usage

This module is designed to be used in concert with other modules to build a complete tracking system. SkyScan, which tracks aircraft using ADS-B transmissions, is an example of the type of system that can be built.

Checkout the docker-compose.yml in that repo to see how these modules can be connected together. The configuration for the system is stored in .env environment files. Examples of the different environment files are included in the SkyScan repo and can be configured them to match your setup.

Built With

Python Poetry Docker

Roadmap

  • TBA

See the open issues for a full list of proposed features (and known issues).

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b dev)
  3. Commit your Changes (git commit -m 'adding some feature')
  4. Run (and make sure they pass):
black --diff --check *.py

pylint --disable=all --enable=unused-import *.py

mypy --allow-untyped-decorators --ignore-missing-imports --no-warn-return-any --strict --allow-subclassing-any *.py

If you do not have them installed, you can install them with pip install "black<23" pylint==v3.0.0a3 mypy==v0.991.

  1. Push to the Branch (git push origin dev)
  2. Open a Pull Request

See CONTRIBUTING.md for more information.

License

Distributed under the Apache 2.0. See LICENSE.txt for more information.

Contact IQTLabs

See our other projects: https://github.com/IQTLabs/

(back to top)

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 5