DB4GeO: Open Source Geospatial Database for 3D Data

I was at the 3D GeoInfo 2012 conference last week and I learned about the DB4GeO / DB3D open source geospatial database, which is a Java object-oriented database focusing on 3D data. It supports CityGML, has a RESTful API and has its own WebGL visualization tool.

Since I failed to find much about it on the web other than the GitHub page (it seems the code wasn't synchronized for a while), let me serve you the abstract [pdf] of last week's presentation: "The analysis of complex 3D data is a central task for many problems in the geo- and engineering sciences. Examples are the analysis of natural events such as mass movements and volcano eruptions as well as 3D city planning and the computation of 3D models from point cloud data generated by terrestrial laser scanning for 3D data analysis in various domains. The volume of these data is growing from year to year. However, there is no geo-database management system on the market yet that efficiently supports complex 3D mass data, although prototypical 3D geo-database management systems are ready to support such challenging 3D applications. In this contribution we describe how we reply to these requirements advancing DB4GeO, our 3D/4D geo-database architecture. The system architecture and support for geometric, topological and temporal data are presented in detail. Besides the new spatio-temporal object model, we introduce new ideas and implementations of DB4GeO such as the support of GML data and the new WebGL 3D interface. The latter enables the direct visualization of 3D database query results by a standard web browser without installing additional software. Examples for 3D database queries and their visualizations with the new WebGL interface are demonstrated. Finally, we give an outlook on our future work. Further extensions of DB4GeO and the support for the data management for collaborative subway track planning are discussed."

I'd like to see the differences between PostGIS vs DB4GeO features in regards to 3D geodata. Is DB4GeO more and a playground for researchers?

2 comments

  1.  

    Dear Alex,

    thank you for your question. As you may know, some major changes have taken place in PostGIS 2.0 compared to versions 1.x.

    The central difference between DB4GeO and PostGIS 1.x is that DB4GeO is a truly 3D database, that is, the z-coordinate is handled in exactly the same way as the x- and y-coordinate. In DB4GeO, geometric operations (distance calculation, intersection etc.) are truly 3D; a 3D R*-tree is used for indexing.

    By contrast, in PostGIS 1.x a z-value can be stored but geometric operations are basically 2-dimensional, for example:

    * Relationship operators ignore the 3rd dimension: if two objects lie above each other without intersection, asking if they intersect will result in a positive answer.

    * Overlay functions such as intersection or union are carried out, they are calculated only for the 2D part of the geometry, and the z-coordinate is then interpolated.

    * The bounding boxes used in PostGIS 1.x are 2-dimensional.

    In PostGIS 2.0, support for 3D geometries and a library of 3D functions (e.g. 3D intersections or calculating distances in 3D) have been added; spatial indices consider three dimensions. Since the new version is relatively recent, we have not practically tried it out yet.

    And yes, DB4GeO has not gone out of academic environment so far. From the very beginning, it was designed specifically with geoscientific (primarily geology) applications in mind (hence its “real 3D” nature). This is reflected in some of its functionality, e.g. the 3D-to-2D operation (calculates a profile along a given polyline) or the drilling operation (returns the intersection of a polyline with a 3D object). PostGIS was created rather for application areas where traditional (2D) GIS are applied.

    The DB3D Core API (db3dcore), which is available at github, is a library of 3D geometric data types (and its methods) written completely in Java and it even provides the possibility to build topologically defined nets (for example triangle nets). The DB4GeO Core API can be used in several kinds of geometric computation settings such as in geoscientific information systems.

    The Chair in Geoinformatics of the Geodetic Institute of the Karlsruhe Institute of Technology is additionally providing the following modules that are designed on top of this kernel API:

      * database server
      * complex operations (like cross section operation)
      * project management
      * thematical data
      * time (4D) model

    These modules are not part of the open source repository.

    We are happy about your interest in DB4GeO and look forward to further questions.

    Best wishes,

    DB4GeO development team.

  2. Are the modules not available in GitHub (like "complex operations") somehow distributed? I'm very much interested on that.

    Giovanni