Institut für Geodäsie und Geoinformationstechnik CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell Dipl.-Ing. Alexandra Stadler Technische Universität Berlin Institut für Geodäsie und Geoinformationstechnik Fachgebiet Methodik der Geoinformationstechnik 13. Oktober 2008 Motivation Institut für Geodäsie und Geoinformationstechnik Geodaten-Sammelstelle Zusammentragen, vergleichen, anpassen, fortführen und austauschen Daten beliebiger Herkunft Voraussetzung: Grundlegendes Datenmodell und Austauschformat für 3D-Stadtmodelle Einheitliche Strukturierung garantiert Verwendung von CityGML 2 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 CityGML: Überblick Institut für Geodäsie und Geoinformationstechnik Technisches Modelliert alle wesentlichen Bestandteile einer virtuellen Stadt in ihrer Semantik, Geometrie, Topologie und Erscheinung GML-Anwendungsschema, XML-basiert Datenmodell und Austauschformat für virtuelle 3D Stadtmodelle Geschichtliches Entwickelt in der SIG3D NRW unter Federführung von Prof. Thomas Kolbe (IGG TU Berlin) Dr. Gerhard Gröger (IGG Uni Bonn) Auf dem Weg zum internationalen Standard des Open Geospatial Consortium (OGC) 3 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 CityGML: Auf dem Weg zum OGC-Standard Institut für Geodäsie und Geoinformationstechnik 2002-05 2006-03-06 2007-05-30 2008-02-04 2008-02-19 2008-03-20 2008-08-20 CityGML Kick-Off CityGML 0.3.0 OGC Discussion Paper CityGML 0.4.0 OGC Best Practices Paper CityGML 1.0.0 (Proposal) OGC Request for Comments <<<<<<< Public Comment Phase >>>>>>> CityGML 1.0.0 OGC Implementation Specification (after final OGC TC vote) Internationaler Standard 4 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 CityGML: thematische Gliederung in Objektklassen Institut für Geodäsie und Geoinformationstechnik <<Feature>> gml::_Feature <<Feature>> <<FeatureCollection>> CityModel ExternalReference * _CityObject * - informationSystem: anyURI - externalReference: ExternalObjectReferenceType <<Feature>> <<Feature>> <<Feature>> <<Feature>> <<Feature>> _Abstract Building _Transportation Object ReliefFeature _WaterBody _Vegetation … <<Geometry>> LOD 0-4 GeometryProperty gml::_Geometry LOD 0-4 GeometryProperty 5 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 CityGML: Detailstufen in der Gebäudemodellierung Institut für Geodäsie und Geoinformationstechnik Gebäudemodell ab LOD1 ab LOD2 ab LOD3 ab LOD4 6 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 CityGML: Kohärenz von Semantik und Geometrie Institut für Geodäsie und Geoinformationstechnik Semantik Geometry basierend auf ISO 19107 Building Composite Solid BuildingPart ... Geometrie Semantics basierend auf ISO 19109 BuildingPart Roof Surf. Roof Surf. Wall Surf. Wall Surf. Door Win dow Building Installation ... Solid ... ... Solid Poly gon Poly gon Composite Surface Poly gon Poly gon Poly gon Composite Surface ... ... 7 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Eine 3D-Geodatenbank für Berlin Institut für Geodäsie und Geoinformationstechnik Auftraggeber Berliner Senatsverwaltung für Wirtschaft, Arbeit und Frauen Berlin Partner GmbH 1. Projektphase Institut für Geodäsie und Geoinformationstechnik – Uni Bonn Datenbank-Prototyp (Oracle 10g R2 Spatial) Basierend auf CityGML (Version 0.3.0) Gebäude bis LOD3, DGM 2. Projektphase Institut für Geodäsie und Geoinformationstechnik - TU Berlin Adaption auf aktuelle Version von CityGML (0.4.0) 99% Unterstützung von CityGML 8 Gebäude inklusive Innenraummodellierung und Adressierung Weitere thematische Module: Appearance, Gewässer, Verkehrsnetz, … Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Funktionsumfang der 3D-Geodatenbank Institut für Geodäsie und Geoinformationstechnik Gebäude bis LOD 3 (rekursive) Gruppierung von Objekten Generische (prototypische) 3D-Objekte Gebäude inkl. Innenraummodellierung (LOD 4) umfassende thematische Modellierung Digitale Geländemodelle (DGM) Verwaltung von DGMs und Luftbildern (WebServices) Referenzierung von externen Datenquellen Versionsmanagement Oberflächendaten Import und Export von CityGML-Files 2. Projektphase Flexible 3D-Geometrien Zusatz 1. Projektphase von CityGML vererbte Eigenschaften 9 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Entwicklungsablauf Institut für Geodäsie und Geoinformationstechnik Entwicklung eines Import/Exporttools für CityGML-Instanzdokumente CityGML Xsd Schema <xs:complexType name="CityModelType"> <xs:complexContent> <xs:extension ... Java Bindung (JAXB) Schema-basierte Klassen public class CityModel { …} UML Schema Vereinfachung des komplexen Datenmodells von CityGML (Imp/Export Tool) Datenexport Datenimport Oracle Datenbank Schemavereinfachung a vereinfachtes UML Schema c SQL Abfragen DatenbankErzeugung Abbildung Klassen Tabellen Relationales Datenbankschema SQL DDL Befehle (JDeveloper) b Ableitung des relationalen Datenbankschemas 10 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Vereinfachung des Datenmodells von CityGML Institut für Geodäsie und Geoinformationstechnik Entwicklung eines Import/Exporttools für CityGML-Instanzdokumente CityGML Xsd Schema <xs:complexType name="CityModelType"> <xs:complexContent> <xs:extension ... Java Bindung (JAXB) Schema-basierte Klassen public class CityModel { …} UML Schema Vereinfachung des komplexen Datenmodells von CityGML (Imp/Export Tool) Datenexport Datenimport Oracle Datenbank Schemavereinfachung a vereinfachtes UML Schema c SQL Abfragen DatenbankErzeugung Abbildung Klassen Tabellen Relationales Datenbankschema SQL DDL Befehle (JDeveloper) b Ableitung des relationalen Datenbankschemas 11 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Vereinfachung des Datenmodells von CityGML Institut für Geodäsie und Geoinformationstechnik Thematisches Modell deckt breites Spektrum an Anwendungsfeldern ab Komplexe Relationen innerhalb einzelner thematischer Module Vergleichbare Hierarchien auf Seite der Geometrie bRepMember 1..* <<Geometry>> _BRepGeometry +isSolid : boolean [1] +isComposite : boolean [1] +isTriangulated : boolean [1] 0..1 <<Geometry>> BRepAggregate <<Geometry>> Polygon +geometry : Polygon [1] 12 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Ableitung des relationalen Datenbankschemas Institut für Geodäsie und Geoinformationstechnik Entwicklung eines Import/Exporttools für CityGML-Instanzdokumente CityGML Xsd Schema <xs:complexType name="CityModelType"> <xs:complexContent> <xs:extension ... Java Bindung (JAXB) Schema-basierte Klassen public class CityModel { …} UML Schema Vereinfachung des komplexen Datenmodells von CityGML (Imp/Export Tool) Datenexport Datenimport Oracle Datenbank Schemavereinfachung a vereinfachtes UML Schema c SQL Abfragen DatenbankErzeugung Abbildung Klassen Tabellen Relationales Datenbankschema SQL DDL Befehle (JDeveloper) b Ableitung des relationalen Datenbankschemas 13 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Ableitung des relationalen Datenbankschemas Institut für Geodäsie und Geoinformationstechnik bRepMember 1..* <<Geometry>> _BRepGeometry +isSolid : boolean [1] +isComposite : boolean [1] +isTriangulated : boolean [1] 0..1 <<Geometry>> BRepAggregate <<Geometry>> Polygon +geometry : Polygon [1] BRepGeometry ID: NUMBER <<PK>> IS_SOLID : BOOLEAN IS_COMPOSITE : BOOLEAN IS_TRIANGULATED : BOOLEAN BRepAggregate ID: NUMBER <<PK>><<FK>> BRepAggregate ID: NUMBER <<PK>> IS_SOLID : BOOLEAN IS_COMPOSITE : BOOLEAN IS_TRIANGULATED : BOOLEAN Polygon Polygon ID: NUMBER <<PK>> IS_SOLID : BOOLEAN IS_COMPOSITE : BOOLEAN IS_TRIANGULATED : BOOLEAN GEOMETRY : SDO_GEOMETRY BRepGeometry ID: NUMBER <<PK>> TYPE : VARCHAR2(30) IS_SOLID : BOOLEAN IS_COMPOSITE : BOOLEAN IS_TRIANGULATED : BOOLEAN GEOMETRY : SDO_GEOMETRY ID: NUMBER <<PK>><<FK>> GEOMETRY : SDO_GEOMETRY Ansätze zur Abbildung von Vererbungshierarchien Umsetzung der Geometrieklasse 14 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Entwicklung eines Import/Exporttools Institut für Geodäsie und Geoinformationstechnik Entwicklung eines Import/Exporttools für CityGML-Instanzdokumente CityGML Xsd Schema <xs:complexType name="CityModelType"> <xs:complexContent> <xs:extension ... Java Bindung (JAXB) Schema-basierte Klassen public class CityModel { …} UML Schema Vereinfachung des komplexen Datenmodells von CityGML (Imp/Export Tool) Datenexport Datenimport Oracle Datenbank Schemavereinfachung a vereinfachtes UML Schema c SQL Abfragen DatenbankErzeugung Abbildung Klassen Tabellen Relationales Datenbankschema SQL DDL Befehle (JDeveloper) b Ableitung des relationalen Datenbankschemas 15 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Entwicklung eines Import/Exporttools: Überblick Institut für Geodäsie und Geoinformationstechnik Datenimport CityGML Eingabedatei ____ ____ ____ ____ _____ ____ _____ ____ CityGML lesen folgt Xsd Schema <xs:complexType name="CityModelType"> <xs:complexContent> <xs:extension ... Java Bindung Zugriffsschicht Schema-basierte Klassen public class CityModel { …} Instanz von CityGML ____ ____ ____ ____ _____ ____ _____ ____ CityModel cityModel1 = new CityModel () ; … Instanz von folgt Ausgabedatei Features CityGML schreiben Features CityModel cityModel1 = new CityModel () ; … Datenbank -import angewendet ImportFunktionalität ExportFunktionalität Oracle Datenbank ___ ___ ___ ___ ___ ___ statischer Kern der Software angewendet Datenbank -export Datenexport 16 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Charakteristika des Import/Exporttools Institut für Geodäsie und Geoinformationstechnik Unterstützung beliebig großer CityGML-Dateien (>4GB) Nebenläufigkeit der Datenverarbeitung durch Multithreading Hohe Performance auch auf Standard-Systemen 7GB Datei (>1mio LOD1-Gebäude) Import: 90min, Export: 10min Vergabe von weltweit eindeutigen IDs (UUIDs) Benutzerdefinierter Import und Export durch Filteroptionen GML ID, GML Name Blockweiser Import/Export zur Datenkachelung (nach IDs, mittels Bounding Boxes) Auswahl von Objektklassen Veröffentlichung als Open Source Software 17 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Unterstützung beliebig großer CityGML-Dateien Institut für Geodäsie und Geoinformationstechnik Partielle Verarbeitung von XML-Dokumenten Datenstrom-basiertes, ereignisorientiertes XML-Parsen Simple API for XML (SAX) Sequentielles Einlesen von XML-Elementen in den Hauptspeicher keine Beschränkung der absoluten Dateigröße auf <4GB Problem: SAX-Ereignisse zustandslos Referenzen gehen verloren und deren Bindung an Java-Klassen Objektorientierte Sicht auf XML-Daten Java Architecture for XML Binding (JAXB) Abbildung einer XML-Schemainstanz auf ein Java-Objektmodell Kommunikation mit dem Objektmodell über (Un)Marshalling kombiniert in einem 2-stufigen Verfahren 18 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Nebenläufigkeit der Datenverarbeitung Institut für Geodäsie und Geoinformationstechnik (Quasi-)parallele Ausführung mehrerer interagierender Prozesse Entkopplung durch Verarbeitung in separaten Threads Parallelisierung abhängig von Anzahl an Prozessoren/Prozessorkernen Achtung: Kontextwechsel überhöhte Lebenszyklus- und Ressourcenverwaltung Thrashing durch Mangel an Arbeitsspeicher Wiederverwendung von Threads durch Verwaltung in Thread Pools Verzögerungen aufgrund von Thread-Erzeugung entfallen Thread Pool Thread Pool Worker Worker Worker Worker Queue Queue 19 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Datenimport – Schritt 1 Institut für Geodäsie und Geoinformationstechnik ____ _____ ____ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ Buffer Queue CityGML Eingabedatei ____ _____ ____ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ Temporärer Buffer SAX Parser Parser Thread (1 Instanz) TopLevel Feature Queue JAXB Unmarshaller Featureerzeugung Converter Thread (begrenzte Anzahl von Instanzen) 20 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Datenimport – Schritt 2 Institut für Geodäsie und Geoinformationstechnik ____ _____ ____ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ TopLevel Feature Queue SQL-Befehl Queues Importfilter Oracle Datenbank Datenbankupdate Geodaten ___ ___ ___ commit ___ ___ ___ SQL Erzeugung XLink Information XLinks XLink Queue Importer Thread (begrenzte Anzahl von Instanzen) commit XLink Thread ___ ___ ___ mit separater XLink Speicherung (temporär) (begrenzte Anzahl von Instanzen) 21 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Datenimport – Schritt 3 Institut für Geodäsie und Geoinformationstechnik ____ _____ ____ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ XLink Resolver Queue Oracle Datenbank ___ ___ ___ ___ ___ ___ XLink Splitter ___ ___ ___ SQL-Befehl Queue Oracle Datenbank Datenbankupdate SQL-Erzeugung ___ ___ ___ ___ ___ ___ XLinks mit separater XLink Speicherung (temporär) XLink Splitter Thread (1 Instanz) commit mit aufgelösten XLinks XLink Resolver Thread (begrenzte Anzahl von Instanzen) 22 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Datenexport – Schritt 1 Institut für Geodäsie und Geoinformationstechnik ____ _____ ____ ____ _____ ____ _____ ____ ____ _____ ____ ____ ____ _____ ____ ___ ___ ___ ___ ___ ___ Exportfilter Splitter Thread SQL (1 Instanz) TopLevel Feature ID Queue Oracle Datenbank ___ ___ ___ Datenbankausgabe ___ ___ ___ Feature SQL Feature / Geometrie Anfrage Exporter Thread 23 (begrenzte Anzahl von Instanzen) Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Datenexport – Schritt 2 Institut für Geodäsie und Geoinformationstechnik ____ _____ ____ ____ _____ ____ _____ ____ ____ _____ ____ ____ ____ _____ ____ ___ ___ ___ ___ ___ ___ Buffer Queue CityGML Ausgabedatei Temporärer Buffer Feature JAXB Marshaller CityGML schreiben ____ _____ ____ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ Exporter Thread IO Writer Thread (begrenzte Anzahl von Instanzen) (1 Instanz) 24 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Benutzeroberfläche Institut für Geodäsie und Geoinformationstechnik 25 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Geplante Erweiterungen Institut für Geodäsie und Geoinformationstechnik Matchingfunktionalität Erkennung korrespondierender Objekte Verlinkung und Austausch von Informationen Entfernen redundanter Informationen Weiterführende Nutzung als Backend für Web Services Web Feature Services (WFS) können existierende Import- und Exportfunktionalität nutzen Alternative zur graphischen Benutzeroberfläche Erweiterung der Exportfunktionalität um standardisierte Formate KML etc. Performanceoptimierung Optimale Verteilung auf physischen Platten 26 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Referenzen Institut für Geodäsie und Geoinformationstechnik 3D city database (2007), www.3dcitydb.org [letzter Zugriff: 2008-06-20]. Döllner J, Kolbe TH, Liecke F, Sgouros T, Teichmann K (2006) The Virtual 3D City Model of Berlin - Managing, Integrating, and Communicating Complex Urban Information, In: Proceedings of the 25th Urban Data Management Symposium UDMS, Aalborg 2006. Emgård L, Zlatanova S (2007) Implementation alternatives for an integrated 3D Information Model, In: Advances in 3D Geoinformation Systems, Springer-Verlag, pp. 313-330. GNU Lesser General Public License, http://www.gnu.org/copyleft/lgpl.html [letzter Zugriff: 2008-06-20]. Gröger G, Kolbe TH, Czerwinski A (2007), Candidate OpenGIS Implementation Specification (City Geography Markup Language), Version 0.4.0, OGC Doc. No. 07-062, Open Geospatial Consortium 2007. Snowflake Software, GO Loader product page (2008), http://www.snowflake software.co.uk/products/goloader/index.htm [letzter Zugriff: 2008-06-20]. 27 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008 Institut für Geodäsie und Geoinformationstechnik Fragen ? Dipl.-Ing. Alexandra Stadler stadler @ igg.tu-berlin.de Technische Universität Berlin Institut für Geodäsie und Geoinformationstechnik Fachgebiet Methodik der Geoinformationstechnik Straße des 17. Juni 135, 10623 Berlin 28 Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell 13. Oktober 2008