3D – Les surfaces fonctionnelles -Cas particulier du littoral (interface terre mer)

Nous avons déjà abordé la génération de surfaces fonctionnelles (modèles numériques de terrain) pour la modélisation 3D. Leur application et leur mise en œuvre est essentielle dans les visualiseurs 3D comme ArcScene et ArcGis Pro. Il y a un cas particulier qui mérite qu’on s’intéresse un peu: le cas particulier de la zone littorale. A l’interface de la terre et la mer nous allons disposer, en général, de deux sources de données: les courbes de niveaux ou les élévations pour le domaine terrestre, et les isobathes ou les sondes pour le domaine marin.
Intégrer ces deux sources de données dans un seul modèle numérique de terrain peut sembler facile à première vue. Mais on a vite fait de fabriquer un modèle erroné. En effet, les deux sources de données ont des références verticales différentes.

Les références verticales utilisées à terre et en mer

Les hauteurs terrestres sont établies par rapport à un zéro commun à toute la France (le 0 IGN69). Les profondeurs des cartes marines sont établies par rapport à un zéro référencé par rapport à un port de référence (zéro hydro). Comme il y a plusieurs ports de référence le long de côtes françaises, et que chaque zéro hydro est calculé en fonction de la marée au port de référence, les différents zéro hydro ne sont pas à la même hauteur par rapport au zéro IGN69. Pour exprimer le problème plus simplement, une profondeur de 1m dans la Rade de Brest n’est pas à la même hauteur terrestre qu’une profondeur de 1m dans l’estuaire de la Gironde.
Pour comprendre la complexité du problème il suffit de regarder sur une carte la hauteur du 0 terrestre (dans la figure elle est représentée en jaune) et de la profondeur 0 de la carte marine correspondante (dessinée en rouge).

Selon les endroits, la différence de placement des zéros se traduira par une marche, un plateau, plus ou moins important. Dans la figure suivante, cet effet est marqué en vert.

Pour résoudre ce problème il faut impérativement transformer les données bathymétriques pour les ramener au zéro terrestre. Mais cette opération nécessite de connaître la valeur de cette correction pour la zone de travail.

Détermination de la correction du zéro hydro vers le zéro IGN69

Vous trouverez sur le site du Service hydrographique et Océanographique de la Marine (SHOM), à l’adresse www.shom.fr, un ouvrage téléchargeable gratuitement, le document « Références Altimétriques Maritimes ». Dans cet ouvrage, en plus de toutes les explications techniques, vous trouverz une carte des zones de marée avec l’indication du port de référence de chaque zone.

Pour chaque zone, un tableau indique la correction pour la zone (première ligne du tableau), puis les paramètres de correction pour tous les ports secondaires. En principe, seule la première ligne vous intéresse si vous utilisez les cartes marines courantes.

La valeur à utiliser est a valeur indiquée dans la colonne ZH/Ref. Dans l’exemple ci-dessus, -3.635. cette valeur doit être ajoutée à toutes les valeurs de profondeur pour le ramener à la référence terrestre. Mais n’oubliez pas de changer de signe aux profondeurs!
Une profondeur de 5m sur la carte marine est une hauteur de -5m par rapport au zéro hydro et de -5 + -3,635 = -8,635m par rapport au zéro terrestre.
Une fois toutes les profondeurs corrigées, si vous construisez votre MNT, le résultat obtenu n’aura plus de plateau et vos profils correspondront à la réalité.

Comment passer vos données de la 2D à la 3D pour exploiter pleinement ArcGis Pro 1.0? 6-création de surfaces vecteur 3D

Le principe des surfaces, par rapport aux données vecteur classiques (points, lignes, polygones) est d’être continues sur toute l’emprise de travail. Dans une couche vecteur de points, il n’y a aucune informations stockée sur tous les endroits où il n’y a pas de point. Dans une couche de type surface, tous les endroits possèdent de l’information: là où il n’y en a pas on stocke l’information qu’il n’y en a pas! (NODATA).
Nous avons vu comment créer une surface raster das l’article précédent. Les rasters sont constitués de cellules carrées de même taille partout. L’inconvénient de ce type de surface c’est le volume de données en rapport avec la taille de cellule: plus la taille de cellule est petite, plus le volume du fichier augmente.
Une manière de réduire a taille, et par conséquent le temps de traitement et d’affichage, est de faire des cellules de taille différente: là où il y a de l’information on utilise de petites cellules pour stocker correctement la structure détaillée des entités géographiques, là où il n’y a pas d’information on utilise une seule et grande cellule. Pour pouvoir faire ceci, il convient d’utiliser des cellules triangulaires à la place des cellules carrées : on construit ainsi un réseau triangulaire irrégulier (TIN).

