Ervaringen met 3D standaarden

Ik open deze thread om wat resultaten van een kleine zoektocht naar support voor 3D standaarden te onderzoeken in common gis producten. Ik was wat teleurgesteld over de gevonden resultaten, mogelijk heb ik wat zaken over het hoofd gezien.

Mijn use-case leek relatief eenvoudig: een catalogus waarin een 3D dataset geadverteerd wordt, een knop in de catalogus om de dataset te visualiseren, nice to have: een doorsnede-tool dat een hoogteprofiel oplevert.

Om op een generieke wijze een 3D dataset te openen dient er een standaard of best practice beschikbaar te zijn voor zowel data-model/encoding dan wel protocol. Vervolgens dienen er server producten te zijn die deze encodings en protocollen ondersteunen. En tot slot dient er een client te zijn die deze encodings en protocollen kan visualiseren.

De encodings: in de 3D wereld is er veel aandacht voor cityGML, maar voor mijn use cases veel te gedetailleerd, daarnaast lijken er allerlei cases te zijn waarin cityGML ge-embed wordt in app-schema, waardoor het voor generieke clients erg lastig wordt om op generieke wijze te visualiseren. KML zou een optie kunnen zijn, maar volgens mij is dat vooral 2.5D. De beste kandidaat lijkt voorlopig de kandidaat standaard 3dTiles.

Het protocol: WFS lijkt een goed mechanisme voor het uitwisselen van cityGML, wat dan weer opvalt is dat de ervaringen van dit soort modellen ontsluiten via producten als geoserver erg minimaal is. Ook hebben de veel gebruikte 3D client libraries zoals Cesium, QGIS, worldwind minimale support voor WFS.

Ook een doorsnede tool lijkt in de veel gebruikte 3D libraries geen out-of-the-box functionaliteit. Er zijn wel implementaties maar altijd specifiek voor een bepaalde dataset.

Ik ben benieuwd naar jullie ervaringen op dit vlak.

1 like

Naar mijn weten zijn er voor 3D webservices momenteel twee standaarden, waarvan 3dTiles nog kandidaat is.
Indexed 3D Scene Layers (I3S) - Open Geospatial Consortium. i3S, Indexed 3D Scene is de andere, die wij bij Esri implementeren. GitHub - Esri/i3s-spec: This repository hosts the specification for Scene Layers which are containers for arbitrarily large amounts of geographic data. The delivery and persistence model for Scene Layers, referred to as Indexed 3d Scene Layer (I3S) and Scene Layer Package (SLPK) respectively, are specified..

1 like

Dank Joris, voor deze link naar i3s. Heb je ook een link naar een voorbeeld applicatie waarin deze standaard gebruikt wordt? Ik zag deze presentatie, ziet er voorspoedig uit. Ben benieuwd naar jullie eigen ervaringen met Nederlandse data in het i3s formaat.

Ik volg deze ontwikkeling meer vanaf de kant van 3D CAD/BIM voor de aansluiting met IFC. Een conversie en samensmeltingen tussen de openGIS en openBIM werelden via IFC en GML. Neem een contact op met Martin Janssen van Gis Solutions. Bij deze.

Paul, ja dat is een zinvolle presentatie die je hebt gevonden. Eerste partijen beginnen de standaard ook te ondersteunen, zoals FME, Bentley.
Paar voorbeelden met Nederlandse data:
http://3dkaartvannederland.nl/ : demo webappje met 3D BAG voor heel Nederland
https://arcg.is/1iiyL9 : puntenwolk als scene service (stuk AHN3 voor Friesland)
Projectie maakt verder niet uit, maar aangezien het tiles worden en niet elke client applicatie kan herprojecten is het wel goed om te overwegen hoe je het in 3D wilt weergeven (een lokale scene, voor bijv. RD of een globe, dan WGS).
Ander voorbeeld: Scene Viewer.
In deze webscene zie je ook wat ondergrond en een BIM model.

