3D Pilot Fase II Eindrapportage Activiteit 2: 3D Geometrie validator.
auteurs Paul Janssen (Geonovum) Jan Kooijman (TNO) Hugo Ledoux (TU-Delft)
datum 2012-11-15
versie 1.0 Eindversie
Inhoudsopgave 1
Uitleg over deze Notitie
2
Uitleg over de Activiteit 3D Geometrie Validator 2.1 2.2 2.3
3
Doel en scope van de activiteit Ontwikkeling, proces: Uitgevoerde werkzaamheden - resultaten
Resultaten 3.1
Opgeleverde producten 3.1.1 3D Geometrie validator: desktop applicatie. 3.1.2 3D Geometrie validator: de code
3.2 4
2
3.1.3 Beheer en ondersteuning. Issues voor doorontwikkeling.
Conclusies en aanbevelingen
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
3 4 4 4 4 8 8 8 9 9 9
10
Hoofdstuk 1
Uitleg over deze Notitie Deze notitie is de eindrapportage van Activiteit 2 van de zes 3D Pilot NL Fase II activiteiten: 3D Geometrie validator. De 3D Pilot is een initiatief van het Kadaster, Geonovum, de Nederlandse Commissie voor Geodesie en het Ministerie van Infrastructuur en Milieu, waarin meer dan 100 organisaties (www.geonovum.nl/dossiers/3dpilot/deelnemersvervolg) het afgelopen jaar hebben samengewerkt om de implementatie van 3D geoinformatie te ondersteunen met hulpmiddelen. Deze zes activiteiten van de Pilot (1. Maken voorbeeldbestanden IMGeo 2.0 - CityGML, 2. Ontwerpen
en bouwen 3D validator, 3. Opstellen standaard bestekken voor opbouw 3D IMGeo data, 4. Beschrijven standaard aanpak beheren en updaten 3D data, 5. Verzamelen van 3D killerapplicaties en 6. Afstemming BIM-CityGML-IMGeo standaarden) zijn parallel maar ook in samenwerking uitgevoerd. Van iedere activiteit zijn de ervaringen gerapporteerd in een eindrapport. Inclusief managementsamenvatting, zijn de resultaten van de 3D Pilot dus verwoord in zeven rapportages. De rapportages zijn bedoeld als ingang naar de belangrijkste resultaten en zijn daarmee niet compleet. Meer details zijn te vinden in de presentaties die tijdens de zes kennissessies zijn gehouden (zie www.geonovum.nl/dossiers/3dpilot/bibliotheek/presentaties)
de
www.geonovum.nl/3d
website
die
voortdurende zal worden aangepast aan recente inzichten en ontwikkelingen alsook documenten waarin dit specifieke rapport naar verwezen zal worden. Dit rapport beschrijft de ontwikkeling en inhoud van de 3D validator.
3
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
Hoofdstuk 2
Uitleg over de Activiteit 3D Geometrie Validator 2.1
Doel en scope van de activiteit
Het doel van deze activiteit was het ontwerpen en bouwen van een applicatie voor het valideren van 3D geometrieën met betrekking tot geometrische correctheid (toepassing norm ISO 19107: Geographic information – Spatial Schema). De applicatie is in staat om 3D GML datasets in te lezen, te valideren en te rapporteren over het validatieresultaat. Normatief zijn de topologische regels voor geometrie vastgelegd in ISO en OGC standaarden. In de praktijk is gebleken dat 3D datasets visueel wel een correct beeld kunnen geven van het gemodelleerde terrein maar dat er toch situaties zijn die ruimtelijke analyses onmogelijk maken. Het valideren van de kwaliteit van de 3D geometrie is een ondersteuning aan ontwikkelaars voor het correct implementeren van de standaard. De 3D validator kan ingezet worden in 3D CityGML uitwisselingsprocesssen.
2.2
Ontwikkeling, proces:
De validator is met een team van drie experts tot stand gekomen. Paul Janssen (Geonovum): Activiteitleider, gebruikerseisen, overall specificaties. Jan Kooijman (TNO): Realisatie CityGML to Poly converter. Hugo Ledoux (TU-Delft): Realisatie 3D validatie routine, 2D validatie module, user interface. De functionele eisen van de validator en het functionele ontwerp zijn opgesteld en getoetst binnen de context van de 3D Pilot werksessies. Hierbij is er ook contact geweest met softwareleveranciers. Er is geen beta release geweest omdat dit niet paste binnen de doorlooptijd en omdat er waarschijnlijk op dit moment nog een te lage 3D GML implementatie in de software is. Safe Software (FME) heeft de (zelfde) code van de 3D validatie routine gebruikt voor ontwikkeling van validatie software. Met dat bedrijf is overleg geweest en wederzijdse ondersteuning.
2.3
Uitgevoerde werkzaamheden - resultaten
Probleemanalyse: Er is nog weinig ervaring met implementatie van 3D in GML bestanden. 3D geometrieën zijn vaak complex en op meerdere manieren op te bouwen. De standaarden zijn ook complex en worden niet altijd correct geïmplementeerd. In de eerste fase van de 3D pilot kwam naar voren dat datasets die vaak visueel in orde leken te zijn dat in technische zin niet waren. Er was sprake van structurele foutsituaties en van incidentele fouten. Een structureel aspect is o.a. dat voor visualisatie het niet altijd van belang is dat er 3D volume-objecten
(solids)
worden
gemodelleerd.
Zo
worden
gebouwen
vaak
zonder
grondvlak
gemodelleerd. Alhoewel 2,5 D objecten 3 dimensies hebben, zijn 3D analyses waar volumes een rol spelen daar mee niet mogelijk. Een fout die ook veel voorkomt is verkeerde oriëntatie van vlakken. Eén 3D object is opgebouwd uit vlakken die samen een solid volgen. De oriëntatie van een vlak welke aangeeft wat de binnen of buitenkant is, is daarbij van belang. Geconstateerd is dat er voor 2D geometrie validatie wel tools zijn en dat die ook operationeel toegepast worden maar dat dit voor 3D niet het geval is. Ontwikkeling van een 3D validatie-tool zou daarmee een belangrijke toevoeging zijn aan de beschikbare validatie mechanismen. De tool draagt bij aan de kwaliteit van de implementatie van 3D geometriemodellering in GML door controle van uitwisselbestanden in
4
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
operationele processen maar kan ook ondersteuning bieden aan softwareontwikkeling voor het creëren van 3D GML bestanden. Normatieve referentie: De regels voor 3D topologie zijn vastgelegd in ISO19107 – Geographic Information: Spatial Schema en gerelateerde OGC standaarden. Functioneel ontwerp en specificaties: Uit de analyse kwamen een aantal ontwerpeisen naar voren die bepalend zijn voor het functioneel ontwerp en de realisatie van de applicatie. Het proces voor het valideren van een dataset omvat vier stappen: input GML bestand, omzetten GML naar poly format, validatie en rapportage.
Figuur 1: Vier stappen in het validatieproces. Stap 2, 3, 4 en de realisatie van een gebruikersinterface zijn de vier basisonderdelen geweest voor de inrichting van het ontwikkelproces. Dit eindrapport beschrijft niet het verloop van dat ontwikkelproces. Maar door het beschrijven van de gerealiseerde specificaties wordt voldoende duidelijk welke afwegingen gemaakt zijn: Specificaties 3D Validator: -
Licentie: De validator is gebouwd onder een open source licentie. Het specifieke type open source moet nog bepaald worden.
-
Softwareplatform: Opgeleverd is een Windows desktop interface. Er is geen online webinterface voor een web based applicatie. Er is (nog) geen integratie met de Geonovum Generieke GML validator. In deze fase was er te beperkte capaciteit om die integratie te realiseren. Voor het prototype karakter van de applicatie is dat ook niet zinvol.
-
Bestandsformaat: Input naar de validator zijn CityGML (versie 2.0) bestanden. De testsets die gebruikt zijn zijn van CityGML type. Omdat IMGeo 2.0 100% CityGML compatible is kunnen ook IMGeo 2.0 bestanden gevalideerd worden.
-
Type objecten (semantiek): Alleen objecten van het type Gebouw (Building en BuildingPart) worden gevalideerd. De validator heeft een gescheiden import/conversie component en een validatie routine. De import component gebruikt CityGML4J (Java API) componenten om CityGML om te zetten naar een poly format. In deze versie worden alleen objecten van het type building en buildingpart geconverteerd. De validatieroutine heeft als input de converteerde poly. De routine valideert alle objecten die het aangeboden krijgt op 3D conformiteit. Opmerking: Dit maakt uitbreiding naar andere CityGML typen mogelijk door die ook naar poly format te converteren.
-
Validatie: Voor de validatie gelden een aantal detailspecificaties: o
5
Solids worden gevalideerd.
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
o
Objecten die gevalideerd zijn als een verzameling multisurfaces die mogelijk een solid zouden moeten zijn worden gevalideerd als solid met indicatie dat het als multisurface is gecodeerd.
Toelichting:
Een
GML:solid
is
een
compositesurface
welke
weer
is
gemodelleerd als een collectie van aansluitende surfaces. Dat een gebouw als solid is gemodelleerd, betekent niet dat de individuele surfaces niet meer te bereiken zijn. Deze worden namelijk gemodelleerd. Voor visualisatie doeleinden kan de toegang tot de individuele surfaces uitermate handig zijn, bijvoorbeeld het dak een andere textuur / kleur geven. Wanneer een volume object gemodelleerd is als een verzameling multisurfaces bestaat er geen topologisch verband tussen de surfaces, en is de solid ook niet expliciet. In feite is dit dus een fout. Indien de surfaces van een multisurface geometrie een gesloten geheel vormen, kan er wel een solid (compositesurface) van worden gevormd. Daarom hebben we er voor gekozen te checken op deze situatie. Validatie is op de volgende aspecten (dit zijn de Engelstalige foutcodes): Op het niveau van punten: 100: 'DUPLICATE_POINTS', 110: 'RING_NOT_CLOSED', Op het niveau van lijnen: 200: 'INNER_RING_WRONG_ORIENTATION', 210: 'NON_PLANAR_SURFACE', 220: 'SURFACE_PROJECTION_INVALID', 221: 'INNER_RING_INTERSECTS_OUTER', 222: 'INNER_RING_OUTSIDE_OUTER', 223: 'INNER_OUTER_RINGS_INTERSECT', 224: 'INTERIOR_OF_RING_NOT_CONNECTED', Op het niveau van vlakken: 300: 'NOT_VALID_2_MANIFOLD', 301: 'SURFACE_NOT_CLOSED', 302: 'DANGLING_FACES', 303: 'FACE_ORIENTATION_INCORRECT_EDGE_USAGE', 304: 'FREE_FACES', 305: 'SURFACE_SELF_INTERSECTS', 306: 'VERTICES_NOT_USED', 310: 'SURFACE_NORMALS_BAD_ORIENTATION' Op het niveau van solids: 400: 'SHELLS_FACE_ADJACENT', 410: 'SHELL_INTERIOR_INTERSECT', 420: 'INNER_SHELL_OUTSIDE_OUTER', 430: 'INTERIOR_OF_SHELL_NOT_CONNECTED', Validatieroutines: o
2D geometrie in 3D ruimte. Dit zijn in feite 2D geometrieën waarvoor operationele 2D validatie software kan worden gebruikt. Java Topology Suite (JTS) is in dit geval toegepast. JTS kent geen mogelijkheid
voor validatie in 3D ruimte, daarom is een
aparte routine ontwikkeld die de geometrie projecteert op een horizontaal vlak. Een verticaal vlak wordt geprojecteerd op het verticale vlak. De projecties worden daarna gevalideerd met JTS. o
Voor alle andere situaties die specifiek met solids te maken hebben is een nieuwe routine geprogrammeerd.
-
Fouten rapportage: De applicatie genereert een foutenrapportage in een XML document. Het format daarvan wordt beschreven in bijlage 1. Alle objecten die worden gecontroleerd verschijnen in de rapportage.
6
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
Goed, fout en waarschuwing zijn de drie voorkomende situaties. De objecten (en hun geometrieën) worden geïdentificeerd middels hun id’s. De id’s kunnen o.a. gebruikt worden voor visualisatie van foutsituaties in een 3D GML viewer. Elke fout is voorzien van een foutcode. De foutcodes zijn hierboven bij het onderdeel validatie opgenoemd.
7
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
Hoofdstuk 3
Resultaten 3.1
Opgeleverde producten
3.1.1 3D Geometrie validator: desktop applicatie. De software is open source en public domain. Het is een prototype applicatie met een basale user Windows en Mac interface. Voor Windows wordt de applicatie gerund vanaf de MS-Dos console met specificatie van het CityGML input bestand:
Het resultaat van de validatie is een samenvatting in de MS-Dos console:
En een bestand genaamd report.xml met alle fouten inclusief id van het object (voorbeeld):
c:\python27\testdata\DenHaag11Building1.xml <Solid> 9-1 ERROR <errorCode>210 <shell>-1 GUID_5EBDC21C-C16D-4142-8224-56F29027C737_9_5 ERROR <errorCode>210 <shell>-1 GUID_5EBDC21C-C16D-4142-8224-56F29027C737_9_7 <Solid> 4-1 ERROR <errorCode>303 <shell>-1 GUID_5EBDC21C-C16D-4142-8224-56F29027C737_4_12 Etc......
8
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
Er is een eenvoudige Windows userinterface beschikbaar die met het het commandlijn python validate.py –gui wordt geopend. Zie bijlage 2 voor de screen shots.
3.1.2 3D Geometrie validator: de code Code is beschikbaar onder open source licentie type BSD-3 (Modified BSD License), onder condities zoals in de code vermeld.
3.1.3 Beheer en ondersteuning. De software en code worden gepubliceerd door Geonovum.
3.2
Issues voor doorontwikkeling.
In het functioneel ontwerp en de realisatie daarvan is de functionaliteit van de validator op een aantal aspecten beperkt. Tevens zijn er in de bouw ervaringen opgedaan die relevant zijn voor een mogelijke doorontwikkeling. De issues die nu bekend zijn: -
Uitbreiding van de CityGML – Poly conversie met alle objecttypen die solids kunnen bevatten. Nu worden alleen solids meegenomen die bij een object building horen. Naar Building Complexes, dus meerdere losse gebouwen die een eenheid vormen is nog niet gekeken, ook bij gebrek aan voorbeeldbestanden.
-
Aanpassen van de interface. De huidige MS-Dos interface is niet erg gebruiksvriendelijk. Een windows interface met ‘select file and validate button’ lijkt een minimaal vereiste.
-
Implementatie van de desk top versie in een web omgeving en mogelijk integratie met de 2D generieke GML validator. De applicatie wordt daarmee een centraal mechanisme voor 3D validatie. Dit bevordert de eenheid in gebruik (voor IMGeo implementatie) en maakt applicatie gemakkelijker in te zetten in een controleerde omgeving. De presentatie van de functionaliteit van de 3D validator naar andere doelgroepen wordt verhoogd, inclusief buitenland.
-
Uitbreiding van de rapportage functionaliteit met een 3D viewer. De rapportage is nu in een XML gestructureerd bestand. Visualisatie van de ‘fout objecten’ in een viewer ondersteunt de fouten oplossing. Een methode kan zijn om een bestand te creëren als subset van het origineel met alleen de objecten met een fouten geometrie.
-
Beheer: De applicatie is opgeleverd maar er is geen afspraak gemaakt voor beheer. Regel een aanspreekpunt voor ondersteuning en mogelijk ook doorontwikkeling.
9
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
Hoofdstuk 4
Conclusies en aanbevelingen Het proces van de realisatie van de 3D validator heeft geleid tot de volgende conclusies en aanbevelingen. Conclusies: -
Binnen de 3D pilot II is het gelukt om middels cocreatie met bijdragen van TU-Delft, TNO en Geonovum een operationele validatie voor 3D geometrien te ontwikkelen.
-
De ISO 19107 Geoinformation – Spatial Schema is de normreferentie voor het valideren van geometrien. De hierin voorkomende regels en definities zijn vertaald naar implementeerbare validatie routines.
-
Op basis van die ISO 19107 specificatie was er zover als bekend nog geen validatie software beschikbaar.
-
De applicatie is als open source ontwikkeld en kent een desk top windows en mac interface.
-
Validatie is alleen op de CityGML objecttypen Building en BuildinPart. Deze beperking zit in de CityGML 2 poly import routine. De validatie routine kan alle in poly format ingevoerde geometrien aan.
-
De code voor 3D validatie wordt ook toegepast in FME software. Er is samenwerking met Safe sofware geweest en er is overwogen om hun import en rapportage routine te gebruiken. De 3D validator zou dan echter niet meer geheel open source zijn. Er is daarom van af gezien.
-
De open source code CityGML4J (java) is gebruikt voor de import routine. De code is bruikbaar maar slecht gedocumenteerd.
-
Er zijn weinig CityGML bestanden beschikbaar om de validator te testen.
-
In de beschikbare CityGML bestanden zitten vaak structurele fouten die te maken hebben met een beperkte kennis of toepassing daarvan van de ISO 19107 regels. Eén daarvan is de oriëntatie van vlakken (boven onder, binnen buitenkant). Voor 2D is dit ook minder belangrijk.
-
Bij de beschikbare 3D bestanden is er maar beperkt gebruik gemaakt van solids. Voor visualisatie is een samenstelling van vlakken in de 3D ruimte genoeg, maar voor een aantal 3D analyses zijn solids noodzakelijk (denk aan inhoud van een object). De validator geeft een waarschuwing als een solid wordt verwacht maar een multisurface wordt aangetroffen.
-
De 3D validator draagt gezien de fouten die in de beschikbare datasets aanwezig zijn, aantoonbaar bij aan een correcte toepassing van de ISO 19107 regels en definities. O.a. kan de validator ingezet worden voor ondersteuning van de ontwikkeling van 3D CityGML export modules voor software (van softwareleveranciers) en in 3D CityGML uitwisselingstrajecten.
-
De 3D validator is uitermate geschikt om te kijken of opgeleverde datasets voldoen aan een aantal eisen zoals deze zijn geformuleerd in de Handreiking met keuzes voor de aanbesteding van
3D IMGeo data. Zie hoofdstuk 7 van het betreffende document. Aanbevelingen: -
Maak de huidige interface gebruiksvriendelijker. Dit verhoogt de inzetbaarheid.
-
Maak een web applicatie voor eenduidige toepassing en verhoogde zichtbaarheid.
-
Organiseer het beheer en doorontwikkeling. De validator is nu in een prototype versie die zonder veel
tests
als
open
source
opgeleverd
is.
Regel
ondersteuning
van
de
inzet
bij
softwareleveranciers en in het 3D CityGML IMGeo uitwisseltraject. -
Breidt de validator uit naar alle IMGeo objecttypen. Breidt daarvoor de CityGML 2 Poly routine uit. Kijk naar de combinatie van java met Xquery en Xpath voor een sneller transparantere toegang naar objecten in de CityGML bestanden.
-
Breng de 3D validator internationaal onder de aandacht. Kijk naar mogelijkheden bij OGC, bijvoorbeeld bij software tools en of interoperability program.
-
Voeg routines toe om bepaalde fouten automatisch te repareren, eventueel na toestemming van de gebruiker
10
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage
Bijlage 1: Structuur van foutenrapport. De validator genereert een fouten rapport met de naam report.xml. Dat rapport heeft de volgende structuur. Als voorbeeld een testrapport van een bestand cube9.xml. C:/sept2012Python27/testdata/cube9.xml <Solid> 1-1 ERROR <errorCode>303 <shell>-1 -1
Bijlage 2: Windows user interface Start interface
Opens simple one button interface
Opens standard file browser to select file and execute the Validation software.
11
3D-pilot: Activiteit 2: 3D Geometrie validator. Eindrapportage