<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>New algorithms for the simplification of multiple trajectories under bandwidth constraints</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gilles Dejaegere</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mahmoud Sakr</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Université libre de Bruxelles (ULB)</institution>
          ,
          <addr-line>Av. Franklin Roosevelt 50, 1050 Brussels</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This study introduces time-windowed variations of three established trajectory simplification algorithms. These new algorithms are specifically designed to be used in contexts with bandwidth limitations. We present the details of these algorithms and highlight the diferences compared to their classical counterparts. To evaluate their performance, we conduct accuracy assessments for varying sizes of time windows, utilizing two diferent datasets and exploring diferent compression ratios. The accuracies of the proposed algorithms are compared with those of existing methods. Our ifndings demonstrate that, for larger time windows, the enhanced version of the bandwidth-constrained STTrace outperforms other algorithms, with the bandwidth-constrained improved version of Squish also yielding satisfactory results at a lower computational cost. Conversely, for short time windows, only the bandwidth-constrained version of Dead Reckoning remains satisfactory.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Trajectories</kwd>
        <kwd>Spatio-Temporal Data Reduction</kwd>
        <kwd>Bandwidth Constraints</kwd>
        <kwd>STTrace</kwd>
        <kwd>Squish</kwd>
        <kwd>Dead Reckoning</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        During the last decades, the rapid proliferation of mobile
devices equipped with tracking capabilities has led to a surge
in the production of spatio-temporal data. This can be
observed across diverse types of geolocation data sources [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Democratization of mobile devices, such as smartphones and
wearable technologies, and the spread of Global Positioning
System (GPS) equipped vehicles or Automatic Identification
System (AIS) equipped vessels are some example of reasons
for this data explosion. While the spatio-temporal data
offers many exploitation opportunities (both commercial and
research), its increase also causes some new challenges. One
of these challenges is to process this large amount of data.
In 2004, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] have shown that 100Mb would be necessary to
store the localisation of a set of 400 moving objects, with
a frequency of 10 Hz (typical frequency of GPS devices).
Bruxelles Mobilité1, the public administration overseeing
mobility-related infrastructure in the Brussels Capital
Region, collects positional data specifically for heavy-goods
vehicles in Brussels. This information is primarily utilized to
calculate toll charges, represents, on average, 19 Gigabytes
of data accumulated daily [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        To overcome this dificulty, diferent compression or
simplification algorithms have been proposed [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. One of the
most well known simplification algorithm is the Douglas
Peucker (DP) algorithm [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] (initially aimed at line
simplification without temporal feature). Later, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] introduced some
variations of the DP algorithm (including the Top Down
Time Ratio algorithm (TD-TR)), taking into account the
temporal feature of the locations. Since then, multiple
algorithms such as Squish (and its variations) [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ], STTrace
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] or Dead Reckoning (DR) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] have been proposed. The
main contribution of this work is to extend these algorithms
so that they could be used in contexts where bandwidth
limitations apply. The rest of this paper is divided as follows.
First, Section 2 will provide a definition of compression
under bandwidth constraints as well as a motivation to this
problem. Section 3 introduces three existing trajectory
simplification algorithms while variants of these algorithms
for the bandwidth constrained contexts are described in
Section 4. Then, in Section 5, the performances of these
algorithms will be analysed and compared to the existing
algorithms using two diferent datasets. It will also be shown
that the classical algorithms are not suited for bandwidth
constrained contexts. Finally, Section 6 concludes this work
and presents some further research avenues.
2. Compression under bandwidth
constraints motivation
Existing techniques for simplification of trajectories have
already largely been studied. These techniques are generally
aimed at simplifying the trajectories in order to facilitate
their exploitation by machine learning techniques. This
is usually performed by trying to minimize the number of
points (position of an object at a given timestamp) kept
without deteriorating the trajectory significantly. In this work,
a diferent approach will be used. Instead of trying to
minimize the number of points kept, the algorithms introduced in
this work will consider some bandwidth constraints. These
constraints are defined as follows. For each period of time,
a predefined limit on the quantity of points that can be
kept must be respected. Therefore algorithms presented
in this work are aimed at minimizing the deterioration of
the trajectories during compression without exceeding this
limit. The duration of these periods as well as the number of
points that can be kept are parameters of the compression
algorithms. While bandwidth limitations are mentioned for
diferent contexts (vessels tracking [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], animal tracking
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]), the problem of simplifying trajectories under
bandwidth limitation has, to the best of the authors knowledge,
not yet attracted the attention of the research community.
Some existing algorithms (such as the already mentioned
Squish and STTrace) compress trajectories under memory
limitations (with a threshold on the final number of points)
but these do not respect bandwidth constrains.
      </p>
      <p>The main use case motivating compression under
bandwidth constraints concerns the extension of AIS signal
coverage for maritime monitoring and is detailed in Section 2.1.</p>
      <p>
        Further potential use cases are detailed in Section 2.2.
