Extraction de l’enveloppe d’un bâtiment à partir d’un lidar aérien

Ce document présente le processus utilisé pour extraire les enveloppes (extérieurs) de bâtiment depuis un lidar aérien classifié. L’approche regroupe des points de toit dans différentes parties de toit, crée un réseau triangulé irrégulier (TIN) pour chaque partie, extrude la limite de chaque partie jusqu’au sol, et écrit la sortie dans une classe d’entités multipatch. La représentation multipatch des extérieurs du bâtiment peut ensuite être utilisée pour la visualisation et l’analyse.

Enveloppes de bâtiment

Un jeu d’exemples d’enveloppes de bâtiment est extrait pour une zone urbaine.

L’avantage de cette approche est la précision de position des toits, ceux-ci étant créés directement depuis les points lidar. Elle peut également modéliser les formes de toit inhabituelles et uniques, car elle ne se limite pas à un ensemble restreint de formes de toit classiques. Parmi les inconvénients, on peut citer les résultats bruyants en cas de visualisation de près, les angles intérieurs des bâtiments qui sont arrondis plutôt que pointus, un nombre de sommets en sortie potentiellement plus élevé et l’absence de plusieurs niveaux de détail.

Il existe d’autres approches pour extraire l’enveloppe d’un bâtiment. L’une d’entre elles, par exemple, fractionne les toits en plusieurs parties, prévoit un type de toit et une hauteur d’avant-toit pour chaque partie, et génère de manière procédurale une géométrie pour la partie, en écrivant la sortie dans une classe d’entités multipatch. Cette approche permet d’obtenir une géométrie nette et simple. Les inconvénients sont surtout liés à la question de la précision de la position. Le toit modélisé peut ne pas correspondre précisément au toit réel, bien qu’il soit possible d’identifier les bâtiments problématiques et de les corriger. Pour plus d’informations, reportez-vous à la rubrique relative à la solution Bâtiments 3D.

Types de toit standards

Les types de toit standards et des exemples utilisant une approche procédurale sont présentés.

Les deux approches extrudent du toit/bord de l’avant-toit jusqu’au sol de sorte que les côtés du bâtiment soient simples et verticaux. Les balcons et les déports ne sont pas capturés dans les modèles.

Configuration requise :

  • ArcGIS Pro 3.3 ou version ultérieure
  • Un lidar aérien classifié du toit du bâtiment
  • Une densité de points d’au moins 4 ppm avec un espacement de 0,5 m
  • Un modèle numérique d’élévation (MNE) de raster pour fournir la hauteur du sol

Concepts

Cette approche utilise les points de toit pour former la géométrie de l’enveloppe du bâtiment. L’encombrement du toit, par exemple avec des antennes, des tuyaux, des conduits d’aération, des ventilateurs et d’autres équipements liés au chauffage, à la ventilation et à la climatisation, peut être indésirable. Les côtés des bâtiments ont tendance à introduire des conséquences négatives, notamment à cause des balcons et des parties qui dépassent des côtés des grands bâtiments. Par conséquent, les points classés en tant que bâtiment doivent inclure le toit mais exclure tout encombrement non souhaitable ainsi que les points des côtés du bâtiment.

Les points de toit sont regroupés selon une distance 3D. Ainsi, les parties du toit qui se trouvent à des hauteurs nettement différentes sont séparées. Des murs verticaux sont érigés entre elles.

Vue du dessus
.
Vue de profil des points de toit

L’agrégation selon la distance est surtout utile pour les grandes structures dans les zones urbaines car il est plus probable que celles-ci présentent des parties dont les hauteurs sont nettement différentes. Les toits dont les parties se rejoignent à des jonctions communes, ce qui est le plus souvent le cas des maisons individuelles, ne se trouveront pas dans des agrégats différents.

Points de toit

Une coupe transversale des points de toit avec différentes sections se rejoignant est affichée. En conséquence, elles seront combinées en un seul agrégat de toit.

La limite 2D de chaque agrégat est utilisée comme partie de toit et est extrudée jusqu’au sol pour former les murs de l’enveloppe du bâtiment. Les polygones des limites d’agrégat, qui sont des enveloppes concaves, sont définis à l’aide d’un concept appelé formes alpha. Un paramètre clé qui définit dans quelle mesure la limite entoure étroitement l’agrégat est appelé rayon alpha.

