Online Processing of Streaming Maritime Trajectories

This algorithm simulates consumption of streaming vessel positions from an ASCII file and can identify interesting trajectory events along each route.

This trajectory detection module consumes a positional stream of AIS messages from a large fleet and tracks major changes along each vessel’s movement. Thus, it can instantly identify "critical points" en route, indicating important changes like a stop, a sudden turn, or slow motion of a ship.

Except for harsh weather conditions, traffic regulations, local manoeuvres in ports, etc., ships are expected to move along almost straight, predictable paths. Therefore, most of the frequently relayed positional messages are not really required for representing the actual trace of a vessel. Instead, by discarding superfluous locations along a "normal" course with a known velocity, we can approximately reconstruct each vessel’s trajectory from the sequence of its critical points only.

This online summarization achieves data compression close to 98%, incurring negligible loss in approximation accuracy. With such dramatic reduction in system load, execution of continuous and historical queries can be greatly improved, e.g., reducing latency of online collision detection or similarity search among recent vessel paths.

Detecting trajectory events

The trajectory events currently detected by this algorithm:

  • Long-term stop occurs when at least m (e.g., m=10 consecutive instantaneous pause (speed < 1 knot) or instantaneous turn events (caused by sea drift) are found within a predefined radius r (e.g., r=250 meters. Such incoming locations are identified inside this circle, they succeed one another and thus indicate immobility (e.g., anchored at port). So, they are collectively approximated by a single critical point along with their total duration.

  • Gaps in reporting may occur when a vessel has not emitted a message for a time period T, e.g., over the past 10 minutes. Therefore, its course is unknown during this period. Reporting when the gap started is important for safety reasons, so a critical point is issued. Once communication is restored, the first location should be emitted as a critical point too. However, if another event is also detected at that time (e.g., the ship is found stopped immediately after this gap), then no additional critical point is issued to mark the end of a gap, because it gets superseded by another event (e.g., stop).

  • Instantaneous turn occurs when the direction has changed by more than a given angle, e.g., there is a difference of more than 15 degrees from its previous heading. However, such an instantaneous turn may be coincidental (e.g., due to sea drift) and is not meaningful out of context, because a series of such events may signify that the ship is stopped for some time. If this is not the case, then this point is emitted as critical.

  • Normally, vessels take smooth turns due to their large size and maritime regulations. Such a smooth turn can be identified by checking whether the cumulative change in heading across a series of previous positions exceeds a given angle. Then, the latest of these points is emitted as a critical turning point with is respective timestamp (duration is not indicated). If this slow turn is wide, then a series of such turning points is emitted, once the cumulative difference in heading from the previous one exceeds the threshold.

  • Speed change is issued once current (instantaneous) speed deviates by more than a from the previously observed speed. For a given threshold (e.g., 25%), if the rate of change for speed exceeds this threshold, it is an indication that the vessel has just decelerated or accelerated. This is an instantaneous event and the current location is emitted as a critical point. This is normally the case when a ship is approaching to or departing from a port.

  • Slow motion means that the vessel consistently moves at low speed (< 1 knot) over more than m (e.g., m=10) of its most recent messages. In contrast to a stop event, these successive locations usually occur along a path and not all of them fall in a small circle of radius r. The first and the last of these positions will be reported as critical points.
  • You may watch a series of videos that display such events simulating their detection along a few vessel trajectories in the Aegean and the Ionian Sea:

  • Video 1
  • Video 2
  • Video 3
  • Video 4

  • Download

    The source code is written in GNU C++ and is freely available under the GNU GENERAL PUBLIC LICENSE. The source code, detailed instructions, as well as sample input and output data are all included in this bundle.

    IMPORTANT!!! Please make sure that you take a look at the ReadMe.txt file before doing any tests.


    This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with this program. If not, see here.


    An initial version of the online tracking module was partially developed during a Short Term Scientific Mission (25/3/2013-19/4/2013) at the Institut de Recherche de l’École Navale (Brest, France) with the support of EU COST Action IC0903 on Knowledge Discovery from Moving Objects (MOVE). Helpful discussions with Dr. Cyril Ray and Prof. Christophe Claramunt during this STSM are kindly acknowledged. A short preliminary report describes this basic framework.

    A new, enhanced version of this work was carried out in the framework of the project AMINESS: Analysis of Marine INformation for Environmentally Safe Shipping co-financed by the European Fund for Regional Development and from Greek National funds through the operational programs "Competitiveness and Enterpreneurship" and "Regions in Transition" of the National Strategic Reference Framework - Action: "COOPERATION 2011 -- Partnerships of Production and Research Institutions in Focused Research and Technology Sectors". This version has been completed when collaborating (2014-2015) with the Information Management Lab at the University of Pireaus. More information about the complete methodology can be found here.

    Please cite this publication if you intend to make use of this source code:
    K. Patroumpas, A. Artikis, N. Katzouris, M. Vodas, Y. Theodoridis, and N. Pelekis. Event Recognition for Maritime Surveillance. In Proceedings of the 18th International Conference on Extending Database Technology (EDBT'15), pp. 629-640, Brussels, Belgium, March 2015.

    Developed © 2013-2015 by Kostas Patroumpas
    mailto: kpatro AT dblab DOT ece DOT ntua DOT gr
    National Technical University of Athens &
    University of Piraeus.
    Last updated: 3 June 2015 13:00:00 EET