2.1. Extension of AIS signal coverage
Since 2004, all cargo vessels over 500 GT and all passenger
vessels are required to be equipped with AIS transceivers.
These transceivers allow automatic exchange of information
in between ships and between ships and coastal stations by
broadcasting positional messages using the Self-Organizing
Time Division Multiple Access (SOTDMA) protocol. The
International Telecommunication Union (ITU)
recommendation defines 2 default communication frequencies: AIS
1 (161.975 MHz) and AIS 2 (162.025 MHz) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. While AIS
data has initially been developed for collision avoidance,
since then, it has vastly been used by maritime authorities
to monitor vessels’ behavior and identify illegal activities.
The frequencies and the use of SOTDMA protocol imposed
by the ITU however limit both the range of communication
and the bandwidth available. One vastly used solution to
increase the range for which vessels could be monitored
from coastal stations is satellite AIS which involves the use
of satellites to receive and relay AIS signals from the ships
to the stations. Another possible solution which does not
require the use of satellites is mentioned in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. It consists
in allowing ships to repeat some of the broadcasted signals
that they receive, acting as an "AIS-repeater". Such a
solution however would come at the cost of an increase in the
size of data transmission, which, if applied naively, might
exceed the available bandwidth. For this reason, BandWidth
Constrained (BWC) techniques should be developed.
2.2. Objects tracking over the Internet of
      </p>
      <p>Things
Another family of use cases for compression under
bandwidth constrains could be the tracking of objects over the
Internet of Things (IoT). By design, many IoT devices have
limited capabilities (battery, bandwidth, ...). Object tracking
devices with such limitations could need to compress the
trajectories before communicating them to other devices.
For such devices, compression is not aimed at but a technical
necessity. In this situation BWC algorithms would ofer the
necessary compression while minimizing the deterioration
of the trajectories. Many situations could be considered.
Some examples are given as follows:
Animal tracking is more and more used by private pet
owners, live stock owners and by scientists. For
the latter, compressing trajectories under bandwidth
constraints might be necessary to study animals’
behaviors in remote locations where communication
capabilities are inherently constrained.</p>
      <p>Autonomous fleets: with the recent development of
smart cities, the amount of positional information
generated is always increasing. Combined with the
additional information exchange required, the
monitoring of fleets of autonomous vehicles might benefit
from bandwidth constrained compression.</p>
    </sec>
    <sec id="sec-2">
      <title>3. Existing algorithms</title>
      <p>In this section, 3 existing algorithms which can be adapted
in bandwidth constraint scenarios will be introduced. For
all these algorithms, we will consider  entities (or targets)
for which the position on earth is tracked over time. For
each entity , its actual continuous movement over time
will be called its real trajectory and denoted by . In
practice, this continuous trajectory will be measured at discrete
timestamps leading to the generation of the trajectory of ,
denoted  as a time ordered sequence of measurements of
’s position.</p>
      <p>The main purpose of the algorithms will be to compress
(or simplify) the  trajectories into  samples (denoted 
with  ∈ {1, ...}). The main purpose of the algorithms will
be to compress (or simplify) the  trajectories into samples
(denoted  with  ∈ {1, ...}). In this work, we will only
consider compression techniques such that the sample 
obtained by compressing  is composed of a subset of the
points of . In addition for being important algorithms in
the literature, these algorithms have been chosen for the
following reason. Both Squish and STTrace are designed to
compress trajectories to a predetermined target size which
inherently makes them suitable candidates to be adapted in
a bandwidth constrained context. DR, on the other hand, is
designed to be applied in real time and will be modified to
respect bandwidth limitations.</p>
      <p>Hereunder, the three classical algorithms will be
introduced. For simplicity purposes, Squish and STTrace will be
illustrated with a priority queue. It should be noted however
that this is done to simplify the algorithms description.
Indeed, both methods could be implemented more eficiently
without it.</p>
      <sec id="sec-2-1">
        <title>3.1. Squish</title>
        <p>
          The Squish algorithm has initially been presented in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
Since then, several improvements have been proposed, such
as the Squish-E method presented in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. It works by
compressing each trajectory individually. It will therefore
receive as input a single trajectory. Each point  in this
trajectory will be a tuple composed of (., ., .) with .
and . being its coordinates and . being the timestamp
associated to . Furthermore, the algorithm will associate to
each point a dynamic priority . which will depend
on the current state of the sample. The main steps of the
algorithm are described in Algorithm 1.
        </p>
        <p>Algorithm 1 Pseudocode of the Squish algorithm
Require: trajectory , sample size 
1:  = empty list of points
2:  = empty priority queue
3: for  in  do
4: p.priority = ∞
5: .append()
6: compute_priority([− 2], ) {s[-2] is the previous
point}
7: .add()
8: if .size() &gt;  then
9: drop_point_update_priorities(, s)
10: end if
11: end for
12: return  {or }</p>
        <p>The priority of a point in the sample (line 6) is computed
