1 / 82

Berechnung des Spatial Joins/Join Operation

Spatial Join. Berechnung des Spatial Joins/Join Operation. aufgeteilt in zwei Schritte:. Filter Step Refinement Step. Filter Step:. Minimum Bounding Rectangle (mbb) Plane Sweep Algorithmus Ergebnis: Kandidatenmenge. Refinement Step:.

marlo
Download Presentation

Berechnung des Spatial Joins/Join Operation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spatial Join Berechnung des Spatial Joins/Join Operation • aufgeteilt in zwei Schritte: • Filter Step • Refinement Step • Filter Step: • Minimum Bounding Rectangle (mbb) • Plane Sweep Algorithmus • Ergebnis: Kandidatenmenge • Refinement Step: • Entfernung der mbbs und vergleich der eigentlichen • Objekte

  2. Spatial Join Sweep Algorithmen • Plane-Sweep-Technik verbreitetes Verfahren um den Schnitt • zwischen Objekten zu bestimmen • Um das Rechteck-Schnitt Problem zu lösen, betrachtet man • zunächst das Segment-Schnitt Problem • Gegeben: Menge horizontaler und vertikaler Streifen • Gesucht: alle Paare sich schneidender Segmente • Vertikale Gerade, genannt Sweep- Linie, wird von links • nach rechts durch die Ebene geschoben. Dabei wird der • Schnitt der Geraden mit der Objektmenge beobachtet

  3. Spatial Join Sweep Algorithmen • Alle aktuell die Sweep-Linie schneidenden Elemente werden • im Speicher gehalten Y-Achse Vertikales Segment Sweepline X-Achse

  4. Spatial Join Sweep Algorithmen • Speichere alle Paare, sich schneidende Segmente, in einer • Ergebnismenge ab

  5. Spatial Join Rechteckschnitt-Problem • Drei mögliche Lagen der überlappenden Rechtecke 2. 1. 3.

  6. Spatial Join Rechteckschnitt-Problem 2. 1. • Mittels Segmentschnitt-Problem können die Fälle 1 und 2 • gelöst werden

  7. Spatial Join Rechteckschnitt-Problem 3. • Kann gelöst werden, indem in jedem Rechteck ein innerer • Punkt ausgewählt wird • ist ein Punkt in einem anderen Rechteck enthalten, dann • überschneiden sich auch die Rechtecke

  8. Spatial Join Rechteckschnitt-Problem • ist ein Punkt in einem anderen Rechteck enthalten, dann • überschneiden sich auch die Rechtecke • Ergebnis ist Reduktion auf das Punkteinschlußproblem • Gesucht sind alle Punkte, die links und rechts sowie oben • und unten von Segmenten eingeschlossen sind • Zwei Schritte: • Ergebnisbildung entlang der x-Achse • Überprüfung entlang der y-Achse

  9. Spatial Join Rechteckschnitt-Problem

  10. Spatial Join Partition Based Spatial Merge Join • Annahme: • R und S sind die Eingaben des Joins • Eingaben sind Folge von Tupeln • jedes Tupel hat räumliches Attribut, welches im Join • benutzt wird • jedes Tupel hat eindeutigen Identifizierer • OID des Tupels

  11. Spatial Join Partition Based Spatial Merge Join • Filter Step: • Einlesen aller Tupel der ersten Relation R • Key-Pointer Element bestehend aus OID und mbb RKP • RKP als temporäre Relation auf der Festplatte • speichern • Identisch für Eingabe S • Ziel: mbbs in RKP finden, die mit einem beliebigen • mbb aus SKP in Beziehung stehen • Planesweep Algorithmuen bestimmen alle mbbs aus RKP • und SKP die überlappen und fügen sie der Ergebnismenge • hinzu

  12. Spatial Join Partition Based Spatial Merge Join • Filter Step: • für passende Paare wird die OID Information herausge- • zogen und das OID-Paar wird zur Ausgabe dieses • Schrittes hinzugefügt

  13. Spatial Join Partition Based Spatial Merge Join • Filter Step: Sweepline Ergebnismenge

  14. Spatial Join Partition Based Spatial Merge Join • Filter Step: • Partitionen bilden, falls RKP und SKP nicht vollständig • in den Speicher passen • R1KP, R2KP... RPKP S1KP, S2KP... SPKP Partitionen Universum

  15. Spatial Join Partition Based Spatial Merge Join • Filter Step: • Partitionen werden so gebildet, dass für jedes Schlüssel- • element in einer Partition RiKP alle Schlüsselelemente • aus SKP, die ein überlappendes mbb besitzen, in der • zugehörigen SiKP Partition vorhanden sind • Größe der einzelnen Partitionen so gewählt, dass für • jedes i RiKP und SiKP simultan, komplett in den • Speicher passen • Um Partitionen zu bilden, wird Partitionierungsfunktion • gebildet

  16. Spatial Join Partition Based Spatial Merge Join • Filter Step: • Partitionierungsfunktion: • Algorithmus bestimmt das Universum der Eingabe • Unterteilung des Universums in P Bereiche • Anwendung der räumlichen Partitionierungsfunktion • auf das mbb eines Schlüsselelementes

  17. Spatial Join Partition Based Spatial Merge Join • Das Key-Pointer Element wird dann in jeder überlappten • Partition eingefügt Partition 2 Partition 1 Partition 3 Partition 4 • Bestimmung der Anzahl der benötigten Partitionen:

  18. Spatial Join Partition Based Spatial Merge Join • dieser Ansatz kann zu sehr unterschiedlichen Verteilungen • der mbbs führen • besser: Universum in NT-Teile zerlegen, wobei NT  P • Teile werden von links oben nach rechts unten von 0 bis • NT - 1 nummeriert

  19. Spatial Join Partition Based Spatial Merge Join • nun sortiert man diese Teile den einzelnen P Partitionen zu, • wozu man beispielsweise Hashing benutzt • Um diese Partitionierung auf mbbs anzuwenden, muss man alle • Teile, die mit dem mbb überlappen bestimmen und die dazuge- • hörigen key-pointer Elemente in die dazugehörigen Partitionen • einfügen • Überlappt ein ein mbb mit Teilen von mehreren Partitionen, • so wird sein key-pointer natürlich in allen Partitionen eingefügt

  20. Spatial Join Partition Based Spatial Merge Join • Aufteilung mit • 3 Partitionen und • 12 Teilen • man erreicht eine bessere Verteilung der mbbs, woraus • allerdings auch ein erhöhter Speicherverbrauch resultiert

  21. Spatial Join Partition Based Spatial Merge Join • Refinement Step: • Einlesen der Ergebnismenge des Filter Steps • Ergebnis: Relation, deren Tupel die Form <OIDR,OIDS> • haben, sodass die mbbs aller Paare sich überlappen • Sortierung der OID Paare • OIDR als Primärschlüssel • OIDS als Sekundärschlüssel • Während der Sortierung werden auch die Duplikate • eliminiert • Es werden so viele R Tupel zusammen mit dem dazuge- • hörigen Array von <OIDR,OIDS> Paaren von der Fest- • platte gelesen, wie in den Speicher passen

  22. Spatial Join Partition Based Spatial Merge Join • Refinement Step: • Danach leitet man die Pointer um, damit sie auf die • eigentlichen Tupel zeigen und macht dann dasselbe mit • den dazugehörigen Tupeln aus S und vergleicht dann die • eigentlichen Tupel auf Überschneidung

  23. Spatial Join Scalable Sweeping Based Spatial Join • Algorithmus, welcher auf dem PBSM basiert • auch hier wird die Eingabe in einzelne Partitionen aufgeteilt; • der Partitionierungsschritt wird allerdings nur ausgeführt, • wenn er wirklich benötigt wird • Partitionen werden nur entlang einer Achse ausgerichtet • benötigt wird lediglich die Sweep-Struktur, nicht die Daten • im Hauptspeicher • bei einer Datengröße von N beträgt die Sweep Struktur nur • noch

  24. Spatial Join Scalable Sweeping Based Spatial Join • das bietet gute Overall-Performance und dennoch Worst-Case • Effizienz • der eigentliche Algorithmus wird in zwei Schritten ausgeführt: • Eindimensionaler Fall: Finde alle Überschneidungen • zwischen zwei Sätzen von • Intervallen; die Daten werden • anhand einer Achse vejoint • Zweidimensionaler Fall: ausgehend vom Ergebnis des • eindimensionalen Falles werden • die Daten anhand der zweiten • Achse überprüft

  25. Spatial Join Scalable Sweeping Based Spatial Join • Eindimensionaler Fall: Intervall Join X-Achse • jedes Intervall oder ist definiert durch untere • Schranke pmin und obere Schranke pmax • Problem: alle Überschneidungen zwischen einem Intervall in • R und und einem in S zu finden

  26. Spatial Join Scalable Sweeping Based Spatial Join • Eindimensionaler Fall: Intervall Join • Annahme: Intervalle p aus R und S sortiert nach ihren • unteren Schranken in einer Liste L • dazu sind O(n logm n) Schritte erforderlich • O(n+t) I/O Operationen für den restlichen Algorithmus

  27. ) Durchsuche die Liste anhand der aufsteigenden unteren Schranken und • erhalte dabei zwei, Anfangs leere, Listen LR und LS mit „aktiven“ • Intervallen aus R und S. Um es genauer zu sagen, mache mit jedem • Intervall p in L folgendes: • ) Wenn p R, dann füge p zu LR hinzu und suche durch die ganze Liste LS • Wenn ein Intervall s in LS sich mit p überschneidet, dann gib die • Überschneidung aus und behalte s in LS, sonst lösche s aus LS • ) Wenn p S, dann füge p zu LS hinzu und suche durch die ganze Liste LR • Wenn ein Intervall r in LR sich mit p überschneidet, dann gib die • Überschneidung aus und behalte r in LR, sonst lösche r aus LR Spatial Join Scalable Sweeping Based Spatial Join • Algorithmus Intervall Join:

  28. Spatial Join Scalable Sweeping Based Spatial Join • Zweidimensionaler Fall: Rechteck-Join • jedes Rechteck wird durch eine untere Schranke auf der • x-Achse und auf der y-Achse definiert, sowie durch eine • obere Schranke sowohl auf der x, als auch auf der y-Achse • Rechtecke anhand ihrer unteren Schranken in Liste L sortiert

  29. Spatial Join Scalable Sweeping Based Spatial Join • Algorithmus Rechteck Join: • ) Partitioniere den zweidimensionalen Raum in k vertikale Streifen, so dass • in jedem Streifen max. 2N/k Rechtecke anfangen oder aufhören, für ein • noch zu bestimmendes k • ) Ein Rechteck wird als klein bezeichnet, wenn es komplett in einem • einzigen Streifen enthalten ist. Sonst wird es als groß bezeichnet. Teile • jedes große Rechteck in exakt 3 Teile, zwei Endstücke im ersten und • letzten Streifen der Überschneidung und ein Mittelstück dazwischen. • Dieses Mittelstück wird an die Anzahl der Streifen angepaßt, also bei • allen eingefügt. Das Problem wird in zwei Schritten gelöst: • ) Zuerst berechne alle Überschneidungen zwischen einem Mittelstück • aus R und einem Mittelstück aus S und alle Überschneidungen zwischen • einem Mittelstück aus R und einem kleinen Rechteck aus S oder einem • Mittelstück aus S und einem kleinen Stück aus R

  30. Spatial Join Scalable Sweeping Based Spatial Join • a) Durchsuche die Liste L in aufsteigender Reihenfolge nach unteren • Schranken. Für jedes Intervall p in L tue folgendes: • 1. Wenn p P und p ist komplett enthalten in einem Streifen i, dann • füge p in Lr i,i ein. Durchsuche jede Liste LS h,j mit h<i<j, berechne • die Überschneidungen und lösche jedes Element der Liste, das nicht • mit p überlappt. Schreibe p auf die Festplatte um sie später in den • rekursiven Suchproblemen benutzen zu können • 2. Wenn p R und p ist groß und die Mittelstücke bestehen aus den • den Streifen i, i+1,...j dann füge p in Lr i-1,j+1 ein. Durchsuche dann • die ganzen Listen LS i´,j,´ mit i<j´ und j>i´, berechne die Überschnei- • dungen und lösche jedes Element einer Liste, das nicht mit p • überlappt. Speichere die Endstücke von p auf der Festplatte um sie • später in den entsprechenden Subproblemen einsetzen zu können

  31. Spatial Join Scalable Sweeping Based Spatial Join • a) Durchsuche die Liste L in aufsteigender Reihenfolge nach unteren • Schranken. Für jedes Intervall p in L tue folgendes: • 3. Wenn p R und p ist klein, dann führe 1. aus und vertausche die • Rollen von R und S • 4. Wenn p R und p ist groß, dann führe 2. aus und vertausche die • Rollen von R und S • b) In jedem Streifen berechne rekursiv alle Überschneidungen zwischen einem • Endstück oder kleinem Rechteck aus R und einem Endstück oder kleinen • Rechteck aus S

  32. Spatial Join Scalable Sweeping Based Spatial Join • man geht anhand der unteren Schranken vor und berechnet • rekursiv die Überschneidungen; für Mittelstücke geht dies • besonders einfach, da sie den kompletten Streifen abdecken • daß sich in diesem Streifen alle Rechtecke, • ob klein oder groß, mit dem obersten Über- • schneiden, ist offensichtlich

  33. Spatial Join Scalable Sweeping Based Spatial Join • daß sich in diesem Streifen alle Rechtecke, • ob klein oder groß, mit dem obersten Über- • schneiden, ist offensichtlich • kompliziert wird es für Endstücke oder • kleine Rechtecke; diese könne sich • überschneiden, müssen es aber nicht

  34. Spatial Join Spatial Join/Algorithmen • Partition Based Spatial-Merge Join • Scalable Sweeping-Based Spatial Join

  35. Spatial Join Sweep Algorithmen • Plane-Sweep-Technik verbreitetes Verfahren um den Schnitt • zwischen Objekten zu bestimmen • Ablauf: • mbbs gemäß ihrer minimalen Koordinaten • bezüglich einer Dimension sortieren • Lauflinie wird über den Datenraum bewegt, die • senkrecht auf der Achse steht, bezüglich der sortiert • wurde

  36. Spatial Join Join Operation • Algorithmus: • Sweeplinie läuft durch den relevanten Teilraum von R2 • trifft Sweeplinie auf untere Kante eines Rechteckes r • (OE r P) merkt man sich das r • aktive Rechtecke aus Q, deren obere Kanten bereits • überschritten sind werden gelöscht • Vergleich der Intervalle der verbliebenen Rechtecke aus • Q mit dem Intervall von r • das betreffende Rechteck aus Q schneidet sich mit r • wenn es zu einem nicht leeren Schnitt kommt

  37. Spatial Join Join Operation • Algorithmus: • Datenstruktur muß folgende Methoden unterstützen: • Insert(D,r) Rechteck r in D speichern • Delete(D,y) Alle Rechtecke r aus D löschen, für • die gilt rymax < y • Query(D,r) gebe alle die Rechtecke aus D zurück, • deren Intervalle mit dem von r einen • nicht leeren Schnitt haben

  38. Spatial Join Partition Based Spatial Merge Join • Refinement Step: Part. 1 Part. 2

  39. Spatial Join Scalable Sweeping Based Spatial Join • Man bestimmt also die Kandidaten, die man später noch • genauer betrachten müßte, da sie für eine Überlappung in • Frage kommen

  40. Spatial Join Plane-Sweep und das Gesetz der Quadratwurzel • Großer Einfluß von Plane-Sweep Algorithmus auf die Effizienz • von Spatial Join Operationen • benötigter Speicher bestimmt durch die maximale Anzahl • Rechtecke, die von einer einzelnen, horizontalen Linie • geschnitten werden • diese Anzahl = maximale Überlappung • i.d.R ist maximale Überlappung << als die Summe der • Rechtecke • bei einer Datengröße von N ist die Datengröße der maximal • überlappenden Rechtecke von irgendeiner Linie gleich • Der SSSJ besteht aus einer Kombination von dem theoretisch • optimalen Rechteck Join mit einer effizienten Plane.Sweep • Technik

  41. Spatial Join Plane-Sweep und das Gesetz der Quadratwurzel • SSSJ führt eine anfängliche Sortierung durch und versucht • dann direkt den Plane-Sweep durchzuführen • der vertikale Partitionierungsschritt wird nur benutzt, wenn • die Sweep Struktur nicht in den Speicher passt. • Arten von Plane-Sweep Algorithmen: • Tree_Sweep • List_Sweep • Striped_Sweep und PBSM-Algorithmus • Forward_Sweep

  42. GIS-Seminar Wintersemester 01/02 Spatial Join Vortrag: Carsten Breuer

  43. Spatial Join Spatial Join • wichtigste Join- Operation in einem GIS • paarweise Verknüpfung zweier Mengen von geometrischen • Objekten deren räumliche Merkmale eine räumliche • Aussage erfüllen • verschiedenen Typen räumlicher Aussagen • bedeutendste Varianten: • Intersection Join • Overlap Join

  44. Spatial Join Spatial Join • Einsatzmöglichkeiten: alle Arten von Anfragen und Operationen, • die geometrische Daten miteinander in Verbindung setzen • Grundlage für die effiziente Ausführung des Map Overlays • kann dazu dienen, aus mehreren Geo- Objekten ein neues Ob- • jekt zu generieren oder um räumliche Abhängigkeiten zwischen • Geo- Objekten festzustellen • das Join- Prädikat und die betroffenen Attribute sind geometri- • schen Typs (Bsp. für Attributstypen: Streckenzüge, Flüsse,..)

  45. Spatial Join Spatial Join/ Beispiel 1 • gegeben: Relationen Städte und Wälder • die Anfrage „finde alle Wälder, die in einer Stadt liegen“ ist • ein möglicher Spatial Join auf den Relationen Wälder und • Städte mit dem Prädikat „liegt in“ • liegt ein Wald „w“ in einer Stadt „s“, so wäre das Paar (w,s) • in der Ergebnismenge des Spatial Joins

  46. Spatial Join Spatial Join/ Beispiel 2 • Kombination zweier Karten mit verschiedenen Typen von Ob- • jekten • Kombination einer Nutzungskarte mit einer Niederschlagskarte • Anfrage „finde alle Waldgebiete mit mindestens 20 Litern • durchschnittlichem Regenfall pro Monat“

  47. Spatial Join Berechnung des Spatial Joins zwei Schritte: • Filter Step • Refinement Step Filter Step: • Minimum Bounding Box (mbb) • Plane Sweep Algorithmus • Ergebnis: Kandidatenmenge Refinement Step: • Entfernung der mbbs und Vergleich der eigentlichen • Objekte

  48. Spatial Join Strategien und Algorithmen für Spatial Joins • Lineare Strukturen • jede Beziehung mit einer linearen Struktur indiziert z-geordnete Bäume • R-Bäume • synchronisiertes Durchgehen beider Bäume • Einzel-Index • indizierte Nested Loop Methode • Kein Index • vereinfachte Hash-Join Methode

  49. Zelle mit dem key z ist in einer mit dem key z´ enthalten (oder ist gleich), wenn z´ ein Präfix von z ist und wenn z´ z Spatial Join z-geordneter Spatial Join Voraussetzung: beide Beziehungen sind z-geordnet z-geordneter Baum als Index Blätter von jedem Baum: Liste L von Einträgen der Form [z,oid] die Zellen von einer Zerlegung müssen nicht unbedingt minimal sein die Beziehungen teilen sich den gleichen Raum

More Related