Vue du dessus des points

De gauche à droite, une vue du dessus d’un ensemble de points pour une partie du bâtiment, une partie correspondante d’un polygone de toit en sortie créé avec un rayon alpha de 0,5 m et un résultat obtenu avec un rayon alpha de 1,0 m. Vous remarquerez que certains angles sont plus pointus avec un rayon alpha plus faible, alors que les côtés du bâtiment sont plus nets avec une valeur plus élevée.

Les différentes limites d’agrégat pour un bâtiment ne se rejoignent pas proprement, ce qui est vraisemblablement une faiblesse de l’approche, car il existe des écarts entre les parties. Cela ne pose pas vraiment de problème sauf en cas de visualisation de près.

Vue du dessus des polygones des parties de toit

Une vue du dessus des polygones des parties de toit d’un bâtiment est affichée à gauche et l’enveloppe du bâtiment correspondante, en perspective, est affichée à droite.

Bien que cette approche de modélisation de l’enveloppe d’un bâtiment présente des limites, les résultats sont souvent suffisants et fournissent une meilleure approximation que les techniques reposant sur la modélisation en fonction des types de toit.

Enveloppes de bâtiment

Workflow

Le processus commence avec l’utilisation de l’outil de géotraitement Extraire des objets d’un nuage de points. Cet outil extrait les emprises géométriques autour des agrégats de points classés de la même façon. Utilisez cet outil afin d’obtenir une emprise 2D pour chaque partie de toit et pour chaque partie, la plage Z des points qui la forment. L’outil utilise ensuite ces polygones de toit en entrée dans l’outil de géotraitement Multipatch de bâtiment LAS. Il génère un réseau triangulé irrégulier (TIN) pour chaque partie en utilisant les points classés de bâtiment, qui sont également filtrés en fonction de la plage de hauteurs associée à la partie de toit, et en extrudant la limite du réseau triangulé irrégulier jusqu’au sol.

Remarque :

Pour gagner du temps, effectuez des tests sur un sous-ensemble représentatif afin d’identifier un jeu approprié de valeurs de paramètre pour vos données, avant d’appliquer ces valeurs à une collection plus vaste.

Paramètres pour l’outil de géotraitement Extraire des objets d’un nuage de points

  1. Input Point Cloud (Nuage de points en entrée) : jeu de données LAS en entrée.
  2. Class Codes to Extract (Codes de classe à extraire) : indiquez le code de classe qui représente les points de toit. En général, il s’agit de la classe 6. Par défaut, vous pouvez définir l’ID de groupe en sortie de façon à ce qu’il soit identique.
  3. Output Object Features (Entités d’objets en sortie) : classe d’entités en sortie.
  4. Output Geometry Type (Type de géométrie en sortie) : enveloppe concave 2D.
  5. Clustering Distance (Distance d’agrégation) : il s’agit de la distance de séparation en Z entre les agrégats. Les valeurs comprises entre 0,5 et 3,0 mètres sont raisonnables. Commencez par 1,5 mètres. L’objectif est que les points appartenant à une partie de toit se trouvent à cette distance les uns des autres et par conséquent, soient regroupés, alors que d’autres parties de toit se trouvant plus loin soient regroupés séparément.
  6. Vertical Clustering Scale factor (Facteur d’échelle d’agrégation verticale) : Commencer par la valeur 1,0 Une valeur plus élevée exagère l’impact de la différence de hauteur entre les points, alors qu’une valeur plus faible le diminue. Si vous utilisez la valeur 0,0, la hauteur n’est plus appliquée et l’agrégation est effectuée en 2D. Utilisez la valeur 0,0 pour obtenir l’emprise du bâtiment au lieu des emprises des parties de toit.
  7. Calculate a Unique Radius For Each Object (Calculer un rayon unique pour chaque objet) : gardez ce paramètre désactivé par défaut, mais n’hésitez pas à le tester. Si vous l’activez, vous obtiendrez probablement des limites plus détaillées pour chaque objet. Bien que potentiellement intéressant, il peut également introduire des murs latéraux plus bruyants pour le bâtiment.
  8. Alpha Radius (Rayon alpha) : ce paramètre contrôle dans quelle mesure les limites des polygones en sortie entourent étroitement les agrégats de points et est activé lorsque le paramètre précédent est désactivé. Les valeurs faibles génèrent davantage de détails le long des murs et autour des angles intérieurs du bâtiment alors que les valeurs élevées sont plus générales et produisent des murs plus lisses. Commencez par 2 mètres.
  9. Minimum Number Of Point (Nombre minimal de points) : conservez la valeur par défaut de ce paramètre, c’est-à-dire 10, sauf si vous avez besoin d’agrégats plus grands (dans ce cas, augmentez la valeur) ou si vous voulez que les agrégats puissent être plus petits (dans ce cas, diminuez la valeur).