Créer une surface vecteur TIN

Dans ArcGis vous disposez de l’outil « Créer un TIN » dans la boîte à outils 3D Analyst->Gestion de données->TIN

La surface créée apparaît visuellement comme une surface raster et peut être utilisée telle quelle dans ArcMap et ArcScene.

La différence réside dans la structure de l’information: à la place de pixels raster on a des triangles.

Créer une surface vecteur TERRAIN (Jeu de données de MNT)

Un jeu de données de MNT (Terrain Dataset en anglais) est une surface TIN multi-résolutions créée à partir de plusieurs sources de données stockées en tant qu’entités dans une géodatabase (sources lidar, sonar,photogrammétriques). Les MNT résident dans la géodatabase, à l’intérieur du jeu de données où sont stockées les entités utilisées pour leur création.

Les MNT ne contiennent pas vraiment les données mais plutôt les règles des classes d’entités participantes, semblables à des topologies.
Les règles du jeu de données de MNT contrôlent la manière dont les entités sont utilisées pour définir une surface. Ainsi, une classe d’entités qui contient les lignes de falaise peut être utilisée dans une règle selon laquelle ses entités sont des lignes de fracture rigides. Cela produira l’effet escompté, à savoir la création de discontinuités linéaires (des « marches ») sur la surface.

Les règles indiquent également le mode de participation d’une classe d’entités selon la plage d’échelles. Il se peut que des entités soient nécessaires uniquement pour les représentations de surface de moyenne échelle à grande échelle. Vous pouvez utiliser des règles afin d’empêcher toute utilisation à petite échelle, d’où une amélioration des performances.

Un jeu de données de MNT au sein d’une géodatabase fait référence aux classes d’entités d’origine. Il ne stocke pas, à proprement parler, une surface en tant que raster ou TIN. Au lieu de cela, il organise les données en vue d’une récupération rapide et dérive une surface TIN à la volée. Cette organisation implique la création de « pyramides » de MNT utilisées pour n’extraire rapidement que les données nécessaires à la génération d’une surface du niveau de détail requis dans une zone d’intérêt donnée, à partir de la base de données. Le niveau de pyramide approprié est utilisé par rapport à l’échelle d’affichage actuelle ou peut être choisi par l’utilisateur dans des fonctions d’analyse.

L’apport de ce « format » dans ArcGis est considérable, non seulement par le fait qu’il permet d’intégrer plusieurs couches de données différentes pour « fabriquer » le modèle de terrain, mais aussi par la puissance et vitesse de traitement « à la volée ». Si vous avez à utiliser un MNT pour votre travail, cette option de travail a été conçue pour vous!

MAIS…, et oui, il y a un mais et un grand. C’est un format d’avenir, mais pas tout à fait de présent. Il ne peut pas être chargé dans ArcScene et pas non plus dans la vue 3D d’ArcGis Pro. Comme il est généré à la volée, rien n’a été prévu dans les visualiseurs 3D d’ArcGis pour faire ce travail. Si vous en avez un, il faut le transformer en couche statique (raster ou TIN) pour pouvoir le charger dans une vue 3D, en attendant un jour une version d’ArcScene et d’ArcGis Pro qui le prenne en charge.

Comment passer vos données de la 2D à la 3D pour exploiter pleinement ArcGis Pro 1.0? 5-création de surfaces raster 3D

Créer une surfaces 3D à partir d’entités topographiques est assez courant pour des utilisateurs de SIG. En partant de données ponctuelles, linéaires ou surfaciques structurées en X,Y,Z ou seulement en X,Y mais avec un attribut contenant le Z, vous créez des surfaces continues qui peuvent être de deux grands types: des surfaces raster ou des surfaces vectorielles.

Créer un surface raster

Une surface raster est une surface continue constituée de cellules carrées contiguës. Toutes les cellules ont la même taille. Vous créez ces surfaces généralement en interpolant des entités ponctuelles (hauteurs), linéaires (courbes de niveau?…) ou plus rarement surfaciques.

