"Sans imagination il ne pourrait y avoir création."
Albert Jacquard.

"L'imagination est plus importante que le savoir."
Albert Einstein.

dimanche 4 août 2013

CityGML vers PostGIS 2.0

Intégration de CityGML dans PostGIS 2.0

 

Introduction

Après les trois billets précédents parlant de l’intégration de fichiers BIM/IFC dans PostgreSQL et sa cartouche spatiale PostGIS 2.0, voici un nouveau billet dans lequel je continue à expérimenter les nouvelles possibilités 3D de PostGIS, pour cela je vais vous présenter un outil permettant l’import du format CityGML dans PostGIS  version 2 .0.3

Ci-dessous le lien pour accéder à la page de téléchargement de PostgreSQL pour Windows :

 PostgreSQL Windows

image

 

 

J’ai développé cet outil en C# 2010 avec :

image

Ci-dessous un extrait de l’article Wikipedia sur GDAL http://fr.wikipedia.org/wiki/GDAL

GDAL est une bibliothèque libre permettant de lire et de traiter un très grand nombre de format d'images géographiques (notamment GeoTIFF et ECW) depuis des langages de programmation tels que C, C++, C sharp / .Net, Java, Ruby, VB6, Perl, Python, ou encore le langage statistique R. Un sous-ensemble de cette bibliothèque est la bibliothèque OGR permettant d'accéder à la plupart des formats courants de cartes vectorielles (à l'exception notable d'AutoCAD).

La version binaire inclut de nombreux utilitaires de conversion et de transformation et de reprojection pour traiter directement les photos ou les vecteurs.

Cette bibliothèque est un des piliers des systèmes d'informations géographique libres, car elle permet d'assurer la compatibilité avec de nombreux systèmes commerciaux reposant sur des formats propriétaires tout autant que sur les normes de l'Open Geospatial Consortium.
Logiciels utilisant GDAL/OGR

  • Quantum GIS
  • UMN Mapserver
  • GRASS GIS
  • gvSIG
  • JMap

Quelques liens :

image

BS Contact Geo permet la visualisation de données au format CityGML,VRML, X3D, KMZ, COLLADA, Open JT.

Lien : BS Contact Geo

 

Le format CityGML (qui est un standard de l’OGC) est la référence pour l’échange de modèles 3D de villes, on parle de villes numériques, de cités virtuelles. CityGML est basé sur le format XML , il est implémenté comme un schéma d’application pour le langage ‘Geography Markup Language version 3.1.1 (GML3). ‘ , la norme internationale pour l’échange de données spatiales délivré par ‘Open Geospatial Consortium (OGC)’  et le ‘TC211 ISO’ . CityGML est un standard officiel de l’OGC et peut utilisé gratuitement.

Ci-dessous la traduction de la première page du document :

OGC ® City Geography Markup Language (CityGML) Norme d'encodage

1 Champ d'application

Ce document est la norme d’encodage de l'OGC pour la représentation, le stockage et l'échange de vile 3D virtuelle et de modèles de paysage. CityGML est implémenté comme un schéma d'application de la version 3.1.1 Geography Markup Language (GML3).

Les modèles CityGML partagent des données complexes et géoréférencées du vecteur 3D avec la sémantique liée aux données. Contrairement à d'autres formats vectoriels 3D, CityGML est basé sur un riche modèle d'information générale en plus de la géométrie et d’une information sur l’apparence. Pour les zones spécifiques à un domaine, CityGML fournit également un mécanisme d’extension pour enrichir les données avec des objets identifiables en vertu de la préservation de l'interopérabilité sémantique.

Les domaines d'application visés incluent explicitement la planification urbaine et paysagère; la conception architecturale; les activités touristiques et de loisirs; les cadastres 3D; des simulations environnementales; les télécommunications mobiles; la gestion des catastrophes; la sécurité civile;  la navigation par véhicule et piétonne; les simulateurs d’entrainement et la robotique mobile.

CityGML est considéré comme source de format pour la 3D portraying. Les informations sémantiques contenues dans le modèle peuvent être utilisées dans le processus de définition du style de représentation lors de la génération de fichiers au format KML/COLLADA ou X3D. Le service approprié pour ce processus est l'OGC Web 3D Service (W3DS). Un service basé sur l'image pour les paysages virtuel en 3D et pour les modèles de ville celui-ci est assurée par le Service OGC Web View (WVS).

