Spatio-Temporal Databases Moving Objects
Introduction Spatiotemporal Databases: manage spatial data whose geometry changes over time Geometry: position and/or extent Global change data: climate or land cover changes Transportation: cars, airplanes Animated movies/video DBs
Spatio-temporal Queries Historical Queries: Store the past the history of a spatio-temporal evolution. R-tree, MV3R-tree (PPR-tree) “Future” Queries: Find the future positions of moving objects. Indexing?
Indexing moving objects Database stores the current location of each object and the velocity vector. Example: cars moving in a highway system. GPS can provide position/velocity
Moving Objects: Queries Range Queries NN queries Aggregation queries Q
Moving Objects:Representation Consider the 1-d case (objects moving on a line) Storing the locations of moving objects is a challenge: Update the database with the new locations Use a function of time f(t) to store a location Update overhead is reduced; update the database only when velocity changes
Space-time Trajectories are plotted as lines in the time-location space (y, t); p(t) = vt+a trajectories o 1 o 2 o 3 o 4 (t) time
Indexing Use R-tree to index the lines Large MBRs, extensive overlap Use a Quadtree approach (or a grid) Partition the space into cells, store for each cell the lines that intersect it Disk space is increased
Dual space-time Idea: map a line to a point trajectories o o o o o o o (y) location intercept trajectories o o 1 1 o 2 o 3 o 4 o 2 o 3 (t) time slope intercept
Dual space-time indexing Query must be transformed. [(y1q, y2q), (t1q, t2q)] a + t2qv >= y1q and a+ t1q v <= y2q , for v>0 a + t1qv >= y1q and a+ t2q v <= y2q , for v<0
Dual space-time indexing Another transformation (Hough-Y) is: The difference is that we compute the intercept over a horizontal line Queries in the dual space are similar with the previous transformation
Hough-Y space
Querying the dual space Use a PAM to index the dual points, change the search function to find the points inside the query Problem: Partitioning is not aligned with the queries many I/Os An idea is to try to store multiple structures, one for each set of queries with similar slope
Improving the query In the Hough-Y, the slope of the queries is: y1q – yr (or y2q – yr) location y3 y2 query y1 time
Improving the query Compute the dual using multiple y-lines Store an R-tree for each line Given a query, find the line that is closer to the query and then use the corresponding index Thus, the query will appear as vertical as possible better performance
Indexing in 2-dimensions The dual transformation can be extended to 2 dimensional points Map the trajectories in a point in 4-d using the transformations on x-t and y-t planes Use the 1-d structures to answer a query
Dual for 2-D Moving Objects Using Hough-X: Map a moving point p with location (px, py) and velocity (vx, vy) to the 4D point (vx, ax, vy, ay) Query is also transformed to a linear constraint query: Q=[(x1q, x2q), (y1q, y2q), (t1q, t2q)] ax + t2qvx >= x1q and ax+ t1q vx <= x2q ay + t2qvy >= y1q and ay+ t1q vy <= y2q x1qvy - y2qvx <= axvy – ayvx<= x2qvy - y1q vx
TP R-tree Time-Parametrized R-tree Store the MBRs as functions of time The MBRs grow with time, at any time instant in the future we can compute the “MBR”
Motion function For each object, the database stores Its minimum bounding rectangle (MBR) at the reference time 0 Its current velocity bounding rectangle (VBR) Examples: MBR(a)={2,4,3,4}, VBR(a)={1,1,1,1}; MBR(c)={8,9,8,9} An update is necessary only when an object’s VBR changes.
TPR – MBRs (a) The boundaries at current time 0 (b) The boundaries at future time 1
Insertion and Deletion Insertion and Deletion similar to R*-tree The only difference is that you have to compute the values: margin, overlap, volume over time Trick: try to optimize the structure for the next H time instants. Another optimization: when you update an object, re-compute the MBR at the current time
An example of update and re-computation of MBR (1D) y o1 o2 o3 o4 t update time An example of update and re-computation of MBR (1D) Reference: Simonas Saltenis, Christian S. Jensen, Scott T. Leutenegger, Mario A. Lopez: Indexing the Positions of Continuously Moving Objects. SIGMOD Conference 2000: 331-342