as the Synchronized Euclidian Distance (SED) error
introduced in the sample by removing this point. The SED of a
point  with respect to points  and  such that:
. ≤ . ≤ .
represents the distance between the point  and its
projection ′ which is the position the entity would have at time
. if it was moving at constant speed between  and .
Therefore, (, , ) be computed as follows:
(, , ) = (, (, , .))
(2)
with the distance between two points being computed as
their euclidian distance:
(, ) = √︀(. − .)2 + (. − .)2
(3)
and with the position at a specicfi time  ∈ [., .]
(according to a segment between the two other points  and
) being defined by:
The priority of a point at the position  in a sample  of size
 is computed as follows:
_([], ) =([ − 1], [], [ + 1])
∀ = 1, ...,  − 1
(6)
With the priorities of [0] = [] = ∞ as the first and the
last point of the sample will always be kept.</p>
        <p>When a new point is added to the sample, the size of the
priority queue might exceed the maximum allowed bufer
size. In this case, the point with the lowest priority should
be dropped (both from the sample and from priority queue)
(see line 9). Once a point is dropped, the priority of the
"neighbors" of this point should be updated. In order not
to recompute the priority of the points, Squish works by
increasing the priority of the neighboring points by the
priority of the point dropped. By denoting  the sample before
the dropping of the point [] and ′ the sample after the
removal, the priorities of the points which were neighboring
[] will be computed as follows:
′[ − 1]. = [ − 1]. + [].
′[]. = [ + 1]. + [].
(7)
It should be noted that the point following [] has the index
 + 1 in  while it has the index  in ′ due to the removal
of []. Once the priority of these two points is recomputed,
their positions in the priority queue are adapted as well.</p>
        <p>It is important to keep in mind that for Squish as well
as for all other algorithms presented in this work, when a
point is dropped, it is dropped both from the priority queue
and from the sample it belongs to.</p>
      </sec>
      <sec id="sec-2-2">
        <title>3.2. STTrace</title>
        <p>
          The STTrace algorithm was initially presented in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Its
pseudocode is presented in Algorithm 2.
        </p>
        <p>
          It is very similar to Squish except the three following
diferences:
line 3: It compresses the diferent trajectories
simultaneAlgorithm 2 Pseudocode of the STTrace algorithm
Require:   , maximal bufer size  
1:  = matrix of  empty lists
2:  = empty priority queue
3: for  in  do
4: s = S[p.id]
5: if interesting(p, s, ) then
6: p.priority = ∞
7: .append()
8: compute_priority(, [− 2])
9: .add()
10: if .size() &gt;  then
11: drop_point_recompute_priorities(, S)
12: end if
13: end if
14: end for
15: return  {or }
ously (the  trajectories are contained into a single
stream of points  ). Each point  will be a tuple
composed of (., ., ., .) with . being
the index of the trajectory . it belongs to, . and
. being its coordinates and . being its
timestamp. Furthermore, it operates in an unbalanced
way, i.e. after simplification, samples representing
more complicated trajectories will be composed of
more points. This result is obtained by
maintaining a single priority queue for all the points of the
diferent trajectories.
line 11: When one point  is dropped from the priority
queue and from the concerned sample [.] (note
that the sample [.] is generally not the same
sample as the sample in which the last point was
added), the priorities of the neighboring points of
 in the sample [.] will not be updated using