Caractéristiques du CityGML:

  • L'information géospatiale modèle (ontologie) pour les paysages urbains est basé sur la famille ISO 191xx
  • GML3 représentation de géométrie 3D, sur le modèle de la norme ISO 19107
  • Représentation des caractéristiques d'objets surfacique (textures, matériaux)
  • Les taxonomies et les agrégations
    o Modèles Numériques de Terrain comme une combinaison de (y compris imbriquée) réseaux triangulés irréguliers (TINs), les rasters réguliers, cassures et les lignes de squelettisation,
    o Sites (actuellement bâtiments, ponts et tunnels)
    o Végétation (surfaces, volumes, et objets isolés avec classification de la végétation)
    o Hydrographie (volumes, surfaces)
    o Réseaux de transport (structures de graphes et surfaces de données 3D )
    o Occupation du sol (représentation thématique des zones d’occupation du sol)
    o Matériel urbain
    o objets génériques et attributs de la ville
    o groupes (récursif) définissable par l'utilisateur
  • modèle multi-échelle de 5 niveaux de détail (LOD):
    o LOD0 - régionale, le paysage
    o LOD1 - ville, région
    o LOD2 – quartiers (ville), projets
    o LOD3 - modèles architecturaux (extérieur), points de repère
    o LOD4 - modèles architecturaux (intérieur)
  • visualiser simultanément différents niveaux de détail , généralisation des relations entre des objets de différent niveaux de détail
  • connexions topologiques optionnelles entre les objets (sous) géométrique
  • Extensions de domaine d'application (ADE): ajouts spécifiques dans CityGML, le schéma  permet de définir des extensions spécifiques, par exemple la simulation de la pollution sonore, ou pour enrichir CityGML par les propriétés de la nouvelle Norme nationale du bâtiment ‘National Building Information Model Standard’ (NBIMS) des États-Unis

Ci-dessous des extrait du document ‘OGC City Geography Markup Language (CityGML) Encoding Standard’ matérialisant les différents niveaux de détail.

image

image

image

image

image

image

image

image

Quelques liens pour plus d’informations :

Installation

 

Cliquez sur le lien CityGML2PostGIS_setup.exe pour télécharger le programme d’installation, puis lancez l’exécution .

Cliquer sur le bouton Suivant à chaque étape, puis sur le bouton Terminer.

image

image

 image

image

image

image

image

Utilisation

image Cliquer sur cet icône pour vous connecter à la base de données qui contiendra vos données CityGML, ce qui implique que vous avez PostgreSQL d’installé avec la version PostGIS 2.0

image

image Cliquer sur cet icône pour ouvrir un fichier CityGML, le répertoire par défaut est le répertoire Data sous le répertoire d’installation de l’application

image

 

image

Faites un clic droit dans la vue pour faire apparaitre le menu de BS Contact

image

Sélectionner l’onglet PostGIS

image

image Cliquer sur cet icône pour transférer le contenu du fichier CityGML dans la base de données, dans cette version du programme l’existence d’une table portant le même nom n’est pas réalisée. Le nom de la table qui sera créée est Building  qui est un membre de <cityObjecctMember>, ci-dessous un extrait du fichier CityGML .

 

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<CityModel xmlns="http://www.citygml.org/citygml/1/0/0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.citygml.org/citygml/1/0/0 http://www.citygml.org/citygml/1/0/0/CityGML.xsd">


 


  <gml:name>Sample City Model exported by LandXplorer (c) 2005 3D Geo GmbH</gml:name>


 


  <cityObjectMember>


    <Building gml:id="ID_15_D">


      <lod2Solid>


        <gml:Solid>


          <gml:exterior>


            <gml:CompositeSurface>


              <gml:surfaceMember>


                <gml:OrientableSurface orientation="+">


                  <gml:baseSurface>


                    <gml:Polygon>


                      <gml:exterior>


                        <gml:LinearRing>


                          <gml:pos srsDimension="3">583.197265625 920.46484375 19.2999999523163</gml:pos>


                          <gml:pos srsDimension="3">583.197265625 920.46484375 19.3296172618866</gml:pos>


                          <gml:pos srsDimension="3">583.197265625 920.46484375 19.3268783092499</gml:pos>


                          <gml:pos srsDimension="3">583.197265625 920.46484375 19.2999999523163</gml:pos>


                        </gml:LinearRing>


                      </gml:exterior>


                    </gml:Polygon>


                  </gml:baseSurface>


                </gml:OrientableSurface>


              </gml:surfaceMember>


        </gml:Solid>


      </lod2Solid>


    </Building>


  </cityObjectMember>


</CityModel>






image







Dans la combobox sélectionner la table qui vient d’être créée dans la base données puis cliquer sur le bouton Load Table



image



 



Conclusion





Ce billet met à disposition un outil permettant de visualiser/importer des données CityGML dans une base de données PostgreSQL/PostGIS, il reste très simple puisqu’il n’y a pas de vérification d’existence des tables présentes dans la base de données lors de l’import.