Dans ArcGis il y a de nombreuses méthodes d’interpolation disponibles, mais il y en a une spécialement conçue pour créer des Modèles numériques de terrain.

Il s’agît de l’outil Topo vers raster est une méthode d’interpolation spécialement destinée à la création de modèles numériques de terrain (MNT) hydrologiquement corrects.
Topo vers raster interpole les valeurs d’altitude d’un raster en imposant des contraintes pour garantir :

  • une structure de drainage qui soit connectée,
  • la représentation correcte des crêtes et des cours d’eau à partir des données d’isolignes en entrée.
  • Ainsi, il s’agit de l’unique interpolateur d’ArcGIS conçu spécialement pour s’appliquer intelligemment à des entrées d’isolignes.

    Nous allons créer une surface raster à partir d’une couche d’isobathes.

    La commande Topo vers Raster se trouve dans la boîte 3D Analyst->Interpolation raster

    Une fois la couche en entrée définie, vous devez sélectionner le champ contenant les Z et choisir la taille des cellules en sortie.
    Le résultat s’affiche dans ArcMap.

    Cette couche peut être chargée dans ArcScene et peut être utilisée comme base pour les hauteurs affichées dans la vue.

    Comment passer vos données de la 2D à la 3D pour exploiter pleinement ArcGis Pro 1.0? 4-utiliser les symboles 3D

    Une manière très simple de visualiser vos données en 3D est de leur affecter un symbole 3D. Vos données restent inchangées et vous les voyez en 3D. L’exemple type étant les lampadaires, on va le laisser de côté et essayer de faire quelque chose de pus original et surtout de découvrir quelques possibilités moins évidentes à première vue.
    Sur le web vous avez de nombreux sites qui proposent des objets 3D très intéressants. Notre préférence (parce que l’on trouve le type d’objets que nous cherchons) va à archive3d (http://archive3d.net).
    Nous allons ajouter un stade de foot à la vue du cadastre de l’article Comment passer vos données de la 2D à la 3D pour exploiter pleinement ArcGis Pro 1.0? 2 – Avec couche 3D vers classe d’entités. Voyons les différentes étapes:

    Les symboles s’appliquent essentiellement à des entités ponctuelles

    Les possibilités offertes par les symboles ponctuels sot infiniment plus intéressantes que celles offertes par les symboles linéaires ou surfaciques. Nous avons donc, soit directement une couche de points, soit, pour notre stade, une surface. Dans ce deuxième cas, il faut créer une nouvelle couche de points en calculant le centroïde de notre surface. Comme dans ArcGis cette opération n’est pas très intuitive, voici le rappel de comment le faire:
    utilisez l’outil « Entités vers point » dans « Gestion de données »-> »Entités »

    N’oubliez pas de laisse décochée l’option « Inside(optional) » (oui,oui, c’est bien DEcochée) pour que l’outil calcule le centroïde.
    Cherchez sur le web un modèle de stade 3D (les formats acceptés par ArcGis sont 3DS, FLT, DAE, SKP, et WRL)

    Dans ArcScene, affectez ce symbole à votre couche

    Ouvrez la fenêtre de propriétés du symbole de la couche,

    Dans la fenêtre « Type » sélectionnez « Symbole ponctuel 3D » puis parcourez les fichiers pour pointer sur votre symbole.
    Dans l’onglet « Symbole 3D » vous devez dimensionner votre stade avec les valeurs X,Y et Z en unités de la carte (en principe des mètres). Le deuxième onglet « Placement 3D » vous permet de positionner votre symbole avec la même orientation et au même endroit que le polygone d’origine (stade dans la couche surfacique), en jouant sur les offsets et les rotations.
    Vous obtenez alors votre stade intégré dans la vue 3D.

    Créez une nouvelle couche multipatch pour stocker votre modèle 3D

    Pour cela, vous devez utiliser la commande « Couche 3D vers classe d’entités » à partir d’ArcScene

    Voilà! Chaque fois que vous chargerez cette couche dans un visuaisateur 3D (ArcScene, ArcGis Pro,…) vous verrez votre stade directement.
    Pour mieux voir le résultat de toute l’opération, vous pouvez charger cette nouvelle couche dans ArcMap et voir le résultat en 2D:

    Comment passer vos données de la 2D à la 3D pour exploiter pleinement ArcGis Pro 1.0? 3 – Vos rasters 2D vers 2,5D (surfaces fonctionnelles)

    Le terme trois dimensions (3D) est souvent galvaudé, car de nombreuses applications aujourd’hui stockent et affichent des données en deux dimensions et demie (2.5D) : les surfaces fonctionnelles. Une surface fonctionnelle est continue, et toutes les localisations sur la surface ne peuvent avoir qu’une valeur d’altitude, ou z, par coordonnée x,y. Les véritables surfaces 3D sont quelquefois désignées sous le terme de surfaces de modèle solides et ArcGIS les gère à l’aide d’entités multipatch. Par opposition à une surface fonctionnelle qui présente une continuité de surface, on trouve des surfaces de modèle solides capables de modéliser et de stocker des valeurs en 3D ou il y a plusieurs valeurs z par coordonnée x,y.
    ArcGis traite les surfaces raster, TIN, de jeux de données de MNT et LAS comme des surfaces fonctionnelles. Les surfaces fonctionnelles peuvent stocker une valeur z unique, et non pas plusieurs valeurs z, pour un emplacement x,y donné. L’exemple probablement le plus répandu de surface fonctionnelle correspond aux surfaces terrestres représentant la surface de la terre. D’autres exemples de surfaces fonctionnelles terrestres incluent les données d’isobathes, les profondeurs de nappes phréatiques et les strates géologiques individuelles. Les surfaces fonctionnelles permettent également de représenter des surfaces statistiques décrivant des données climatiques et démographiques, la concentration de ressources et d’autres données biologiques.
    Un autre type de donnée très répandue est la photographie aérienne ou satellitaire. Nous allons prendre comme exemple une couverture orthophotographique.

    Avant de voir comment passer cette image de 2D en plus de 2D (2,5 ou 3) il faut rappeler comment sont stockées les données XY pour les rasters. Les SIG stockent les coordonnées de chaque point composant une entité vectorielle (points, lignes, polygones). Pour une ligne, le SIG aura les XYZ de chaque point la composant. Par contre, pour un fichier de type raster, composé de pixels et couvrant toujours la totalité de la surface, il est impossible de stocker les coordonnées XYZ de chaque pixel composant l’image. Sans rentrer dans les détails des différents systèmes de géoréférencement d’un raster, le plus simple et ancien consiste à stocker les coordonnées(X et Y) du coin haut gauche de l’image, puis de la taille en X et de la taille en Y des pixels. Avec ces 4 valeurs il est possible de dessiner l’image et de la superposer aux autres couches de données.
    Comme chaque pixel n’a pas de coordonnées XY propres, il est impossible de leur adjoindre une coordonnée Z.
    Alors, comment faire pour voir notre photo aérienne en 3 dimensions?
    On va lui affecter une surface de référence, une surface fonctionnelle dans laquelle la valeur du pixel sera le Z souhaité. Cette surface sera généralement un Modèle numérique de terrain (MNT). Puis on dira à ArcGis que l’on souhaite qu’il drape notre photo aérienne sur cette couche de référence.
    Concrètement, dans ArcScene on charge la photo aérienne, puis dans la fenêtre de propriétés de la couche, dans l’onglet « Hauteurs de base » cochez l’option « Flottant sur une surface personnalisée » et naviguez pour indiquer votre couche de référence (MNT).

    La photo apparaît alors drapée sur le MNT. Pour ne pas avoir a refaire cette opération chaque foius que vous voulez afficher votre photo aérienne, il suffit de sauvegarder la couche dans un fichier de couche (.lyr), en cliquant avec le bouton droit de la souris sur la couche puis « sauver comme fichier de couche ».
    Quand vous chargerez cette couche dans ArcScene elle apparaîtra directement en 3D (plus exactement en 2,5D).

    Comment passer vos données de la 2D à la 3D pour exploiter pleinement ArcGis Pro 1.0? 2 – Avec couche 3D vers classe d’entités

    Une autre manière d’obtenir une couche XYZ c’est la création d’une couche multipatch à partir d’une couche 2D. Prenons un exemple courant. Vous avez une couche cadastre avec le bâti.

    Si vous disposez d’un attribut qui vous permet de calculer une hauteur pour chaque bâtiment, par exemple le nombre de niveaux, vous pouvez, dans ArScene affecter une extrusion à chaque polygone en fonction de ce champ.
    Vous définissez l’extrusion dans la fenêtre de propriétés de la couche, onglet extrusion.

    Ici nous affectons une hauteur de 2,75m pour chaque niveau du bâtiment. ArcScene crée un objet 3D à partir de chaque polygone bâtiment en lui affectant la hauteur calculée.

    Vous pouvez alors créer une nouvelle couche de données à partir de cette couche. La nouvelle couche sera de type multipatch et contiendra, non plus de polygones mais des polyèdres.
    Pour cela, vous devez utiliser la commande « Couche 3D vers classe d’entités » à partir d’ArcScene, sur la couche extrudée.

    Pour renseigner la fenêtre, rien de bien difficile: la couche extrudée et le nom de la nouvelle couche.
    Par contre, ATTENTION!!!, selon la version d’ArcGis que vous avez, la commande marche ou ne marche pas. Eh oui! Il y a un bug dans la 10.2, corrigé dans la 10.2.2 et revenu dans la 10.3…
    Si le résultat de votre commande s’affiche dans ArcScene sans extrusion, vous avez gagné, votre version a le bug. Pour contourner ce bug et obtenir le bon résultat, il faut désactiver le geoprocesseur en arrière plan: dans le menu Geoprocesseur sélectionnez Options du geoprocesseur et décochez la case Exécuter en arrière plan.
    Si la commande marche, le résultat obtenu est le suivant:

    Les bâtiments apparaissent directement en 3D, sans avoir besoin de définir une extrusion.

    Comment passer vos données de la 2D à la 3D pour exploiter pleinement ArcGis Pro 1.0? 1 – Avec Interpoler une forme

    L’apport le pus intéressant d’ArcGis Pro 1.0 c’est, incontestablement, la possibilité de travailler avec deux fenêtres liées, l’une affichant les données en 2D telles que vous avez l’habitude dans ArcMap, l’autre affichant la même emprise mais en 3D.
    Mais le problème c’est que jusqu’à présent, sauf rares exceptions, vous n’avez jamais créé des couches 3D. Toutes vos données, ou presque n’ont que des X,Y. Normal, puisque le Z n’apportait que du travail supplémentaire!
    Au fait, ce n’est pas si compliqué de résoudre ce problème. Tout ce qu’il vous faut c’est une couche de référence pour le fameux Z. En termes plus techniques, en général, un MNT (modèle numérique de terrain). Cette couche va vous permettre de créer les données Z de vos autres couches, en suivant les pas décrits ci-après. On va pas s’attarder ici sur comment choisir la couche de référence Z, mais cela implique une réflexion aussi poussée que celle que vous avez eue (ou que vous devriez avoir eue!) lors du choix de votre référentiel X,Y.
    Dans l’exemple suivant nous utilisons comme référence le modèle numérique de terrain avec un pas de 90m dérivé de l’USGS/NASA SRTM (http://srtm.csi.cgiar.org) qui est gratuit et téléchargeables directement. Les images correspondent à la visualisation 3D sous ArcScene.
    modèle 3d de terrain
    La couche 2D que nous avons choisi c’est la couche de cours d’eau du SANDRE (http://www.sandre.eaufrance.fr) pour la Bretagne. C’est une couche au format shape avec des données linéaires X,Y.

    L’ensemble des cours d’eau apparaît « à plat » car il n’y a pas d’information Z. Sous ArcScene vous pouvez demander à les « draper » sur les données 3D, mais cette opération n’agît que sur l’affichage.
    Pour convertir la couche X,Y en X,Y,Z vous disposez de la commande « Interpoler une forme » (Interpolate shape dans la version anglaise) dans la boîte à outils 3DAnalyst.

    Vous avez trois couches à renseigner:

  • la couche de référence 3D, ici le DEM de la Bretagne
  • la couche 2D à passer en 3D, ici les cours d’eau du SANDRE
  • la couche Y,Y,Z en sortie, une nouvelle couche qui sera créé par la commande et qui contiendra le même type d’entités (ici des lignes) mais en ayant ajouté les Z calculés par interpolation de la couche de référence 3D.
  • Le résultat est une couche qui, quand elle est affichée en 3D (ici ArcScene) n’a plus besoin de drapage car elle contient elle-même les informations verticales.