Examinez les résultats. Vous pouvez afficher les polygones sur une carte 2D, mais vous risquez de ne pas voir les polygones recouverts par d’autres polygones. Définissez le symbole de remplissage sur transparent pour ne conserver que les contours, afin de voir les polygones masqués. Pour une vue différente, et probablement meilleure, vous pouvez utiliser une scène 3D locale afin d’afficher les polygones en 3D (en utilisant l’attribut MIN_Z ou MAX_Z ajouté à la classe d’entités en sortie).

Envisagez de supprimer les polygones dont la surface 2D est petite car ils constituent surtout du bruit et ajoutent des frais de calcul inutiles pour le rendu et l’analyse. Pour ce faire, utilisez l’outil Sélectionner une couche par attributs, puis la fonction Delete Features (Supprimer les entités). Pour commencer, essayez 6,0 mètres carrés comme taille limite (il s’agit de la surface minimale par défaut utilisée par l’outil Classer des bâtiments LAS).

Envisagez également de supprimer les trous dans les polygones. De nombreux trous existent car une partie de toit plus élevée se situe au milieu d’une partie de toit moins élevée. Si vous comblez un trou dans la partie inférieure, l’apparence sera plus nette en cas d’extrusion de la partie supérieure à travers la partie inférieure. Toutefois, vous risquez de supprimer des trous qui devraient être conservés (par exemple, ceux à travers lesquels aucune autre partie n’est extrudée). Par conséquent, soyez prudent. Vous pouvez utiliser l’option Eliminate Polygon Part (Éliminer des parties de polygone) avec l’option Eliminate contained parts only (Éliminer uniquement les parties incluses). Commencez par une surface raisonnable de 25 mètres carrés.

Paramètres pour l’outil de géotraitement Multipatch de bâtiment LAS

  1. Input Features (Entités en entrée) : utilisez les polygones des parties de toit qui ont été générés par l’outil de géotraitement Extraire des objets d’un nuage de points.
  2. LAS Rooftop Point Selection (Sélection des points du toit LAS) : indiquez les points à utiliser pour les toits. Si vous sélectionnez Building Classified Points (Points classés de bâtiment), l’outil utilisera les points de classe 6. Si vos données utilisent un ou plusieurs autres codes de classe, pour les points de toit, attribuez un filtre des couches en utilisant le ou les codes corrects et sélectionnez l’option Layer Filtered Points (Points filtrés de couche).
  3. Sampling Resolution (Résolution d’échantillonnage) : cette option regroupe les points de toit et utilise le point le plus élevé de chaque groupe. Nous créons un réseau triangulé irrégulier (TIN) à partir de ces points et la triangulation pour ce réseau triangulé irrégulier est en 2D. Les faces réellement verticales et les déports ne sont pas pris en charge. Les points classés du toit peuvent contenir différentes parties de toit se chevauchant.
  4. Ground Height (Hauteur du sol) : les limites des parties de toit sont extrudées jusqu’au sol. Ce paramètre vous permet de sélectionner un MNE ou un attribut à partir des polygones pour obtenir la hauteur du sol. Par exemple, pour que les polygones obtiennent cette attribution, vous pouvez utiliser l’outil Ajouter des informations de surface. Bien que son calcul ait un coût, il est avantageux d’utiliser un attribut de hauteur plutôt qu’un MNE car les informations peuvent être réutilisées sans frais. Si vous utilisez un MNE en entrée, le calcul de la hauteur du sol à partir du MNE est effectué à chaque fois que vous réexécutez l’outil.
  5. Output Multipatch Feature Class (Classe d’entités multipatch en sortie) : enveloppes de bâtiment en sortie.
  6. Simplification Tolerance (Tolérance de simplification) : avant la conversion d’un réseau triangulé irrégulier (TIN) de toit en multipatch, celui-ci peut être généralisé pour réduire le nombre de nœuds. Cette opération est recommandée car elle améliore les performances en aval. La tolérance est la différence de hauteur admise entre le réseau triangulé irrégulier (TIN) généralisé et l’original. Envisagez d’utiliser une valeur égale à la précision verticale du lidar (par exemple, 10 cm).
  7. Minimum Height Field (Champ de hauteur minimale) : il référence un attribut dans la classe d’entités surfaciques en entrée et est utilisé comme filtre. Seuls les points égaux ou supérieurs à cette valeur (et se trouvant dans le polygone) seront utilisés. Cette option exclut des agrégats les données qui peuvent se trouver au-dessus ou en dessous de l’agrégat qui a généré le polygone. Spécifiez le champ MIN_Z qui a été généré à partir de l’outil Extraire.
  8. Maximum Height Field (Champ de hauteur maximale) : il référence un attribut dans la classe d’entités surfaciques en entrée et est utilisé comme filtre. Seuls les points égaux ou inférieurs à cette valeur (et se trouvant dans le polygone) seront utilisés. Cette option exclut des agrégats les données qui peuvent se trouver au-dessus ou en dessous de l’agrégat qui a généré le polygone. Spécifiez le champ MIN_Z qui a été généré à partir de l’outil Extraire.