De i3s kent diverse type layers, o.a. point cloud, mesh, etc. Er is ook net een nieuwe building scene layer variant gemaakt, welke helpt om bijv een revit model direct om te zetten naar een 3D service waarbij je dan ook de diverse kenmerken blijft hebben om bijv. de elementen aan en uit te zetten (muur, leiding etc).

Voorbeelden dienen even om te illustreren wat voor type data je op die manier kunt ontsluiten. Wat je vervolgens met de data kunt doen is weer voor een groot deel afhankelijk van je client applicaties of de libraries die je gebruikt. Ik zie nog niet veel toepassingen waarbij er analyse functies worden uitgevoerd. Dat wordt nog vaak vooraf gedaan, in daarvoor geschikte (desktop) applicaties. De analyse resultaten worden dan bijv. via de 3d service gedeeld worden.

Onze client software is gebaseerd op cesium, dus leek me interessant om te kijken of i3s beschikbaar was in cesium. Ik vond meerdere referenties naar de ogc 3dps standaard waarmee het mogelijk zou zijn om i3s te ontsluiten in cesium. Ik denk dat ik maar eens aan de slag moet en kijken hoe ver ik kom

http://docs.opengeospatial.org/is/15-001r4/15-001r4.html
https://cesium.com/presentations/files/SIGGRAPH2018/Interoperability_of_Tiled_3D_Formats.pdf
Iemand tips?

Ik denk dat een specificatie standaard interessant wordt als er meerdere implementaties van zijn, of althans er een beweging is die dit aanmoedigt.

Mbt de discussie I3S vs 3dTiles en QGIS kwam ik deze discussie nog tegen:

http://osgeo-org.1560.x6.nabble.com/QGIS-Developer-QgsServer-and-3d-tiles-td5341196.html

Als ik het goed begrijp zou je 3dTiles heel mooi kunnen cachen, en de cache dan over http beschikbaar stellen.

Is dat met I3S ook zo? Of blijf je dan toch altijd afhankelijk van een streaming server/arcgis component?

@rduivenvoorde de i3s standaard omvat ook een file-based aanpak op basis van Scene Layer Package (SLPK)
http://docs.opengeospatial.org/cs/17-014r5/17-014r5.html#89

Nog wat pointers vanuit een andere discussie:

3D Tiles and I3S Interoperability and Performance
http://docs.opengeospatial.org/per/17-046.html

In Testbed 14 is gekeken hoe 3D data (CityGML/CityJSON) als wel 3D portrayal (3DPS/i3s/3D Tiles) uitgevoerd kan worden in “Next Generation APIs” gebaseerd op de WFS 3.0 (oas/swagger) aanpak
Testbed 14 - Next Generation APIs: Complex Feature Handling ER
https://rawgit.com/opengeospatial/D040-Complex_Feature_Handling_Engineering_Report/master/18-021.html

Wellicht off-topic maar kwam laatst dit nog tegen:

https://developer.here.com/blog/visualizing-large-scale-terrain-with-open-source-tool-tin-terrain

Kennelijk zijn ze bij Here ook aan het experimenteren met 3D, ook wel intressant.

4 likes

Hoi Paul,

De meeste dingen die je benoemd worden ondersteund in Rotterdam 3D. Weet niet of je deze al kende?

Hierbij slaan we de CityGML data in de 3DCityDB en wordt het vervolgens gepubliseerd naar 3DTiles en getoond in Cesium. Zie idd dat 3D Tiles steeds meer ondersteund wordt. Vraag me hierbij wel af wat je bedoelt met de opmerking dat CityGML te gedetailleerd is. Dit kun je toch net zo gek maken als je zelf wil?

Enige wat we uit jouw lijstje nog niet kunnen is de doorsnede tool. Die is er idd nog niet echt in Cesium, maar wordt volgens mij aan gewerkt.

We hebben deze hele infrastructuur nu opgetild naar de cloud, zodat we het veel sneller en simpeler beschikbaar kunnen maken.

1 like

