04/22/23 1
Continuous Spatiotemporal Trajectory Join
Petko Bakalov, Vassilis J. Tsotras
University of California, Riverside
04/22/23 2
Overview Motivation CSTJ definition Indexing Spatiotemporal streams along the
temporal axe Evaluation Framework and algorithms Experimental results
04/22/23 3
Motivation Streaming
Spatiotemporal data is generated in many real life applications
There is need for more complex continuous spatial predicates
Result
QueryClients
GPSDevices
Antenna
Server
Spatiotemporal stream
Objectlocation
04/22/23 4
Continuous SpatiotemporalTrajectory Join The problem of identifying all pairs of moving
objects which follow similar movement pattern for specified period of time.
Example: "Identify the pairs of (security officers, visitors) that have followed each other in the last 10 minutes.“
Difference from existing continuous predicates: The predicate involves relative time constraint “ ………….last 10 minutes.“
04/22/23 5
Formal Definition Input: A stream of location/time-instant <li, ti>
pairs from two sets of objects or and os a threshold ε, and a relative time interval δt
Output: set V of pairs <oi, oj>, where oi Є or, oj Є os, such that for every time instant ti in the interval [tnow; tnow – δt]
D( location(oi, ti), location(oi, ti), ) < ε
04/22/23 6
Overview Motivation CSTJ definition Key Ideas Indexing Spatiotemporal streams along the
temporal axe Evaluation Framework and algorithms Experimental results
04/22/23 7
Key Ideas Initial formation of the result (MDM05, GIS05)
Use trajectory approximations to reduce the size of the problem
Define a lower bound distance function for this approximation
Using this distance function, prune as many trajectory pair similarity evaluations as possible.
Incremental reevaluation. Reuse as much as possible the result from the previous iteration
04/22/23 8
Trajectory Approximation Use of a uniform spatial grid to discretize the
spatial domain. Each object location li in the stream can be
approximated with the grid cell in the boundaries of which it is.
Trajectory approximation
11 12 13
21 22 23
31 32 3322 22 22 23 13 13
<22,3><23,4><13,6>
04/22/23 9
Trajectory Approximation Organize the trajectory approximations in a
way that enables the use of incremental approach
<22,3><23,4><13,6>
1 2 3 4 5 6 7
1
2
3
4
5
6
7
22
23
24
11 12 13
21 22 23
31 32 33
<32,2><33,3><23,5><13,6>
<31,1><21,3><11,7>
31
21
32
33
23
23
Time from
Time to
04/22/23 10
Trajectory Approximation For any time period ( for example (3;6)) this
space can be divided on 4 regions
1
2
3
4
5
6
7
22
23
24
31
21
32
33
23
23Region 1
Region 2
Region 3
Region 4
1 4
3 2
1 2 3 4 5 6 7
Time to
Time from
04/22/23 11
Lower bound distance function We proposed the use of the following distance
function, defined over trajectory approximations
d() is the minimal distance between grid cells Slightly different form the functions in MDM05,
GIS05
);(
2, )())(),((
ii
ittti
jisjritt srdoToTD
04/22/23 12
Overview Motivation CSTJ definition Key Ideas Indexing Spatiotemporal streams along the
temporal axe Evaluation Framework and algorithms Experimental results
04/22/23 13
Initial formation of the result Step 1. Define an order among the trajectories
in the system by using as a score the distance between these strings and M randomly picked trajectories called origins Oi: The origins can be artificially created
Step 2. By using sliding window algorithm find all pairs between the two sets having score less then the threshold.
Step 3. Verify the result with the actual trajectory data
04/22/23 14
Step 1 – compute the scores
1
2
3
4
5
6
7
22
23
24
31
21
32
33
23
23
1 4
3 2
1 2 3 4 5 6 7
Choose originO1 <33,6>
Create partitioning for time period (tstart-δt; tstart) e.g. (2;5)I1 – set of points in region 1I2 – set of points in region 2I3 – set of points in region 3I4 – set of points in region 4
Assume that a query with δt=3 is introduced in the system in time instance tstart=5
Time to
Time from
04/22/23 15
Step 2 & 3 sliding window and verificationCompute squared sum of distances between trajectory approximations and origin using the formula
Compute the object scores
W1(o1) = 1,4 W1(o2) = 1 W1(o3) = 2,4
04/22/23 16
Sliding window algorithm
Object 1 and Object 2 might have a join – report as a candidate pair
0 1 2 3
Object 1 – Set 1 Object 2 – Set 2Object 3 – Set 2
Object 1 and Object 2 are tested if they indeed satisfy the criteria
W1(o1) = 1,4 W1(o2) = 1 W1(o3) = 2,4
04/22/23 17
Continuous reevaluation Once the initial result is formed the query
moves to a second phase where it is constantly reevaluated
To minimize the cost of the reevaluation we keep the results form the previous step and apply to them the changes which have occurred to the stream
04/22/23 18
Continuous reevaluation
1
2
3
4
5
6
7
22
23
24
31
21
32
33
23
23
1 4
3 2
1 2 3 4 5 6 7
Time to
Time from
04/22/23 19
Experimental Results Synthetic datasets on the
freeways of Illinois Up to 150 000 moving
objects Measure the average
number of disk accesses for the index and the total number of candidate trajectories that need to be retrieved
04/22/23 20
Experimental Results
04/22/23 21
Experimental Results
04/22/23 22