Si vos données comportent des bâtiments classés de façon à inclure l’encombrement du toit et les points des côtés du bâtiment et que cela génère des problèmes, essayez de copier une surface de test et, à titre expérimental, effectuez à nouveau la classification du bâtiment à l’aide de l’outil de géotraitement Modifier les codes de classes LAS pour réinitialiser la classe du bâtiment sur 1, puis à l’aide de l’outil de géotraitement Classer des bâtiments LAS.

Testez l’option Classify points above the roof (Classer les points au-dessus du toit) dans les multipatchs. L’outil de géotraitement Classer des bâtiments LAS propose une option qui permet de placer les points au-dessus du toit dans la classe 6 ou une autre classe. Il est plus pratique de les placer dans une classe personnalisée et de les inclure en option avec l’outil de géotraitement Extraire des objets d’un nuage de points.

Cet outil vous permet d’utiliser plusieurs classes en entrée et de les traiter comme une seule classe en leur attribuant le même ID de groupe en sortie. Les points qui possèdent le même ID de groupe seront traités comme s’il s’agissait de la même classe dans le cadre de l’agrégation. Si vous incluez des points au-dessus du toit avec l’outil de géotraitement Extraire des objets depuis un nuage de points, il est logique de les inclure à l’aide de l’outil de géotraitement Multipatch de bâtiment LAS. Pour ce faire, activez uniquement les points de bâtiment et les points au-dessus du toit dans la couche de jeu de données LAS, puis choisissez d’utiliser les points filtrés de couche avec l’outil. Vous pouvez aussi traiter les points au-dessus du toit comme une classe à extraire. Si vous les gardez séparés des autres parties de toit, ils seront plus visibles car ils auront des côtés verticaux. Vous pourrez également les activer et les désactiver indépendamment des autres parties du bâtiment.

Essayez d’utiliser les propriétés de couche 3D et l’extrusion pour afficher les polygones des parties de toit extraites. Sans les points lidar, leurs sommets seront plats, mais tous les polygones affichés ensemble auront une apparence acceptable à une certaine distance et leur rendu sera efficace en raison du nombre de sommets relativement faible. L’utilisation de l’option Add Surface Information (Ajouter des informations de surface) entre les polygones des parties de toit extraites et un MNE pour ajouter la hauteur du sol en tant qu’attribut pour les polygones présente un autre avantage : vous pouvez calculer la hauteur du bâtiment par rapport au sol (les polygones des parties de toit auront déjà une valeur MAX_Z provenant des agrégats de points) et l’utiliser pour symboliser les parties du bâtiment.

Crédits pour la source de données lidar :

  • Graphiques 1 et 3 : Institut national de l’information géographique et forestière
  • Graphiques 4 et 7 : Agence gouvernementale des Pays-Bas Rijkswaterstaat, Ministère des infrastructures et de la gestion de l’eau
  • Graphique 5 : USGS Lidar Central Eastern Massachusetts

Rubriques connexes


Dans cette rubrique
  1. Concepts
  2. Workflow