R-Trees and applications Efficient grid queries in the Dynamo - - PowerPoint PPT Presentation

r trees and applications
SMART_READER_LITE
LIVE PREVIEW

R-Trees and applications Efficient grid queries in the Dynamo - - PowerPoint PPT Presentation

R-Trees and applications Efficient grid queries in the Dynamo reservoir modelling software R-Tree Project A.N. Yzelman (UU) Supervisors A.N. Swart (Alten) G.L.G. Sleijpen (UU) Project Owners Eric Haesen (Alten) Hans Molenaar (Shell)


slide-1
SLIDE 1

R-Trees and applications

Efficient grid queries in the Dynamo reservoir modelling software

slide-2
SLIDE 2

R-Tree Project

A.N. Yzelman (UU) Supervisors A.N. Swart (Alten) G.L.G. Sleijpen (UU) Project Owners Eric Haesen (Alten) Hans Molenaar (Shell)

slide-3
SLIDE 3

Overview

  • Problem: Querying large spatial

databases.

  • Application in Dynamo reservoir simulation

software.

  • R-Trees.
  • Example
  • Testing
  • Implementation
slide-4
SLIDE 4

Querying spatial data

  • Needed in areas of:
  • 1. Image processing

(Ray-tracing / CAD)

  • 2. Geographical information systems

(e.g., TomTom)

  • 3. Robotics
slide-5
SLIDE 5

Example

The San Francisco road network

slide-6
SLIDE 6

Typical Queries

  • Containment

“What objects are contained in ...”

  • Neighbours

“What objects are close to...”

  • Intersection

“What objects cross...”

slide-7
SLIDE 7

The Naive Approach

  • > Test all objects

May take enormous amount of time: 174599 nodes for San Francisco Map Conclusion: need a clever data structure

slide-8
SLIDE 8

Trees

Example: Binary Search tree Each node has max. two children

slide-9
SLIDE 9

Trees

  • Searching takes O(log(n)) time

(2048 entries take twice the time of 1024 entries!)

  • Insertion/Deletion may be slower

Main issue for spatial data: need an ordering

slide-10
SLIDE 10

Dynamo

  • Dynamo uses high resolution grids
  • Queries: neighbours, intersections, overlap
  • Currently uses a bisection method, which

may be sub-optimal Dynamo may benefit from a custum taylored R-Tree implementation

slide-11
SLIDE 11

Example Grid

slide-12
SLIDE 12

R-Trees

  • Consider a simple two-dimensional case:
slide-13
SLIDE 13

R-Trees

  • Add Bounding Boxes
slide-14
SLIDE 14

R-Trees

  • Add Bounding Boxes
slide-15
SLIDE 15

R-Trees

  • Add Bounding Boxes
slide-16
SLIDE 16

R-Trees

  • Add Bounding Boxes
slide-17
SLIDE 17

R-Trees

  • Add Bounding Boxes
slide-18
SLIDE 18

R-Trees

  • Add Bounding Boxes
slide-19
SLIDE 19

R-Tree Properties

  • Every node contains between m and M

data elements unless it is the root.

  • All leaves appear at the same level, and

contain all the data elements.

  • The bounding boxes used tightly encloses

the objects within.

slide-20
SLIDE 20

R-Tree Properties

  • Every node contains between m and M

data elements unless it is the root. m and M may be chosen with memory or disk cache size in mind. In the latter case, R-trees reduce to the well known B-trees.

slide-21
SLIDE 21

Subtleties

  • By the previous example, an R-tree can be

built in many different ways.

slide-22
SLIDE 22

R-Trees

slide-23
SLIDE 23

Variants

  • By the previous example, we saw an R-

tree can be built in many different ways.

  • Leads to many different R-tree variations.
slide-24
SLIDE 24

Variants

  • By the previous example, we saw an R-

tree can be built in many different ways.

  • Leads to many different R-tree variations.
  • For example:

R*-tree, PR-tree, Hilbert-tree, R+-tree, and more...

slide-25
SLIDE 25

Testing

  • Use real life geographical data supplied by

Shell.

  • Test several R-tree variations.
  • Tune tree parameters to the specifics of

Shell data.

  • Quantify results in terms of query time,

memory usage and query response quality.

slide-26
SLIDE 26

Implementation

  • Object-Oriented C++
  • Easily extended
  • “Plug & Play” solution for spatial data

storage

  • Generic design targeted at n-dimensional

polygons in different spaces

slide-27
SLIDE 27
slide-28
SLIDE 28

Questions?