260 likes | 334 Views
Making interoperability persistent: A 3D geo database based on CityGML. Alexandra Stadler, Claus Nagel, Gerhard König, Thomas H. Kolbe Technische Universität Berlin Institute for Geodesy and Geoinformation Science Chair of Geoinformation Science. Motivation. Berlin: Management of 3D geo data
E N D
Making interoperability persistent:A 3D geo database based on CityGML Alexandra Stadler, Claus Nagel, Gerhard König, Thomas H. Kolbe Technische Universität Berlin Institute for Geodesy and Geoinformation Science Chair of Geoinformation Science
Motivation • Berlin: Management of 3D geo data • Collect, compare, adapt, update, exchange • Data from various sources (cadastre, planning, architecture, utility networks, etc.) • Precondtion:Existence of a standardised data and exchange format for 3D city models • Ensures consistent and interoperable data structuring • Well-known representative: CityGML
CityGML: Overview • Content • Models all relevant parts of the virtual city according to theirsemantics, geometry, topology and appearance • GML application schema based on XML • Data model and exchange format for virtual 3d city models • History • Developed since 2002 by the Special Interest Group 3d (NorthRhine Westphalia, Germany) • Members from >70 companies, municiplaities and research institutions lead managed by • Prof. Thomas H. Kolbe (IGG TU Berlin) • Dr. Gerhard Gröger (IGG Uni Bonn)
CityGML: On its way to become an OGC standard CityGML Kick-Off 2002-05 CityGML 0.3.0OGC Discussion Paper 2006-03-06 CityGML 0.4.0OGC Best Practices Paper 2007-05-30 CityGML 1.0.0 (Proposal)OGC Request for Comments 2008-02-04 2008-02-192008-03-20 <<<<<<< Public Comment Phase >>>>>>> CityGML 1.0.0OGC Implementation Specification(after final OGC TC vote) 2008-08-20 International standard
<<Geometry>> gml::_Geometry LOD 0-4 GeometryProperty LOD 0-4 GeometryProperty CityGML: Thematically structured into object classes <<Feature>> gml::_Feature ExternalReference - informationSystem: anyURI - externalReference: ExternalObjectReferenceType <<Feature>> _CityObject <<FeatureCollection>>CityModel * * … <<Feature>> _AbstractBuilding <<Feature>> _TransportationObject <<Feature>> ReliefFeature <<Feature>> _WaterBody <<Feature>> _Vegetation
7 CityGML: Coherence of semantics and geometry Semanticsbased on ISO 19109 Geometry based on ISO 19107
(recursive)aggregationof objects DigitalTerrain Models(DTM) Exchange ofDTM and aerial images(WebServices) Flexible3D geometries Buildings up toLOD 3 Generic(prototypical)3D objects Versionmanagement Referencing ofexteriordata sources 2nd project phase 1st project phase Buildingsincludinginteriorstructures(LOD 4) Complexthematicmodelling Import andexport ofCityGML files Appearancedata Functionality of the 3D geo database CityGML properties additions
Creation of an import and export tool for CityGML instance documents CityGML c Xsd Schema <xs:complexTypename="CityModelType"> <xs:complexContent> <xs:extension ... Javabinding (JAXB) Schema-derived classes public class CityModel {… } SQLqueries (Imp/ExportTool) UML Schema Exportdata Importdata Oracledatabase Simplification of CityGML‘s data model Schema-simplifi-cation Databasecreation a Mappingclasses totables simplifiedUML Schema Relationaldiagram SQL DDLstatements (JDeveloper) b Derivation of the relational database schema Development cycle
Creation of an import and export tool for CityGML instance documents CityGML c Xsd Schema <xs:complexTypename="CityModelType"> <xs:complexContent> <xs:extension ... Javabinding (JAXB) Schema derived classes public class CityModel {… } SQLqueries (Imp/ExportTool) UML Schema Exportdata Importdata Oracledatabase Simplification of CityGML‘s data model Schemasimplifi-cation Databasecreation a Mappingclasses totables SimplifiedUML Schema Relationaldiagram SQL DDLstatements (JDeveloper) b Derivation of the relational database schema Simplification of CityGML‘s data model
Simplification of CityGML‘s data model • Thematic model covers a broad range of application fields • Complex relations within thematic modules • Comparable hierarchies on the geometry level
Creation of an import and export tool for CityGML instance documents c Javabinding (JAXB) Schema derived classes public class CityModel {… } SQLqueries (Imp/ExportTool) Export data Import data Derivation of the relational database schema CityGML Xsd Schema <xs:complexTypename="CityModelType"> <xs:complexContent> <xs:extension ... UML Schema Oracledatabase Simplification of CityGML‘s data model Schemasimplifi-cation Databasecreation a Mapping classes totables SimplifiedUML Schema Relationaldiagram SQL DDLstatements (JDeveloper) b Derivation of the relational database schema
Realisation of geometry model Derivation of the relational database schema • Mapping strategies for aggregation hierarchies
Simplification of CityGML‘s data model Schemasimplifi-cation Database creation a Mappingclasses totables SimplifiedUML Schema Relationaldiagram SQL DDLstatements (JDeveloper) b Derivation of the relational database schema Creation of an import and export tool Creation of an import and export tool for CityGML instance documents CityGML c Xsd Schema <xs:complexTypename="CityModelType"> <xs:complexContent> <xs:extension ... Javabinding (JAXB) Schema derived classes public class CityModel {… } SQLqueries (Imp/ExportTool) UML Schema Export data Import data Oracledatabase
Data import Import functionality Javabinding Schema derived classes public class CityModel {… } CityGMLinput file ____ ________ ____ _____ ____ _____ ____ Databaseimport ReadCityGML Features CityModel cityModel1 = new CityModel () ; … Export functionality follows instance of applied Static core ofthe software Oracledatabase applied follows instance of CityGMLoutput file ____ ________ ____ _____ ____ _____ ____ WriteCityGML Features CityModel cityModel1 = new CityModel () ; … Databaseexport Data export _________ _________ Creation of an import and export tool: Overview Access wrapper Xsd Schema <xs:complexTypename="CityModelType"> <xs:complexContent> <xs:extension ...
Characteristics of the import/export tool • Support for CityGML files of arbitrary size (>4GB) • Concurrency of data processing through multithreading • High performance on standard platforms • Use of universally unique identifiers (UUIDs) • Filter options enable user-defined import and export • GML ID, GML name • Bundled import and export for data tiling (classified by IDs or Bounding Boxes) • Selection of object classes • Published as open source software
Thread Pool Thread Pool Worker Worker Worker Worker Queue Queue Concurrency of data processing Parallel non-blocking execution of multiple interacting tasks • Decouple compute and I/O bound • Degree of parallelisation depends on number of processing cores • Attention: Context switch Thread life cycle overhead Resource thrashing • Reuse threads by applying a pooled threads modelThread creation overhead is spread over many tasks
____ _________ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ _________ _________ _________ _________ _________ BufferQueue TopLevel FeatureQueue CityGMLinput file TemporaryBuffer ____ _________ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ JAXBunmarshalling Featurecreation SAX parsing Parser Thread(1 instance) Converter Thread(limited numberof instances) Data import – step 1
____ _________ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ _________ _________ _________ _________ _________ TopLevel FeatureQueue SQL statementQueues Oracledatabase Import filter Databaseupdate Geo data commit _________ _________ SQL creaion XLinkinformation _________ XLinks XLinkQueue With separateXLink storage(temporary) commit XLink Thread(limited numberof instances) Importer Thread(limited numberof instances) Data import – step 2
____ _________ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ _________ _________ _________ _________ _________ XLink ResolverQueue SQL statementQueue Oracledatabase Oracledatabase Databaseupdate _________ SQL creation _________ _________ XLinksplitting _________ XLinks commit with resolvedXLinks XLinkSplitter Thread(1 Instanz) XLinkResolver Thread(limited numberof instances) Data import – step 3 _________ With separateXLink storage(temporary)
____ _________ ____ _____ ____ _____ ____ ____ _____ ____ ____ ____ _____ ____ _________ _________ Export filter Splitter Thread(1 instance) SQL TopLevel FeatureID Queue Oracledatabase Databaseoutput Feature _________ _________ SQL Nested feature/geometry request Exporter Thread(limited number of instances) Data export – step 1
____ _________ ____ _____ ____ _____ ____ ____ _____ ____ ____ ____ _____ ____ _________ _________ BufferQueue CityGMLoutput file TemporaryBuffer ____ _________ ____ _____ ____ _____ ____ ____ _____ ____ ____ _____ _____ ____ Feature WriteCityGML JAXBmarshalling Exporter Thread(limited numberof instances) IO Writer Thread(1 instance) Data export – step 2
Some performance measurements… Import Export
Future plans • Matching functionality (in progress) • Recognise corresponding buildings in different datasets • Link geometries and exchange attribute • Avoid redundant information • Use the tool as backend for Web Services • Broaden the applicability • Replacing the graphical user interface by a Web Service interface • Web Feature Services (WFS) may rely on existing import and export functionality • Additional export formats • KML etc. • Performance optimisation
Questions ? Alexandra Stadler Claus Nagel Gerhard König Thomas H. Kolbe stadler|nagel|kolbe @ igg.tu-berlin.de gerhard.koenig@tu-berlin.de Technische Universität Berlin Institute for Geodesy and Geoinformation Science Chair of Geoinformation Science
References • 3D city database (2007), www.3dcitydb.org [last access: 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 [last access: 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 [last access: 2008-06-20].