Skip to content

Instantly share code, notes, and snippets.

@M0r13n
Created September 1, 2024 11:23
Show Gist options
  • Save M0r13n/164cb0fa1bf9ab51a9c099a413afb5a0 to your computer and use it in GitHub Desktop.
Save M0r13n/164cb0fa1bf9ab51a9c099a413afb5a0 to your computer and use it in GitHub Desktop.
AIS: How to collect and maintain the state of individual vessels over time by keeping track of several messages using pyais
import pathlib
import pyais
from pyais.tracker import AISTrackEvent
def do_something(track):
# called every time an AISTrack is created or updated
print(track.mmsi, track)
def handle_delete(track):
# called every time an AISTrack is deleted (pruned)
print('delete', track.mmsi)
with pyais.AISTracker() as tracker:
tracker.register_callback(AISTrackEvent.CREATED, do_something)
tracker.register_callback(AISTrackEvent.UPDATED, do_something)
tracker.register_callback(AISTrackEvent.DELETED, handle_delete)
for msg in pyais.FileReaderStream(pathlib.Path(__file__).parent.parent.joinpath('tests/nmea_data_sample.txt')):
tracker.update(msg)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment