ORACLE PRODUCT LOGO Quelle: TeleAtlas Überblick: Oracle Spatial 3D Karin Patenge / Carsten Czarski Oracle Deutschland B.V. & Co KG
Agenda 3D Daten: Wo werden sie genutzt...? 3D Daten: Welche Varianten gibt es...? Anforderungen an 3D-Daten Herausforderungen im 3D Umfeld Lösungsansätze Fazit und Ausblick
Typische 3D Anwendungsfälle Stadtplanung Potenzialberechnungen (bspw. "Solar") Erneuerbare Energien Lärmverteilung Hitzeverteilungen Öffentliche Sicherheit Smart Cities
Möglichkeiten zur Darstellung von 3D TU Berlin, Inst. für Geodäsie (Prof. Kolbe)
3D Daten haben eigene Herausforderungen Große Datenmengen Spezielle Datenverarbeitung Eigene Werkzeuge Spezielle Expertise Eigene Datenmodelle und Standards Visualisierung
Wie entstehen 3D-Daten...? Sensordaten entstehen als Punktwolke LIDAR (Light Detection and Ranging) Seismische Sensoren Viele Millionen Punkte modellieren die Realität Eigener Datentyp in Oracle11g: SDO_PC Aus Punkten entstehen Oberflächen: Triangulated Irregular Network Eigener Datentryp in Oracle11g: SDO_TIN
Entstehung von 3D-Daten Typischer Prozess LiDAR Dateien Erzeugen der Geometrien LiDAR Loader SDO_PC Tabellen Query and Clip TIN erzeugen TIN Tabellen Punkte laden Query and Clip Textdateien Punkttabellen Erzeugen der Geometrien
Daten mit liblas laden Download von http://liblas.org/ Für Windows-Systeme: OSGeo4W Paket http://trac.osgeo.org/osgeo4w/ Wichtige Werkzeuge Lasinfo: Informationen über eine LAS Dateifile Las2oci: Lädt LAS-Datei nach Oracle11g Las2las: Kopieren und Transformieren einer LAS Datei Las2txt: Konvertieren LAS nach TEXT Txt2las: Konvertieren TEXT nach LAS http://liblas.org/docs.html
3D Daten speichern: Anforderungen Korrekte, konsistente Nutzung der Höheninformation Dreidimensionale Indizierung und Abfrageunterstützung Dreidimensionale Koordinatensysteme Fähigkeit zur Modellierung von 3D-Objekten Punkte, Linien, Polygone mit Höheninformation ("z") Oberflächen (Surface), Körper (Solid) Punktwolken Unterstützung auch "höherer" Datenmodelle Zum Beispiel CityGML
Oracle Spatial: Dreidimensional Geometrische Elemente einfach zusammengesetzt Triangulated Irregular Network (TIN) Oberflächen einfach zusammengesetzt Punktwolke (Point Cloud) Körper
Dreidimensionale Objekte Einfache Oberfläche 3D Polygon Zusammengesetzte Oberfläche Extrusion Erzeugen von Körpern aus 2D-Polygonen Einfacher Körper Zusammengesetzter Körper
3D-Objekte als SDO_GEOMETRY: Im Detail SDO_GTYPE: 300x Beispiel: Modellierung eines Körpers... 10, 70, 50 50, 70, 50 10, 50, 0 50, 10, 50 10, 10, 0 50, 10, 0
3D-Objekte als SDO_GEOMETRY: Im Detail SDO_GTYPE: 3008 = SOLID Beispiel: Modellierung eines Körpers... 6 einzelne Oberflächen Richtung der Vektoren beachten!
SDO_GEOMETRY: Und so sieht er aus! SDO_GEOMETRY( 3008, 31468, null, sdo_elem_info_array( 1,1007,1, 1,1006,6, 1,1003,1, 16,1003,1, 31,1003,1, 46,1003,1, 61,1003,1, 76,1003,1), sdo_ordinate_array( 10,10, 0, 10,50, 0, 50,50, 0, 50,10, 0, 10,10, 0, 50,10, 0, 50,50, 0, 50,70,50, 50,10,50, 50,10, 0, 10,50, 0, 10,70,50, 50,70,50, 50,50, 0, 10,50, 0, 10,10, 0, 10,10,50, 10,70,50, 10,50, 0, 10,10, 0, 10,10, 0, 50,10, 0, 50,10,50, 10,10,50, 10,10, 0, 10,10,50, 50,10,50, 50,70,50, 10,70,50, 10,10,50) )
Der Körper (solid) ist modelliert Volumen berechnen... select bezeichnung, sdo_geom.sdo_volume(geometry, 1) volume from 3d_solid BEZEICHNUNG VOLUME -------------------- --------- SOLID1 100000 1 Zeile ausgewählt.
3D-Geometrien: Indexerstellung... Parameter beachten: sdo_indx_dims create index idx_3d_geom on spatial_3d_tests (geometry) indextype is mdsys.spatial_index PARAMETERS ('sdo_indx_dims=3') Spatial-Operatoren für 3D nur eingeschränkt: SDO_FILTER SDO_ANYINTERACT SDO_WITHIN_DISTANCE SDO_NN
3D-Geometrien: Räumliche Abfragen... Abfrage mit SDO_ANYINTERACT select p.bezeichnung from 3d_points p, 3d_solid s where s.bezeichnung = 'SOLID1' and sdo_anyinteract( s.geometry, p.geometry ) = 'TRUE' BEZEICHNUNG -------------------- POINT_2 POINT_5 2 Zeilen ausgewählt.
3D-Geometrien: Abstandsberechnung: 3D Abfrage mit SDO_DISTANCE select p.bezeichnung, sdo_geom.sdo_distance(s.geometry, p.geometry, 1) abstand from 3d_points p, 3d_solid s where s.bezeichnung = 'SOLID1' and not sdo_anyinteract(s.geometry, p.geometry) = 'TRUE' BEZEICHNUNG ABSTAND -------------------- --------- POINT_1 50,020 POINT_3 70,000 POINT_4 7,428 3 Zeilen ausgewählt.
Datenmodelle für "City Modelling" Starke Verbreitung von 3DCityDB (Open Source) Gebäude LOD1 Gebäude LOD2 Gebäude LOD3 Gebäude LOD4 Verschiedene Detailtiefen Texturen und Fassaden Orthofotos Versionierung Source: Research Center Karlsruhe
Visualisierung und Werkzeuge... und weitere Werkzeuge, die 3DCityDB unterstützen
Visualisierung mit Google: KML
KML erzeugen und ins "XDB Repository" legen
... und in Google Earth ansehen...
Weitere Informationen Oracle Dokumentation Oracle Spatial User's Guide and Reference Abschnitt 1.11: Dreidimensionale Spatial-Objekte Oracle Technology Network (OTN) Database Location Services http://otn.oracle.com Blog: Oracle Spatial und Oracle Maps http://oracle-spatial.blogspot.com http://oracle-maps.blogspot.com Beitrag zu 3D mit Oracle Spatial im Splitter (vorauss. in Ausgabe Jun. 2012) http://www.itdz-berlin.de/services/splitter_archiv.html