• Save
Olivier Courtin - PostGIS and 3D
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Olivier Courtin - PostGIS and 3D

  • 4,700 views
Uploaded on

Olivier Courtin from Oslandia talks about current and upcoming PostGIS 3D capabilities. ...

Olivier Courtin from Oslandia talks about current and upcoming PostGIS 3D capabilities.

The presentation is part of the Geomatics Open Guest Lectures at TU Delft.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,700
On Slideshare
4,697
From Embeds
3
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
5

Embeds 3

http://geomatics.ndkv.nl 3

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.                                                                                               PostGIS meets the Third Dimension                                                                                               Olivier COURTIN Delft – May 2011
  • 2.                                                                                                 Presentation Plan                                                                                                 1) 3D Context 2) Spatial Databases Standards and 3D 3) PostGIS 3D Implementation 4) Open Issues List 5) 3D GIS Open Source Stack 6) Perspectives and Conclusion                                                                                                
  • 3.                                                                                                 3D GIS: A meeting point                                                                                                 BIM: Focus on Building model CAD/CAO world IFC standard CIM: CIM: Focus on City model Focus on City model GIS world GIS world CityGML standard CityGML standard                                                                                                
  • 4. First Implementation                                                                                                                                                                                                 First implementation of 3D in PostGIS: 2007 (PoC) (FOSS4G 2007) A bit too early: - No available and stable client to render 3D on a browser - 3D data were still expensives - Market not mature enough                                                                                                
  • 5. 3D BIM: Facilities and Physical Networks                                                                                                                                                                                                                                                                                                
  • 6. 3D CIM: City Model                                                                                                                                                                                                                                                                                                
  • 7.                                                                                                 CityGML Overview                                                                                                 - OGC Standard - 3D format XML based - Use GML 3.1.1 for geometries encoding - INSPIRE Recommandation Mostly focus on CIM (rather than BIM) More an interoperability GIS format exchange (rather than direct 3D rendering)                                                                                                
  • 8.                                                                                                 CityGML Supports                                                                                                 - Geometries and attributes handling - Textures - Extensible Application Model (ADE) - Level Of Details (LOD)                                                                                                
  • 9.                                                                                                 CityGML: (LOD) Levels Of Details                                                                                                                                                                                                
  • 10.                                                                                                 Spatial database standards                                                                                                ISO TC 211 ISO 19125 ISO 19125 2004 Draft 2011OGC OGC SFS 1.1 OGC SFS 1.2.0SFS WG 1999 2006ISO JTC1 ISO SQL/MM ISO SQL/MM ISO SQL/MMSC32 WG4 2003 2006 Draft 2009                                                                                                
  • 11.                                                                                                 Spatial database standards: 3D concepts                                                                                                ISO TC 211 ISO 19125 ISO 19125 2004 Draft 2011OGC OGC SFS 1.1 OGC SFS 1.2.0SFS WG 1999 2006ISO JTC1 ISO SQL/MM ISO SQL/MM ISO SQL/MMSC32 WG4 2003 2006 Draft 2009                                                                                                
  • 12.                                                                                                 New Surface types: Triangle                                                                                                 One exterior ring with 3 differents points (and 1 point more to close the ring) No interior ring (i.e no hole) Points must not be colinears Triangle could be 2D, 3D, 3DM or even 4D TRIANGLE((0 2, 10 4, 12 0, 0 2))                                                                                                
  • 13.                                                                                                 New Surface types: TIN                                                                                                 Collection of triangles connected by edges Every triangle share same orientation TIN could enclose a solid (or not) TIN could be 2D, 3D, 3DM or even 4D TIN(((0 2, 10 4, 12 0, 0 2)), ((0 2, -2 -6, 12 0, 0 2)), ((0 2, 10 4, 5 8, 0 2)))                                                                                                
  • 14.                                                                                                 New Surface types: PolyhedralSurface                                                                                                 Collection of polygons connected by edges Every polygon share same orientation Points of the polygon must be coplanar (enough) Polygons could have internal rings (i.e holes) PolyhedralSurface could enclose a solid (or not) PolyhedralSurface could be 2D, 3D, 3DM or even 4D POLYHEDRALSURFACE( ((0 2, 10 4, 12 0, 5 8, 0 2)), ((0 2, -2 -6, 12 -6, 12 0, 0 2)))                                                                                                
  • 15.                                                                                                 New Surface types: PolyhedralSurface                                                                                                 A 3D PolyhedralSurface example, enclosing a cube POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)))                                                                                                
  • 16.                                                                                                 Spatial database standards: 3D specs                                                                                                 OGC SFS Draft ISO Draft ISO 1.2 SQL/MM 19125 2006 2009 2011Triangle No Yes YesTIN Yes Yes YesPolyhedralSurface Yes Yes YesFunctions on TIN and Yes Yes YesPolyhedralSurface handlingFunctions on 3D Topology and No Yes Yesmeasures (Distance, Intersects...)Vertical Datum No No Yes                                                                                                
  • 17.                                                                                                 Spaghetti storage model is not enough                                                                                                On common PostGIS geometry storage,geometry spaghetti model is used.On connected surfaces it leads toredundant informations (red edges below)(and also to possible topology artefacts)Aim for connected surfaces is to store topology geometrybased on edges and facesAim is also to know if a geometry is wheter a solid or not(without additional computation)                                                                                                
  • 18.                                                                                                 HowTo Store: Using Half Edges                                                                                                 Best structure to store PolyhedralSurface and TIN topology is based on Half Edges No vertex stored twice Edge Orientation is given by the pointer between each pair of half edges.                                                                                                
  • 19.                                                                                                 HowTo Store: Double Connected Edge List                                                                                                 A Double Connected Edge List (DECL) Each arrow means a pointer Structure used by CGAL and OpenMeshes                                                                                                
  • 20. Handle PostGIS Serialization                                                                                                                                                                                                 PostGIS use (de)serialize mecanism to store data into PostgreSQL But serialization of a DCEL is not efficient at all ! So we use indexed array to represent edges (implies a limit to ~4 billions of vertex per feature) Nota: serialization storage still use the spaghetti model                                                                                                
  • 21.                                                                                                 Face and Edge Arrays Structure I                                                                                                                                                                                                
  • 22.                                                                                                 Face and Edge Arrays Structure II                                                                                                                                                                                                
  • 23. Compliant Functions Availables on Trunk                                                                                                                                                                                                 ST_Force_2D Box2D ST_Force_3D Box3D ST_Force_3DZ GeometryType ST_GeomFromEWKT ST_Affine ST_GeomFromEWKB ST_GeomFromGML ST_Area ST_GeometryN ST_AsBinary ST_GeometryType ST_AsEWKT ST_IsClosed ST_MemSize ST_AsEWKB ST_NumGeometries ST_AsGML ST_NumPatches ST_AsX3D ST_PatchN ST_Dimension ST_Perimeter ST_Perimeter3D ST_Dump ST_Rotate ST_DumpPoints ST_RotateX ST_Expand ST_RotateY ST_RotateZ ST_Extent ST_Scale ST_Extent3D ST_Shift_Longitude ST_FlipCoordinate ST_Transform                                                                                                
  • 24. So what available in PostGIS 2.0, for 3D ?                                                                                                                                                                                                 OGC SFS 1.2 (Really) Basic GML and X3D 3D spatial 3D Types Spatial geometries indexes (TIN, PS) Analysis Input / Output Thats the really basics, and should initiate new usages (and so we hope fundings)                                                                                                
  • 25.                                                                                                 Open Issues Lists                                                                                                 1) Triangulation 2) TIN Simplification 3) CityGML Loader 4) IsValid geometries check 5) Vertical Datum 6) TIN for DEM Storage 7) Texture handling 8) Google Earth I/O 9) 3D Topology functions                                                                                                
  • 26. Open Issue #1: Triangulation                                                                                                                                                                                                 Lot of 3D usages only deal with TIN and not with PolyhedralSurface So be able to convert PolyhedralSurface to TIN will become a need Known Implementations: CGAL, TetGen                                                                                                
  • 27. Open Issue #2: Tin Simplification                                                                                                                                                                                                 Reduce the number of triangles Preserve the volume Preserve the global and local shapes Source: CGAL Fast and memory efficient Algorithm: Lindstrom and Turk Known Implementations: CGAL, GTS                                                                                                
  • 28. Open Issue #3: CityGML Loader                                                                                                                                                                                                 GML 3 handles a lots of geometry types that spatial database standard dont. (true solid...) GML allow composition of several solids into a single feature Interesting to be able to downsize LOD (e.g: LOD 3 -> LOD 2) CityGML extension application schema (ADE) Implies Triangulation and simplification to import TIN into database and 3D ST_Union                                                                                                
  • 29.                                                                                                 Open Issue #4                                                                   IsValid Check                               IsValid checks are currently done by GEOS GEOS dont care about Z dimension nor 3D types No Self Intersection All Faces Well Oriented Points of face are coplanars All Faces edges connected                                                                                                
  • 30. Open Issue #5: Vertical Datum                                                                                                                                                                                                SRID is used to reference a Coordinate Reference System Proj4 begins to add vertical datum support, Proj4 begins to add vertical datum support, But not yet handle alls. But not yet handle alls.                                                                                                
  • 31. Open Issues #6 DEM storage                                                                                                                                                                                                 Terrain DEM model use also often TIN structure But its a NONSENSE to store a whole DEM in a single PostGIS TIN feature ! Source: NASA To store efficiently: - Ability to split the whole TIN into smaller pieces - Store each pieces in a different PostgreSQL row - Spatial index to access quickly to each piece                                                                                                
  • 32. Open Issue #7 Texture                                                                                                                                                                                                 A Texture is composed of: A 2D geometry (UV) Associated to an image Explore the ability to deal with texture handling throught PostGIS Raster ?                                                                                                
  • 33. Open Issue #8 Google Earth I/O                                                                                                                                                                                                For 3D Google Earth use Colladaembedded inside KML (Model tag)GE only deals with TIN smaller than21845 trianglesKML altitude could be relative toground or absolute (geocentric)COLLADA could use texture images ` Google Earth full IO support implies: triangulation, TIN simplification, vertical datum and texture.                                                                                                
  • 34.                                                                                                 Open Issue #9                                                Topology Operations                                                  Now Topology operations are done by GEOS GEOS (and JTS) only handle 2D (OGC SFS 1.1) 3D Topology Operations only appear in latest SQL/MM and ISO 19125 drafts (source Zlatanova, Rahman and Shi 2002) Theres a need for a robust C++ Topology lib able to fully handle ISO 19107 (2D and 3D).                                                                                                
  • 35. Common 2D GIS Architecture                                                                                                                                                                                                 Desktop client Data Web Spatial loader Services Database Web client                                                                                                
  • 36. What do we want for 3D Architecture ?                                                                                                                                                                                                 Desktop client Data Web Spatial loader Services Database Web client Well, the same than for 2D !                                                                                                
  • 37. 3D GIS Architecture                                                                                                                                                                                                 CityGML Desktop 3D loader WFS -T client Spatial Database Web 3D Collada client loader W3DS                                                                                                
  • 38. 3D GIS Architecture: CityGML loader                                                                                                                                                                                                 CityGML Desktop 3D loader WFS -T client Spatial Database WebGL Collada client loader W3DS BRGM provide a C++ beta CityGML parser lib (libcitygml) But still no tool to perform a CityGML to PostGIS import.                                                                                                
  • 39. 3D GIS Architecture: Collada Loader                                                                                                                                                                                                 CityGML Desktop 3D loader WFS -T client Spatial Database Web 3D Collada client loader W3DS Collada-dom provide a C++ API on collada docs But still no tool to import Collada inside PostGIS                                                                                                
  • 40. 3D SIG Architecture                                                                                                                                                                                                 CityGML Desktop 3D loader WFS -T client Spatial Database Web 3D Collada client loader W3DS TinyOWS is already able to output and input GML 3.1.1 But not yet CityGML (or broader Application Schema) (Also no Filter Encoding 3D available from OGC)                                                                                                
  • 41. 3D SIG Open Source Architecture                                                                                                                                                                                                 CityGML Desktop 3D loader WFS -T client Spatial Database Web 3D Collada client loader W3DS AFAIK still no Open Source application for W3DS implementation, other than Proof Of Concept                                                                                                
  • 42. 3D SIG Open Source Architecture                                                                                                                                                                                                 CityGML Desktop 3D loader WFS -T client Spatial Database Web 3D Collada client loader W3DS Alpha of globe support in QGIS multithreaded branch Next step: having something stable and volumes handling                                                                                                
  • 43. 3D SIG Open Source Architecture                                                                                                                                                                                                 CityGML Desktop 3D loader WFS -T client Spatial Database Web 3D Collada client loader W3DS Beta of globe support with OpenWebGlobe (WebGL) Next step: having something stable and volumes support.                                                                                                
  • 44. Conclusions                                                                                                                                                                                                 PostGIS 2.0 will be able to deal with 3D geometries primitives and some very basic spatial functions A full 3D support in PostGIS (textures, TIN, LOD) means lot of work and will require related funding. 3D Topology library is a broader issue than only PostGIS concern, and should be shared by others Open Source apps. 3D Open Source stack could/should arrive in a quite near future, as each piece becoming more stable and used.                                                                                                
  • 45. Conclusions                                                                                                                                                                                                 PostGIS 2.0 will be able to deal with 3D geometries primitives and some very basic spatial functions A full 3D support in PostGIS (textures, TIN, LOD) means lot of work and will require related funding. 3D Topology library is a broader issue than only PostGIS concern, and should be shared by others Open Source apps. 3D Open Source stack could/should arrive in a quite near future, as each piece becoming more stable and used.                                                                                                
  • 46. Conclusions                                                                                                                                                                                                 PostGIS 2.0 will be able to deal with 3D geometries primitives and some very basic spatial functions A full 3D support in PostGIS (textures, TIN, LOD) means lot of work and will require related funding. 3D Topology library is a broader issue than only PostGIS concern, and should be shared by others Open Source apps. 3D Open Source stack could/should arrive in a quite near future, as each piece becoming more stable and used.                                                                                                
  • 47. Conclusions                                                                                                                                                                                                 PostGIS 2.0 will be able to deal with 3D geometries primitives and some very basic spatial functions A full 3D support in PostGIS (textures, TIN, LOD) means lot of work and will require related funding. 3D Topology library is a broader issue than only PostGIS concern, and should be shared by others Open Source apps. 3D Open Source stack could/should arrive in a quite near future, as each piece becoming more stable and used.                                                                                                
  • 48. Conclusions                                                                                                                                                                                                 PostGIS 2.0 will be able to deal with 3D geometries primitives and some very basic spatial functions A full 3D support in PostGIS (textures, TIN, LOD) means lot of work and will require related funding. 3D Topology library is a broader issue than only PostGIS concern, and should be shared by others Open Source apps. 3D Open Source stack could/should arrive in a quite near future, as each piece becoming more stable and used.                                                                                                
  • 49. Contacts                                                                                                                                                                                                 Olivier COURTIN olivier.courtin@oslandia.com www.oslandia.com                                                                                                