Étiquette | Explication | Type de données |
Jeu de données LAS en entrée | Jeu de données LAS contenant les points qui vont définir le toit du bâtiment. | LAS Dataset Layer |
Entités en entrée | Entités surfaciques qui définissent l'emprise du bâtiment. | Feature Layer |
Hauteur du sol | La source des valeurs de hauteur du sol peut être un champ numérique dans la table attributaire d’emprise du bâtiment, ou une surface raster ou TIN. Une source terrestre basée sur un champ sera traitée plus rapidement qu'une source terrestre basée sur une surface. | Field; Raster Layer; TIN Layer |
Classe d’entités multipatch en sortie | Classe d'entité multipatch qui stockera les modèles de bâtiment en sortie. | Feature Class |
Sélection des points du toit LAS (Facultatif) | Spécifie les points LAS qui seront utilisés pour définir le toit du bâtiment.
| String |
Tolérance de simplification (Facultatif) | Valeur de tolérance z utilisée pour simplifier la géométrie du toit. Cette valeur définit l’écart maximal du modèle de toit en sortie par rapport à la surface TIN créée avec les points LAS. | Linear Unit |
Résolution d’échantillonnage (Facultatif) | Taille de regroupement utilisée pour affiner le nuage de points avant la construction de la surface du toit. | Linear Unit |
Synthèse
Permet de créer des modèles de bâtiment dérivés de points de toit capturés dans des données lidar.
Illustration
Utilisation
Il est présumé que les points LAS fournissent la couverture recherchée pour le toit du bâtiment. Pour obtenir les meilleurs résultats possibles, veillez à exclure les points qui représentent d’autres parties du bâtiment que le toit, car ils produisent généralement du bruit dans le modèle de bâtiment obtenu. Si le jeu de données LAS ne contient pas de points classés de bâtiment, utilisez l’outil Classer des bâtiments LAS pour classer des points de bâtiment. L’outil attribue alors un code de classe de valeur 6 aux points représentant des toits de bâtiment. Examinez les résultats de la classification, puis apportez les corrections nécessaires en réexécutant l’outil avec des choix de paramètres différents ou par la mise à jour de la classification interactive. Générez le modèle une fois que la couverture des bâtiments de la classification vous convient.
Classez les points au sol avant d’exécuter cet outil. Utilisez l’outil Classer le sol LAS pour attribuer aux points au sol un code de classe de valeur 2 s’ils n’ont pas déjà été classés.
Le modèle de bâtiment est généré par la construction d’un TIN à partir des points LAS qui se superposent au polygone d’emprise de bâtiment. L’emprise est incorporée dans ce TIN comme un polygone de découpage dont la hauteur est définie par la source indiquée pour le paramètre Hauteur du sol. La valeur du paramètre Hauteur du sol peut être exprimée sous la forme d’un champ de la table attributaire du polygone d’emprise ou d’une surface d’altitude. Si le nuage de points traité possède une densité de points élevée, vous pouvez utiliser le paramètre Résolution d’échantillonnage afin d’affiner les points qui seront utilisés pour la construction du toit.
Les polygones qui se composent de segments d’arc ne sont pas pris en charge par cet outil. Si de telles entités sont présentes dans les données en entrée, vous pouvez faire une copie de ces entités et remplacer les géométries d’arc par des segments de ligne à l’aide de l’outil Densifier.
Lorsque la hauteur du sol est dérivée d’un champ de la table attributaire de l’emprise, l’unité de hauteur est censée être la même que l’unité z du jeu de données LAS en entrée. Si la hauteur dans la table attributaire est exprimée dans une unité linéaire différente, utilisez l’outil Calculer un champ pour appliquer le facteur de conversion approprié avant d’utiliser cet outil. La hauteur du sol peut être attribuée aux polygones d’emprise de bâtiment comme suit :
- Filtrez le jeu de données LAS pour les points au sol en utilisant les propriétés de la couche ou l’outil Créer une couche de jeu de données LAS.
- Exécutez l’outil Ajouter des informations de surface avec les entités en entrée définies sur le polygone d’emprise de bâtiment, la surface en entrée définie sur le jeu de données LAS filtré par le sol et la propriété en sortie définie sur la valeur Z_MIN pour faire en sorte que le bâtiment commence à la valeur z la plus faible.
Lorsque la hauteur du sol est définie par une surface, la plus petite valeur z le long de la limite du polygone détermine la hauteur de base du bâtiment. Utilisez le même système de coordonnées verticales pour la surface que celui du jeu de données LAS. Vous pouvez créer un TIN ou une surface raster du sol à partir des points LAS classés comme terrestres en filtrant le jeu de données LAS en fonction des points classés comme terrestres et en utilisant, au choix, l’outil Jeu de données LAS vers raster ou l’outil Jeu de données LAS vers TIN pour générer la surface.
Les points LAS sont traités plus efficacement lorsque le jeu de données LAS dispose de statistiques. Utilisez l’outil Statistiques du jeu de données LAS pour calculer des statistiques.
Paramètres
arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, {simplification}, {sampling_resolution})
Nom | Explication | Type de données |
in_las_dataset | Jeu de données LAS contenant les points qui vont définir le toit du bâtiment. | LAS Dataset Layer |
in_features | Entités surfaciques qui définissent l'emprise du bâtiment. | Feature Layer |
ground | La source des valeurs de hauteur du sol peut être un champ numérique dans la table attributaire d’emprise du bâtiment, ou une surface raster ou TIN. Une source terrestre basée sur un champ sera traitée plus rapidement qu'une source terrestre basée sur une surface. | Field; Raster Layer; TIN Layer |
out_feature_class | Classe d'entité multipatch qui stockera les modèles de bâtiment en sortie. | Feature Class |
point_selection (Facultatif) | Spécifie les points LAS qui seront utilisés pour définir le toit du bâtiment.
| String |
simplification (Facultatif) | Valeur de tolérance z utilisée pour simplifier la géométrie du toit. Cette valeur définit l’écart maximal du modèle de toit en sortie par rapport à la surface TIN créée avec les points LAS. | Linear Unit |
sampling_resolution (Facultatif) | Taille de regroupement utilisée pour affiner le nuage de points avant la construction de la surface du toit. | Linear Unit |
Exemple de code
L’exemple suivant illustre l’utilisation de cet outil dans la fenêtre Python.
arcpy.env.workspace = 'C:/data'
arcpy.LasBuildingMultipatch_3d('Highland.lasd', 'footprint.shp', 'dem.tif',
'highland_3d_bldgs.shp', simplification='4 Feet')
L’exemple suivant illustre l’utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Extract Building Footprints & Generate 3D Models
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)
model = arcpy.GetParameterAsText(2)
try:
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=6)
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
arcpy.ddd.LasPointStatsByArea(lasd_layer, footprint, ['MIN_Z', 'MAX_Z'])
arcpy.management.AddField(footprint, 'Height', 'Double')
arcpy.management.CalculateField(footprint, 'Height',
"round('!Z_Max! - !Z_Min!', 2)",
'PYTHON_9.3')
simplification = arcpy.Describe(lasd).pointSpacing * 4
arcpy.ddd.LasBuildingMultipatch(lasd_layer, footprint, 'Z_MIN', model,
'BUILDING_CLASSIFIED_POINTS', simplification)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Environnements
Informations de licence
- Basic: Nécessite 3D Analyst
- Standard: Nécessite 3D Analyst
- Advanced: Nécessite 3D Analyst
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?