an heuristic approach such as in Squish. Instead,
when removing a point [], both the priorities of
[ − 1] and [ + 1] will be recomputed as
([ − 2], [ − 1], [ + 1]) and as
([ − 1], [ + 1], [ + 2]).
line 5: Before adding the next point  in a
sample  = [.], it will first check whether
this point seems promising. This is performed
by computing what the priority of the last
point in  would be if  was added to  :
([− 2], [− 1], ). If this potential priority is
lower than the lowest priority in the priority queue,
then point  is not added to the sample.
3.3. DR
The DR algorithm has been initially presented in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. It
has the particularity of being inherently designed for
realtime applications. The main idea is that when a point 
is considered, the deviation between  and the expected
position according to the last points of the sample it belongs
to at the time . will be computed. If this deviation is larger
than a defined threshold  , then  is added to the sample.
The value of  represents the half of the largest synchronized
distance admissible between an initial trajectory and the
corresponding sample [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The pseudocode for the DR
algorithm is provided in Algorithm 3.
        </p>
        <p>Algorithm 3 Pseudocode of the DR algorithm
Require:   , deviation threshold 
1:  = matrix of  empty lists
2: for  in  do
3: s = S[p.id]
4: ′ = estimate_position(s, p.ts)
5: if dist(′, ) &gt;  then
6: .append()
7: end if
8: end for
9: return</p>
        <p>The estimated position (line 4) can be computed in two
diferent ways according to the information contained in the
stream of points. If each point  of the stream is composed
of (., ., ., .) (such as for Squish and STTrace ),
then the expected position will be computed as if the object
was travelling with constant direction and speed from [− 1]
(with the direction and the speed being computed according
to the straight line between [− 2] and [− 1]). For instance,
the x coordinate of the expected position is computed as
follows:
′. = [− 1]. +
([− 1]. − [− 2].)
[− 1]. − [− 2].
(. − [− 1].)
(8)</p>
        <p>In some cases (such as in the AIS data), each point  in the
stream contains some information with respect to its speed
and direction of the moving object. Each point p is then
composed of (., ., ., ., ., .) with .
and . representing respectively the speed over ground
and course over ground of the entity. Then this additional
information can be used to compute the estimated position ′
of . For instance, the x coordinate of the expected position
is computed as follows:
′. =[− 1].+
([− 1].) × [− 1]. × (. − [− 1].)
(9)</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>4. BWC variants</title>
      <p>While the previous section consisted in an introduction of
diferent existing compression techniques, this section
consists in the introduction of BandWidth-Constrained (BWC)
variants of the existing algorithms. Four variants will be
analysed in this work: BWC-STTrace, BWC-STTrace-Imp,
BWC-Squish, BWC-DR. All of them share the main idea of
extending their respective existing algorithm in a time
windowed manner. However some slight adaptations have to be
performed for the BWC-Squish and BWC-DR algorithms.
Furthermore, the time windowed constraint also gives us
the opportunity of proposing “improvement” of the
BWCSTTrace algorithm (which is denoted BWC-STTrace-Imp).
The modifications necessary for these three algorithms will
be developed hereunder.</p>
      <p>For simplicity purposes, the bandwidth will be considered
as a constant parameter in all the algorithms. This means
that for each time window, the same number of points will
be kept. However, in practice, nothing prevents the
algorithms of being used with an array of bandwidths for each
diferent time window or in a more dynamic way by
adapting the bandwidth according to the real time congestion of
the network.
4.1. BWC-Squish and BWC-STTrace
The BWC-STTrace method is simply the modification of
the STTrace method applied on every time window, with
the particularity that points kept in the sample of previous
time windows can be used to compute the priority of points
in the current time window. The priority of points in
BWCSTTrace is identically computed as in the original STTrace
method. The bandwidth constrains are respected by
flushing and re-initializing the priority queue after each time
window. A similar approach is used for the BWC-Squish
algorithm. One of the characteristics of the Squish method,
is that the numbers of points kept in the simplification of the
trajectories have to be determined beforehand. However,
the repartition of the number of points that should be kept
for each trajectory individually in each time window is not
straight forward. For this reason, the BWC-Squish
algorithm is an “STTrace inspired" modification of the Squish
algorithm as instead of compressing the trajectories
individually, a single priority queue of limited size is shared for
all trajectories. Such as for BWC-STTrace , the priority
of points in BWC-Squish is identically computed as in the
original Squish method. The pseudocode for the algorithms
fo BWC-STTrace and BWC-Squish are identical and are
shown in Algorithm 4. While the pseudocodes are identical,
it is important to remember that both methods still compute
the priorities diferently.</p>
      <p>Algorithm 4 Pseudocode of the BWC-Squish ,
BWCSTTrace and BWC-STTrace-Imp algorithms. Underlined
parts are the addition required for BWC-STTrace-Imp .
Require:   , window limit , window
duration  , start time , precision 
1:  = matrix of  empty lists
2:  = matrix of  empty lists
3:  = empty priority queue
4: _ =  + 
5: for  in  do
6: if . &gt; _ then
7: lfush( )
8: _ = _ + 
9: end if
10: s, t = S[p.id], T[p.id]
11: p.priority = ∞
12: .append()
13: .append()
14: compute_priority_imp([− 2], , ,  )
15: .add()
16: if .size() &gt;  then
17: drop_point_recompute_priorities(, S, T,  )
18: end if
19: end for
20: return</p>
      <sec id="sec-3-1">
        <title>4.2. BWC-STTrace-Imp</title>
        <p>The main motivation behind this improvement is that in
STTrace, the priority of a point is computed using the
sample it belongs to. Therefore, this priority is computed
independently of the previously removed points. While the
removal of a single point with a small priority will lead to a
slight deviation in the sample, significant deviations can
result of successively removing such points. The pseudocode
of BWC-STTrace-Imp is detailed in Algorithm 4.</p>
        <p>The priority of a point in a sample is therefore computed
as follows. Instead of computing the SED error introduced
in the sample when removing the concerned point,
BWCSTTrace-Imp computes the diference between the SED
error of the sample with respect to the initial trajectory
with and without the considered point.</p>
        <p>This error will be computed according to the distance
between the synchronized position in the trajectory and the
position in corresponding sample at regular time intervals
(denoted  ). To compute these positions (in a trajectory or
in sample denoted ) at a specific time , the "neighboring"
points should be identified. These neighbor points will be
denoted − (the first point in  before time ) and + (the
ifrst point in  after time ):
− =
+ =
 ∈  ..
. ≤ 
 ∈  ..
 ≤ .
∧ ̸ ∃ ∈  ..</p>
        <p>. &lt; . ≤ 
∧ ̸ ∃ ∈  ..  ≤ . &lt; .</p>
        <p>By using equations 4, 5 and 11, we will define a function
() providing the position of the entity at time  according
to the sample or trajectory :</p>
        <p>() = (− , +, )
Then, the set of all the timestamps where the errors will be
computed will be denoted  ([], ). Indeed, the priority
of a points [] will be the sum of all the errors for all
timestamps between [ −
 ([], ,  ) will therefore be denoted:</p>
        <p>1]. and [ + 1]. with the step  .
 ([], ,  ) = {[ −</p>
        <p>1]. +  |
 ∈ N
+
∧ [ −
1]. +  &lt;  [ + 1].}
(13)
Finally, the sample that would be obtained by removing the
node [] from  will be denoted:</p>
        <p>−  =  ∖ []</p>
        <p>Using these notations, the priority in the sample  with
respect to an initial trajectory  of a point [] can then
be computed as:
__([], , ,  ) =
︁( (︀ (), ()))︀ − (︀ (), − ()))︀
︁)
∑︁
∈
 ([],, )</p>
        <p>Once more, such as in STTrace, when dropping a point
