We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

A New Dimension To PostGIS : 3D

00:00

Formal Metadata

Title
A New Dimension To PostGIS : 3D
Title of Series
Number of Parts
95
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language
Production PlaceNottingham

Content Metadata

Subject Area
Genre
Abstract
Talking about 3D used to sound cool. Used to. But for real GIS use, we really need more than just playing with a globe. 3D in GIS becomes cool as soon as we have the ability to deal with full 3D spatial analysis. Just as we already have in 2D, we need functions like intersection, buffer, triangulation and more ... The GEOS library provides us 2D topological processing for years. The CGAL library could now also provide us some interesting additional 3D topological functions. As CGAL is not fully designed for GIS data models, we provide a library inbetween called SFCGAL, in charge of providing a Simple Feature API on top of CGAL. PostGIS 2.1 now allows to link PostGIS and (SF)CGAL, and already provides several exciting 3D functions (and more and more to come). This thrilling talk about PostGIS 3D will therefore focus on : - What kind of project / application needs 3D GIS analysis ? - What can we do right now with PostGIS 2.1 and (SF)CGAL ? - What we will be able to do soon with PostGIS 3D ? - Some tools used to view and manipulate 3D data (QGIS / WebGL based)
Computer fileWindowVideoconferencingMaxima and minimaData modelHausdorff dimensionView (database)Bookmark (World Wide Web)Disk read-and-write headCodePresentation of a groupGroup actionSingle-precision floating-point formatNetwork topologyInternetworkingFreewareAreaAdditionInclusion mapImplementationKey (cryptography)Lattice (order)Staff (military)Data storage deviceMultiplication signLink (knot theory)Point (geometry)FunktionalanalysisWebsiteResultantElectronic visual displayMoment (mathematics)Proof theoryEndliche ModelltheoriePlastikkarteBuildingData managementPlanningFunctional (mathematics)Library (computing)Right angleData conversionDifferent (Kate Ryan album)GeometryMathematical analysisNeuroinformatikData structureSurfaceLevel (video gaming)PrototypeComputer animation
Computer fileBookmark (World Wide Web)WindowView (database)Orientation (vector space)Function (mathematics)AreaFunktionalanalysisRight angle1 (number)Skeleton (computer programming)Computer animation
Bookmark (World Wide Web)WindowComputer fileView (database)BuildingSkeleton (computer programming)Sheaf (mathematics)Set (mathematics)Software testingGeometryProof theorySimilarity (geometry)Coma BerenicesNetwork topologyTriangulation (psychology)QuicksortVolume (thermodynamics)TesselationSkeleton (computer programming)Multiplication signMessage passingProcedural programmingFunctional (mathematics)AreaDistancePoint (geometry)Crash (computing)InternetworkingThomas BayesLine (geometry)Arithmetic meanGame theoryDifferent (Kate Ryan album)Labour Party (Malta)Key (cryptography)FamilyQueue (abstract data type)Right angleMatching (graph theory)Link (knot theory)Configuration spaceCASE <Informatik>OnlinecommunityDemoscenePlug-in (computing)GeometrySoftware testingLibrary (computing)VideoconferencingProjective planeMereologyStandard deviationExpected valueNeuroinformatikQuantumBuildingProcess (computing)Axiom of choiceFront and back endsFunktionalanalysisMoment (mathematics)Computer animation
Data modelRing (mathematics)Electronic visual displayLattice (order)Plug-in (computing)AngleComputer animation
BuildingUniform boundedness principleArithmetic meanUniform resource nameInformationPoint (geometry)AdditionBuildingAreaEndliche ModelltheorieComputer animation
CurvatureBuildingGame theoryInformation securityComputer animation
GeometryMoment (mathematics)Food energyDatabasePoint (geometry)BuildingComputer animation
Vector spaceBuildingEvoluteNeuroinformatikEndliche ModelltheorieQuicksortRevision controlInformation securityKey (cryptography)Computer animation
Addressing modeMusical ensemblePrisoner's dilemmaPhysical systemHand fanBasis <Mathematik>NeuroinformatikFamilyOrder (biology)Goodness of fitAreaNetwork topologyTesselationGraph coloringEndliche ModelltheorieHill differential equationSynchronizationBuildingStructural loadMultiplication signComputer animation
Query languageAddressing modeAreaMathematical analysisHypermediaComputer programmingElectronic visual displayComputer animation
Sheaf (mathematics)ResultantElectronic visual displayNetwork topologyDatabaseTriangleTime zoneVolume (thermodynamics)DialectQuery language2 (number)LaptopTable (information)NeuroinformatikComputer animation
Point (geometry)Point (geometry)InformationWorkstation <Musikinstrument>Dimensional analysisWave packetElectronic visual displayEvent horizonKey (cryptography)Computer animation
VideoconferencingComa BerenicesView (database)Computer fileBookmark (World Wide Web)PressureWeightArmQuantumComputer architectureRevision controlServer (computing)Profil (magazine)MereologyEndliche ModelltheorieKeyboard shortcutVirtualizationCuboidRule of inferenceStandard deviationPoint (geometry)Web browserPresentation of a groupFunctional (mathematics)VideoconferencingGeometryFlow separationStability theoryNumber1 (number)Forcing (mathematics)Multiplication signDatabaseLibrary (computing)Graph (mathematics)TelecommunicationNetwork topologyFunktionalanalysisExecution unitMathematicsRankingGroup actionFigurate numberLimit (category theory)Acoustic shadowView (database)Polygon meshState of matterMoment (mathematics)WhiteboardRight anglePhysical systemBitComputer animation
Computer fileView (database)Bookmark (World Wide Web)Library (computing)Different (Kate Ryan album)Endliche ModelltheorieFormal languageUniverse (mathematics)Basis <Mathematik>Labour Party (Malta)Proof theory
Computer fileView (database)Bookmark (World Wide Web)CASE <Informatik>Software testingEndliche ModelltheorieComputer hardwareGraph coloringFlow separationPoint (geometry)WordMultiplication signVolumenvisualisierungBuildingVisualization (computer graphics)QuantumSubject indexingObject (grammar)Scaling (geometry)MereologyLaptopGraphics processing unitError messageSurfaceQuery languageData conversionNetwork topologyAreaClosed setVideo gameCoalitionEmailComputer animation
Computer fileView (database)Bookmark (World Wide Web)Software testingProof theoryGeometryMusical ensembleProjective planeOrder (biology)Population densityMathematicsTexture mappingTerm (mathematics)Computer fileEndliche ModelltheorieMoment (mathematics)Fitness functionSoftwareAlpha (investment)Computer animationDiagramProgram flowchart
Transcript: English(auto-generated)
Thanks. So, this presentation is about PostGIS 3D and also quantum GIS 3D display solution. So this solution for us is based on European funding. The
aim is to be able to have a solution for smart city. So displaying, building and helping people in the city management to build a future nice city. So it's a three year funding plan
related to European funds. Right now we begin to play with 3D in PostGIS. So in the early stage in 2007 with prototype and proof of concept related to 3D. But we really beginning
to play with PostGIS 3D in 2010 with the first implementation of PostGIS 2.0. And at this point we were able to store and to manipulate 3D structure. So something like
thin and polyhedral surface directly into PostGIS. So at this point we have the ability to store, to load and to manipulate 3D data into PostGIS. And as you could see in the previous presentation
you could begin with this kind of feature in PostGIS 2.0, begin to have things like geological solution for 3D. This year in July there was the 2.1 PostGIS
release. And with the 2.1 you got a step further because we provide some spatial analysis for 3D. So it's not only storing and manipulation, it's spatial analysis too. So how does it works?
Obviously there is still PostGIS. Obviously there is still geos to play with 2D spatial analysis computation. But there is something more. And the something more is the ability to link PostGIS with Seagull.
And what is Seagull? It's a well known 3D manipulation library. And we made the link with something in the middle called SF-Seagull. SF like simple feature. And you already know simple feature for SQL. So the aim is
to have something like a binding and also something like a model conversion. Because in PostGIS the model is a simple feature. And in Seagull the model is really focused on the 3D itself. So it's two kinds of different models. And we have the need to
have something in the middle to perform the conversion. So right now we have the ability to link PostGIS with all the functions of Seagull. But of course at the really moment we provide only a few
functions available from PostGIS to Seagull. So what do we provide right now in 2.1 PostGIS? We provide some function in PostGIS 2.1 and some of them are really really interesting and
the black one. So something like 3D intersection, something like tessellate, extrusion and also straight skeleton. And these ones are really interesting because no one else provides this kind of feature in PostGIS.
We also provide, so that's an example with tessellate. So if you've got something like a volume at the very beginning, you could triangulate it even in 3D and have the 3D triangulation from this volume. The straight skeleton
if you have a 2D footprint of a building you could get, I don't know if it's really visible, but there is the skeleton of the building displaying and with the straight skeleton you could compute, if you want,
for example the roof of a building, at least a really simple roof for me. We also provide with SFCGAL some functions that already were available with a GIS.
So something like 2D intersect, 3D intersect distance or 3D distance, these functions were already provided by GIS, but we also provided through SFCGAL, so at the moment you have a choice. You have a choice to say, okay, I want to post this
backend with GIS or I want to post this backend with SFCGAL. And for the command function you have the ability to choice, to say okay I want this library to do the job or the other ones. Right now related to SFCGAL
we perform all the tests in 2D that PostGIS-GIS already did. So it's supposed to be as accurate and as robust as the GIS do for the 2D. We pass also all the garden tests to check that
everything will not crash. And we also deal with invalidity geometry in 3D. But it's a fact, it's yet really new library, so we have not yet a wide user community able to say, okay, I'll try it in exotic configuration or in exotic
use case and at this point it doesn't work as expected. So it's up to you. We are really waiting for people who use it and to say, okay, I'll open a ticket because something. About the
performances right now, if we compare GIS and SFCGAL, obviously only for the 2D, performances are quite the same quite similar in fact. But the point is that in SFCGAL, because in SFCGAL
we gain the arbitrary precision that is not available in GIS. So even if we are quite similar in performances, there is a gain because we are more accurate in fact. On the other hand,
3D computation itself could take time. So be careful, the 2D part is as fast as GIS, but the 3D part takes time. A few words about
standardization. There is right now two new standards that are not yet voted in OGC. They will be voted in few weeks or few months related to 3D. So
we are now following this standardization process to be sure that all we already done will be compliant with the new coming standardization process in OGC and in ISO. At this point, it was
in July. We are really happy because we have something working for GIS but there is something we are missing is the ability to rendering in 3D and to see what we already did. So at this point we choose to
launch a new project related to our common tool to display GIS and so Quantum GIS. And there is a new plugin able to display 3D things. The name in Greek is OHAO, so
the meaning is to see in Greek. To be able to see something in 3D. So the rendering part is based on OpenGL OpenSendGraph, obviously QGIS and in the middle there is a scene layer called OHAO
and the aim of this plugin is to make the link between OpenSendGraph, OGIS and QGIS. So if you see something that we could do with all this
stuff, it's quite the same with the following video that we did in the workshop at the beginning of the week for those who perform the 3D workshop. So that's an example with QGIS in 2D with an elevation model, so it's quite classical
but here there is an OHAO plugin with a 3D rendering of the same data, so once you zoom in, you zoom in also in the 3D display and you
can see over there that you have the ability to change the angle and to see better the elevation model. At this point we want to add a new 2D building footprint, so on the same kind of center area we load the building in 2D and obviously here on the 3D rendering
At this point it's only 2D data but the 2D data is put on the elevation model and that's becoming more interesting because we have the ability to extrude the data and to say ok we have at the beginning only flat
2D building footprint but we will choose right now to extrude the data, the 2D data with the height of each building and to create a new geometric column called LOD2
in the database and to display it in 2D but more in 3D and at this point it's not really perfect because our LOD2 data are put at this ready moment on the sea level so we are able to see each building
but with the SZ zero level, so we need to compute a better evolution for each building and how we do that just because we put already the elevation model also in per GIS roster, so we have the ability
to compute roster and vector for each building and to say ok this building is at this height and to translate each building to right now compute them and
be able to render both the elevation model and the building in 2D and in 3D and if we focus on a place here with an hill on the city you can see that each building fits quite well on the elevation model
so we also have a synchronization on the symbology color, so each time you choose another color it will be synchronized both in 2D and 3D and if we zoom out you can see there that there is a tile handling system able to load data
by tiles to wait too long in fact and now we begin to something we begin really to play with 3D data
to perform some 3D spatial analysis so in green there is a layer, 2D layer related to environmental data so there is a river and parks in the same green and if we focus here on this place with the two green parks
the question is if we took some flying insects how far could they fly around the park? So we make a request with a buffer and with an extrusion around each park and we get
in 2D and in 3D the flying area available for these insects. And the next question is is there any chance that these two parks leading to two flying zones could intersect in 3D? So we launch a new query asking
is there a 3D intersection between these two different regions and we launch it from DB Manager and we ask SF Seagal and Seagal is there a 3D intersection and if yes create a new table with a result so the computation as I said took several seconds
so it's something like 30 seconds in a basic laptop to perform the 3D intersection and at the end we'll have a new table with a result. So it did
we have the new table and we just have to refresh to display it. We display it here in 2D with a lot of triangles and here in 3D as a new volume. So you got the 3D intersection as a new volume Another point is just some kind of
3D rendering trick is to say okay we've got another dimension, an extra dimension so we can use it to display some extra information about our data. So in the data there is some points related to bike station
available in the city to take fully a bike so we use here the bar to wonder how much bike are available in the city so if a bar is high there is a lot of bike available
so if we look once again to the rule architecture we got so on the server part post GIS
SF Seagal has a new layer binding Seagal obviously the old Gios will still remain Quantum GIS, OHAO and obviously all the libraries beneath OHAO so-called OpenSCAN Graph and OpenGL
The blue ones are the ones where there is a need to continue to improve again all these ones we don't have to to deal that much with them because they are quite robust, quite well known
and so on. You can find each of the force I'm just talking about, so pod GIS, SF Seagal OHAO, QGIS For both post GIS and SF Seagal we use the latest stable version
and for OHAO and QGIS we use the latest trunk version. So what is the next step we have in mind? Next step we have in mind is to increase and enhance the number of functions
available through SF Seagal. So to have something like 3D Union 3D Relate, 3D Simplify, things like that The other point is to improve and enhance again the rendering quality We know we can do better
and to beautify again the 3D rendering quality And we know also that we are able to play also with WebGL, so right now we have QGIS, 3D rendering but we want also to explore solutions based on
WebGL, so in browser If you want to play you have the presentation already available right now online, and you can find the workshop quite related to the video I've just presented
with all the online tools So if you want to do it by yourself, step by step, it's possible And as we provide Phosphology workshop in the beginning of the week, we also have the full environment in a virtual box available, so if something
wants it, we can provide it, it's a 6GB virtual box, but it's possible to let you copy it if you want to. And that's it
Thank you Olivier, any questions? You mentioned two standards that OGC is working on Can you tell me why they are doing this?
This one is a well-known standard related to topological models, so it's something really abstract And the new version, the new coming version is related to adding the 3D in more, because the old one
was complete, but only related to 2D And this one is something clever, it's the one to unify a simple feature for SQL, either SQLMM,
DML, in the same kind of standard based on profile So we'll have only one model but with several profiles, with some kind of unification with several kinds of models we have to deal with Each time we want to play with geometry
in special databases in fact
So SQL itself is based on C++ language It's a library developed by several universities and also by one company So because there are several universities, sometimes there are several
ways to do it inside the SQL So it's not something only unified, there is some different models inside SQL In false false, the main trick to do the binding was more
to consider the conversion between the PostGIS-SF for SQL model and the SQL 3D model So it's more related to the conversion and to the test The test is really time consuming for us to be sure
that it will work nicely and with an error in the real case we have to deal with
In fact if we look in the workshop, we can deal on a lot of use cases, only with 3D index because we have to deal with 3D index
only if there are several 3D objects that oppose them For example, the 3D geological use case as we've just seen before is a typical use case
where a 3D index is meaningful For example a 3D index could be enough but in the PostGIS-2 there is also a 3D index available Any more questions? We have plenty of time
Can it handle this kind of large surfaces like in this geology case or in the global SRTM model
Can I put this into that so I can get fast queries and visualizations based on a really huge scale On the video, in fact the rest of the part could be quite big
At least a big city could fit As it was our use case, we are happy with that We play with quite common laptops It's not dedicated 3D hardware or something like that to play with, we just need a quite decent
hardware and a 3D acceleration on it and that's it On our use case, we are also able to run the whole city building of a quite big city You haven't tested this kind of case that you have a global elevation model
and you need only one small portion of that because you cannot render a whole country, for example At this moment, it's not our use case so we didn't try it We didn't know if it worked or not
Visualizer for quantum GIS is it capable to texturize with textures on it? At this point, we only handle plain color and transparency on color at this point
I have to put a word on it This layer Oahu is a quite new software You have to figure that Oahu is still something
in between an alpha and a beta It's a brand new software and at this moment, it only handles plain color, transparency and not yet texture It will surely come, but right now, not yet
Sorry Okay In fact if you play the workshop you will see that we deal with two LOD
LOD1 and LOD2 The model is already able to fit city GML There are other projects able to take some city GML files and import them in PostGIS
There is a way to use city GML data and city GML model inside PostGIS and to begin to play with It was
We began to think about it as a really moment The signal change is licensed and allows also to have a GPL license The signal is also available as a GPL
The signal 2 is as GPL I think it's GPL 3, but not to be confirmed Any more questions? If not, then
Thank you Olivier