Dank voor dit bericht Rick, Rotterdam heeft dus blijkbaar een 3d-tiles service beschikbaar om in Cesium te laden. Zou interessant zijn om uit te zoeken of we een metadata record wat deze service beschrijft in nationaal georegister kunnen hangen, waarna de add-to-map knop deze service visualiseert op de ingebouwde Cesium viewer van ngr (momenteel gedeactiveerd). Is deze service reeds beschreven in ngr? Ik zie dit record http://nationaalgeoregister.nl/geonetwork/srv/metadata/21f9e015-4dbf-495f-b965-fa6fb9c6a247, maar het bevat geen referentie naar de 3D tiles service. Is het een optie om deze url toe te voegen. Zie jij nog andere uitdagingen in deze use-case?

Het feit dat ik refereerde aan het feit dat CityGML misschien te gedetailleerd is, zit hem meer in het feit dat het me voor deze usecase beter leek om met wat eenvoudigere services te beginnen, zoals 3D no-fly zones.

Rick, welke tool gebruiken jullie om 3d-tiles uit city-gml te genereren, FME?

Op zich zou die url geleverd kunnen worden inderdaad. Dit zijn er dan alleen wel meerdere want de viewer bestaat uit een heleboel verschillende datasets uit verschillende bronnen die samenkomen. Er zit trouwens ook al een exportfunctie in de viewer waarmee je voor een gebied een export vanuit de database kan laten genereren in verschillende bestandsformaten. Ik zal het eens neerleggen in Rotterdam, dan kunnen we dat eens bekijken. Zouden dan ook eens moeten kijken naar de metadata. Ik kan me daarnaast ook voorstellen dat als veel meer partijen de url direct gaan gebruiken dit effect heeft op het dataverkeer en dus op de kosten.

Qua tool om de 3D tiles te genereren gebruiken we de VirtualCitySuite van VirtualCitySystems uit Duitsland. Deze genereert de 3D tiles van de CityGML rechtstreeks vanuit de 3DCityDB. Wij leveren deze tooling ook als cloud oplossing in NL. Voor het genereren van veel 3D CityGML data van beheergegevens gebruiken we trouwens wel FME.

Misschien even een keer afspreken om even bij te praten? Klinkt wel interessant.

1 like

Lastig hierbij is trouwens wel dat de meeste PDOK WMS services alleen in RD worden aangeboden en op Cesium dus niet werken omdat hier WGS nodig is. Is wel jammer.

Inderdaad jammer, ik zou graag zien dat alle geo services (ook) WGS gaan bieden. Dat zou de gebruiksmogelijkheden aanzienlijk vergroten!

2 likes

Rick, dank voor die info over 3dtiles genereren, ik kende de betreffende oplossing niet. Heb je een voorbeeld van een WMS die niet in WGS (ik neem aan dat je epsg:4326 bedoelt?) aangeboden wordt, dan wel voor jou niet werkt. Zover ik weet is WGS altijd beschikbaar? Zie bv BRT TOP50raster WMS.

Overlegd met Rotterdam en we willen wel een experiment doen om te kijken of dat werkt om een 3D Tiles laag in het NGR te hangen. Hierover even apart contact opnemen om Ă©Ă©n en ander af te stemmen?
Mijn telefoonnummer is 06-46909779 en mail rick@futureinsight.nl

1 like

Goed idee Rick, mogelijk zijn er meer partijen die deel willen nemen aan zo’n pilot. Hierbij alvast wat ideeen:

De pilot kan op 2 niveau’s ingestoken worden:

  • Dataset metadata uitbreiden met een link naar de 3d tiles service, dan wel Service metadata opstellen om de 3d tiles service te beschrijven. Het Nederlands profiel metadata (http://geonovum.github.io/Metadata-ISO19115) kent momenteel niet een protocolwaarde voor 3d tiles. Een waarde OGC:3DTiles ligt voor de hand (zodra de standaard door OGC geaccepteerd wordt. Weet iemand of er bewegingen zijn om deze of de i3s standaard op te nemen in Geo-Standaarden | Forum Standaardisatie als standaard voor 3D portrayal?).
  • De software zo configureren dat een “add-to-map” knop getoond wordt voor het protocol OGC:3DTiles en de afhandeling van het toevoegen van de service aan de kaart realiseren