from a sample, the priority of the previous and following
points in the sample will need to be recomputed.</p>
        <p>While BWC-STTrace-Imp will produce more accurate
results, it is at the cost of a more computationally
expensive computation of the priorities. The computation of the
priority of the point [] in STTrace or BWC-STTrace
requires the computation of one distance as well as one
(10)
(11)
(12)
(14)
(15)
position (from two existing points and one timestamp). On
the other hand the computation of the priority of [] in
BWC-STTrace-Imp requires the computation of at most
2×</p>
        <p>×
since [ −
2 distances as well as 2× 

×</p>
        <sec id="sec-3-1-1">
          <title>3 positions. Indeed,</title>
          <p>1] might belong to the previous time window,
the duration between [ −</p>
          <p>1] and [ + 1] is at most 2 × 
which leads the set  ([], ,  ) to be at most of size 2×   .
For every timestamp in this set, 3 positions (according to the
real trajectory, the initial sample and the simplified sample)
as well as 2 distances must be computed.
4.3. BWC-DR
The DR algorithm has been modified in order to fulfill
bandwidth constrains. This is performed, such as for Squish
and STTrace by the introduction of time windows and a
priority queue. Instead of using the distance between the
position of the processed point with its expected position as
a binary criterion to decide whether to add this point to the
corresponding sample or not, this distance will be used as
the priority of the point. Therefore, only the points which
are the furthest of their expected position will be kept in</p>
          <p>The pseudocode for the BWC-DR algorithm is detailed in
each time window.</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Algorithm 5.</title>
          <p>Algorithm 5 Pseudocode of the BWC-DR algorithm.
Require:   , window limit , window
duration  , start time 
1:  = matrix of  empty lists
2:  = empty priority queue
3: _ =  + 
5: for  in  do
if . &gt; _ then
lfush( )
_ = _ + 
end if
′ = estimate_position(s, p.ts)
p.priority = dist(′, )
.append()
.add()
if .size() &gt;  then</p>
          <p>drop_point_recompute_priorities(, S)
4:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:</p>
          <p>end if
17: end for
18: return</p>
          <p>Similarly as with Squish and STTrace (bandwidth
constrained versions or not), when one point [] is dropped
from the priority queue, it is also removed from the
corresponding sample. Therefore, the priorities of some points
of  must be recomputed. With BWC-DR, its is not the
priorities of the two neighbors ([ −
must be recomputed, but the priorities of the one or two
1] and [ + 1]) which
next nodes ([ + 1] and [ + 2]).</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5. Empirical results</title>
      <p>In this section, the performance of the introduced BWC
algorithms as well as their classical equivalents and the classical
TD-TR algorithm will be compared. The comparison will be
performed on two datasets of diferent spatial and temporal
ranges.</p>
      <sec id="sec-4-1">
        <title>5.1. Datasets</title>
        <p>
          5.1.1. AIS
The first dataset consists of 24h of AIS data in the region
between the cities of Copenhagen and Malmo on first January
2021 [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. It is composed of 103 trips totalling 96819 points.
The trips can be seen in Figure 1.
The second dataset consists of three months of GPS of
blackbacked gulls between the 9th of July and the 9th of October
2021 [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. It is composed of 45 trips totalling 165244 points.
While most of these trips originate from Belgium and North
of France, some are spreading as far as the north of Spain.
Few other trips are also entirely taking place in Spain and
one in Algeria. These trips can be seen in Figure 2.
5.2. Evaluation of the BWC Algorithms
In this section, the diferent algorithms will be evaluated by
computing the Average Euclidian Synchronized Distance
(ASED) between some initial trajectories and their
compressed counterparts at a regular time interval.
        </p>
        <p>It is important to note that this evaluation is not aimed at
stating that some compression algorithms are better than
others. Indeed, when selecting a compression algorithm,
diferent factors have to be taken into account. While the
ASED is generally an important factor, other factors such
as time and space complexity should be taken into account.
Furthermore the BWC algorithms are designed to be able to
be used in situations with additional bandwidth constraints.
It is not surprising that the fulfillment of these additional
constraints may lead to a deterioration of the algorithms
ASED.</p>
        <p>While the diferent algorithms require diferent
parameters, these were determined in order to produce a similar
total number of points in the simplified trajectories
produced by the diferent algorithms. For each dataset, the
algorithms will be assessed with parameters such that both
around 10% and around 30% of the original points are kept
in the simplified trajectories.</p>
        <p>The exact value of the parameters for the classical
algorithms are listed hereunder.</p>
        <p>Squish Squish requires the maximal number or points
kept for each individual trajectory. This maximal
number of point as been set to 10% and 30% of the
initial points of each trajectory.</p>
        <p>STTrace STTrace requires the maximal number or points
kept for for all trajectories. This maximal number
of points has been set to 10% and 30% of all initial
points.</p>
        <p>DR
TD-TR</p>
        <p>DR requires a distance threshold. This threshold has
been set to 425 and 115 meters for the ais dataset
and has been set to 2500 and 950 meters for the birds
dataset.</p>
        <p>The TD-TR time algorithm requires a tolerance
threshold. This threshold has been set to 0.15 and
0.051 in the AIS dataset as well as 16.7 and 1.5 for
the Birds dataset.</p>
        <p>For each of the classical algorithms, its ASED can be seen
in Table 1.</p>
        <p>Squish
STTrace
DR
TD-TR</p>
        <p>AIS</p>
        <p>Birds
10%
20.87
58.66
6.75
2.95
30%
4.83
9.78
2.32
1.08</p>
        <p>10%
585.34
1823.10
697.14
274.78
30%
44.95
431.65
46.48
26.87</p>
        <p>As it can be seen from Table 1, TD-TR is outperforming
the other algorithms. This is due to the fact that Squish,
STTrace and DR are designed to be less computationally
expensive.</p>
        <p>The performances of the BWC algorithms on the AIS
dataset can be found in Tables 2 and 3.</p>
        <p>Furthermore, we can notice from Tables 2 and 3 that for
large enough windows (between 15 and 120 minutes),
BWCSTTrace-Imp is outperforming the other BWC and classical
algorithms. This is due to the fact that the priority of the
points is evaluated using the sample and the original
trajectory. It can also be noticed that for small time windows, the
performances of BWC-Squish, BWC-STTrace and
BWCSTTrace-Imp deteriorate. The deterioration is even drastic
for 30 seconds time windows when keeping 10% of the
points. The reason for this deterioration is that these three
algorithms compute the priority of a point according to both
the previous and the next point in the sample. Therefore,
for small time windows, there will generally be less than 2
points per trajectory in the sample, making the removal of
a point arbitrary and therefore leading to inaccurate
simpliifcations. On the other hand the performances of BWC-DR
are more constant and even improve for smaller time
windows. This is due to the fact that BWC-DR only makes use
of the previous one (or two) points to compute the
priority of the currently processed point. Therefore, even with
small time windows, it will be able to compute the
priorities correctly using points kept during the previous time
windows.</p>
        <p>As expected, it can also be noted that the average
error of the improved version of BWC-STTrace-Imp is
indeed smaller than the one of BWC-STTrace. Surprisingly
however, even BWC-STTrace outperforms the classical
STTrace algorithm. One hypothesis is that this is due to
STTrace both assessing the priority of points using current
simplified trajectory only and simultaneously comparing
diferent trajectories of diferent natures. Therefore,
trajectories with diferent sampling frequencies could be
compressed simultaneously. Trajectories with lower frequencies
might fill up the priority queue as the priority of a point
which is far apart in time from its neighbors in the sample
will intuitively be higher than the one of a point close to its
neighbors. Restarting with an empty priority queue at
frequent time interval might help mitigate this phenomenon.
Squish on the other hand, does not seem to sufer from
this drawback. This might be due to their heuristic which
counterbalance this efect by adding the priorities of points
deleted from the sample.</p>
        <p>The Tables 2 and 3 represent tests performed with a
constant bandwidth (indicated by the window size and the
number of points per window). It should be noted however
that similar results can be obtained by selecting a random
number of points (around the value indicated in the tables)
individually for each time window.</p>
        <p>The performances of the BWC algorithms on the Birds
dataset can be found in Tables 4 and 5. Similar observations
can be made for the Birds dataset as for the AIS dataset.
Surprisingly, it can be seen that increasing the bandwidth
from 8 to 22 points for the 1 hour time window lead to
worse results for BWC-Squish, BWC-STTrace and
BWCSTTrace-Imp. This confirms the arbitrary simplification
performed by these algorithms if there are not enough points
for each trip in each time window.</p>
        <p>window size (days)
points per window
BWC-Squish
BWC-STTrace
BWC-STTrace-Imp
BWC-DR
window size (days)
points per window
BWC-Squish
BWC-STTrace
BWC-STTrace-Imp
BWC-DR</p>
      </sec>
      <sec id="sec-4-2">
        <title>5.3. Points distribution</title>
        <p>In this section, the time repartition of points conserved with
classical compression algorithms will be illustrated. This
will be done by compressing the AIS dataset to 10% of its
original size and by analysing the time repartition of the
points kept for each period of 15 minutes. It will be shown
that these algorithms do not produce an homogeneous
timepartitioned results. In this configuration, 100 points should
be kept in each period in order to satisfy the bandwidth
constrain. The time repartition of simplified points for the
TD-TRand DR are illustrated in Figures 3 and 4 (similar
ifgures are obtained for Squish and STTrace). These figures
consist in histograms representing the number of points
remaining in all simplified trajectories during each period.</p>
        <p>In each figure, the limit of 100 points is indicated with the
blue dotted line. These figures confirm the need of using
diferent compression techniques in context with bandwidth
constrains.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>6. Conclusion</title>
      <p>In this work, four variations of existing algorithms for the
simplification of trajectories have been introduced. These
variations are aimed at being used in a situation with
bandwidth limitations. The performances of the four algorithms
have been studied for diferent sizes of time windows for
two diferent datasets and for diferent compression rates.
While the more computationally intensive
BWC-STTraceImp outperforms the other algorithms for the larger time
windows, the performances of BWC-DR remain more stable
with small time windows.</p>
      <p>Several further improvements could still be considered.
First of all, this work extends three well known algorithms
to a time windowed context. Diefrent algorithms might
also be considered for such an extension. Furthermore, the
presented algorithms could be further optimized. For
instance the transition between time windows for the
BWCSquish, BWC-STTrace and BWC-STTrace-Imp could be
improved. Indeed, actually, all the last points of a
trajectory in a window are assigned an infinity priority as there
is no information accessible within the window with
respect to the next points. This is probably the main reason
why BWC-Squish , BWC-STTrace and BWC-STTrace-Imp
perform poorly when the number of points kept in a time
window is low compared to the number of trips. The
priority of these last points could therefore be computed during
the next time window, leading hopefully to more accurate
results. The DR algorithm could also be modified in a
different manner to satisfy bandwidth constrains instead of
using a time-windowed approach with a priority queue. For
instance, the distance threshold could be modified in real
time by the algorithm according to the current number of
points in the sample. Finally, the diferent algorithms could
be further studied by applying the on a larger variety of
datasets.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>The research leading to the results presented in this paper
has received funding from the European Union’s funded
Project MobiSpaces under grant agreement no 101070279.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Shekhar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Gunturi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <article-title>Spatial big-data challenges intersecting mobility and cloud computing</article-title>
          ,
          <source>in: Proceedings of the Eleventh ACM International Workshop on Data Engineering for Wireless and Mobile Access</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>N.</given-names>
            <surname>Meratnia</surname>
          </string-name>
          , R. A. de By,
          <article-title>Spatiotemporal compression techniques for moving point objects</article-title>
          ,
          <source>in: Advances in Database Technology-EDBT 2004: 9th International Conference on Extending Database Technology</source>
          , Heraklion, Crete, Greece, March
          <volume>14</volume>
          -18,
          <year>2004</year>
          9, Springer,
          <year>2004</year>
          , pp.
          <fpage>765</fpage>
          -
          <lpage>782</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Dillen</surname>
          </string-name>
          , G. Buroni,
          <string-name>
            <given-names>Y.-A.</given-names>
            <surname>Le Borgne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Determe</surname>
          </string-name>
          , G. Bontempi,
          <article-title>Mobi-aid: A big data platform for real-time analysis of on board unit data</article-title>
          ., in: EDBT/ICDT Workshops,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Makris</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Kontopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Alimisis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Tserpes</surname>
          </string-name>
          ,
          <article-title>A comparison of trajectory compression algorithms over ais data</article-title>
          ,
          <source>IEEE Access 9</source>
          (
          <year>2021</year>
          )
          <fpage>92516</fpage>
          -
          <lpage>92530</lpage>
          . doi:
          <volume>10</volume>
          .1109/ACCESS.
          <year>2021</year>
          .
          <volume>3092948</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D.</given-names>
            <surname>Amigo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Sánchez</given-names>
            <surname>Pedroche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>García</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Molina</surname>
          </string-name>
          ,
          <article-title>Review and classification of trajectory summarisation algorithms: From compression to segmentation</article-title>
          ,
          <source>International Journal of Distributed Sensor Networks</source>
          <volume>17</volume>
          (
          <year>2021</year>
          )
          <fpage>15501477211050729</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D. H.</given-names>
            <surname>Douglas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. K.</given-names>
            <surname>Peucker</surname>
          </string-name>
          ,
          <article-title>Algorithms for the reduction of the number of points required to represent a digitized line or its caricature, Cartographica: the international journal for geographic information</article-title>
          and geovisualization
          <volume>10</volume>
          (
          <year>1973</year>
          )
          <fpage>112</fpage>
          -
          <lpage>122</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Muckell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-H.</given-names>
            <surname>Hwang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Patil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. T.</given-names>
            <surname>Lawson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ping</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ravi</surname>
          </string-name>
          ,
          <article-title>Squish: an online approach for gps trajectory compression</article-title>
          ,
          <source>in: Proceedings of the 2nd international conference on computing for geospatial research &amp; applications,</source>
          <year>2011</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Muckell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. W.</given-names>
            <surname>Olsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-H.</given-names>
            <surname>Hwang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. T.</given-names>
            <surname>Lawson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ravi</surname>
          </string-name>
          ,
          <article-title>Compression of trajectory data: a comprehensive evaluation and new approach</article-title>
          , GeoInformatica
          <volume>18</volume>
          (
          <year>2014</year>
          )
          <fpage>435</fpage>
          -
          <lpage>460</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Potamias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Patroumpas</surname>
          </string-name>
          , T. Sellis,
          <article-title>Sampling trajectory streams with spatiotemporal criteria</article-title>
          ,
          <source>in: 18th International Conference on Scientific and Statistical Database Management (SSDBM'06)</source>
          , IEEE,
          <year>2006</year>
          , pp.
          <fpage>275</fpage>
          -
          <lpage>284</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Trajcevski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Cao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Scheuermanny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Wolfsonz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Vaccaro</surname>
          </string-name>
          ,
          <article-title>On-line data reduction and the quality of history in moving objects databases</article-title>
          ,
          <source>in: Proceedings of the 5th ACM international workshop on Data engineering for wireless and mobile access</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P. A.</given-names>
            <surname>McGillivary</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. D.</given-names>
            <surname>Schwehr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Fall</surname>
          </string-name>
          ,
          <article-title>Enhancing ais to improve whale-ship collision avoidance and maritime security</article-title>
          ,
          <source>in: OCEANS</source>
          <year>2009</year>
          , IEEE,
          <year>2009</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Juang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Oki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Martonosi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. S.</given-names>
            <surname>Peh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rubenstein</surname>
          </string-name>
          ,
          <article-title>Energy-eficient computing for wildlife tracking: Design tradeofs and early experiences with zebranet</article-title>
          ,
          <source>in: Proceedings of the 10th international conference on Architectural support for programming languages and operating systems</source>
          ,
          <year>2002</year>
          , pp.
          <fpage>96</fpage>
          -
          <lpage>107</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Series</surname>
          </string-name>
          ,
          <article-title>Technical characteristics for an automatic identiifcation system using time-division multiple access in the vhf maritime mobile band</article-title>
          ,
          <string-name>
            <surname>Recommendation</surname>
            <given-names>ITU</given-names>
          </string-name>
          : Geneva,
          <string-name>
            <surname>Switzerland</surname>
          </string-name>
          (
          <year>2014</year>
          )
          <fpage>1371</fpage>
          -
          <lpage>1375</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>C.</given-names>
            <surname>Doulkeridis</surname>
          </string-name>
          , G. Santipantakis,
          <string-name>
            <given-names>N.</given-names>
            <surname>Koutroumanis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Makridis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Koukos</surname>
          </string-name>
          , G. Theodoropoulos,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Theodoridis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kyriazis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kranas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Burgos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jimenez-Peris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Duarte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sakr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Graser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Heistracher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Torp</surname>
          </string-name>
          , I. Chrysakis,
          <string-name>
            <given-names>T.</given-names>
            <surname>Orphanoudakis</surname>
          </string-name>
          , E. Kapassa,
          <string-name>
            <given-names>M.</given-names>
            <surname>Touloupou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Neises</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Petrou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Karagiorgou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Catelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Messina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Corrales</given-names>
            <surname>Compagnucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Falsetta</surname>
          </string-name>
          ,
          <string-name>
            <surname>Mobispaces:</surname>
          </string-name>
          <article-title>An architecture for energy-eficient data spaces for mobility data</article-title>
          ,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Denmark</surname>
          </string-name>
          , Ais data,
          <year>2021</year>
          . URL: https://web.ais.dk/aisdata/,
          <source>accessed on 27 December</source>
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>E. W. M.</given-names>
            <surname>Stienen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Müller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Milotic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Desmet</surname>
          </string-name>
          , Lbbg_juvenile
          <article-title>- juvenile lesser black-backed gulls (larus fuscus, laridae) hatched in zeebrugge (belgium</article-title>
          ),
          <year>2020</year>
          . URL: https://doi.org/10.5281/zenodo.5075868. doi:
          <volume>10</volume>
          . 5281/zenodo.5075868.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>