Extraire des objets d’un nuage de points (3D Analyst)

Synthèse

Extrait des objets distincts d’un nuage de points classé dans des entités ponctuelles, surfaciques ou multipatch.

Illustration

Illustration de l’outil Extraire des objets d’un nuage de points

Utilisation

  • Cet outil utilise une distance d’agrégation pour établir quels points appartiennent au même objet. Si plusieurs codes de classe peuvent potentiellement représenter le même objet, attribuez un ID de groupe commun qui référence les codes de classe au cours de l’agrégation. Par exemple, un arbre de grande taille peut comporter des points auxquels les codes de classe 3, 4 et 5 sont attribués. Un ID de groupe commun peut être affecté aux trois codes de classe pour garantir l’identification correcte de l’arbre.

  • L’extraction d’objets offre un jeu de données quantifiable pouvant servir à créer un inventaire des ressources qui peut être visualisé dans une carte ou une scène. Les formes 3D produites par cet outil peuvent faciliter les évaluations de visibilité ou d’impact des ombres. Des représentations géométriques simplifiées peuvent également fournir une abstraction cartographique utile pour visualiser des objets dans des nuages de points plus volumineux.

  • Utilisez le paramètre Nombre minimal de points pour éliminer les objets qui sont définis par un petit nombre de points et risquent de générer des sorties non représentatives.

  • Lorsque vous utilisez l’option Enveloppe concave 2D ou Enveloppe concave 3D pour le paramètre Type de géométrie en sortie, un rayon alpha pour la définition de la géométrie en sortie peut être calculé pour chaque objet, ou le même rayon alpha peut être utilisé pour tous les objets. Le calcul d’un rayon alpha pour chaque objet peut être utile lorsque vous extrayez plusieurs objets présentant des caractéristiques très différentes. Lorsque vous appliquez le même rayon alpha à tous les objets, indiquez le rayon souhaité à l’aide du paramètre Rayon alpha. Si aucune valeur n’est fournie, le rayon utilisé pour l’option Enveloppe concave 2D sera égal à la valeur du paramètre Distance d’agrégation. Lorsque vous utilisez l’option Enveloppe concave 3D, le rayon est dérivé en divisant la valeur du paramètre Distance d’agrégation par la valeur du paramètre Facteur d’échelle d’agrégation verticale, tant que le facteur d’échelle est supérieur à 0. Lorsque le facteur d’échelle est égal à 0, l’enveloppe convexe est créée.

  • Les entités en sortie comporteront les attributs suivants :

    • ObjectCode— code de classe ou ID de groupe utilisé pour identifier le type d’objet ;
    • COUNT— nombre de points qui sont associés à l’objet ;
    • ALPHA— rayon alpha utilisé pour créer la forme en sortie. Ce champ est ajouté uniquement lorsque le paramètre Type de géométrie en sortie est défini sur Enveloppe concave 2D ou Enveloppe concave 3D.

    Les attributs suivants sont ajoutés uniquement pour les géométries de type surfacique :

    • MIN_Z : valeur z la plus faible des points qui appartiennent à un objet
    • MAX_Z : valeur z la plus élevée des points qui appartiennent à un objet

    Des attributs tels que la superficie et le volume peuvent être calculés pour les sorties multipatch à l’aide de l’outil Ajouter des informations Z.

Paramètres

ÉtiquetteExplicationType de données
Nuage de points en entrée

Jeu de données LAS classé, paquetage de couche de scène de nuage de points ou service I3S de nuage de points qui sera utilisé pour détecter des objets.

LAS Dataset Layer; Scene Layer; File
Codes de classe à extraire

Codes de classe qui seront traités pour identifier des objets. Un ID de groupe commun peut être attribué pour regrouper plusieurs codes de classe dans le même objet.

Value Table
Distance d’agrégation

Distance en trois dimensions qui sera utilisée pour identifier les points appartenant au même objet.

Linear Unit
Entités d’objets en sortie

Objets en sortie dont la géométrie d’entité peut être de type point, polygone ou multipatch en fonction de la valeur du paramètre Type de géométrie en sortie.

Feature Class
Type de géométrie en sortie
(Facultatif)

Détermine le type de géométrie qui sera créé pour chaque objet. Le type spécifié détermine si les objets seront représentés sous forme de points, de polygones ou d’entités multipatch.

  • Point centralDes points en trois dimensions seront générés pour représenter chaque objet avec un point créé approximativement au milieu de l’enveloppe convexe de l’objet.
  • Cercle d’empriseDes polygones en deux dimensions seront générés pour représenter chaque objet avec un cercle d’emprise minimale entourant ses points.
  • Emprise 2DDes polygones en deux dimensions seront générés pour représenter chaque objet avec l’emprise orientée la plus petite contenant ses points.
  • Enveloppe convexe 2DDes polygones en deux dimensions seront générés pour représenter chaque objet avec l’enveloppe convexe contenant ses points.
  • Enveloppe concave 2DDes polygones en deux dimensions seront générés pour représenter chaque objet avec une enveloppe concave englobant ses points.
  • Sphère d’empriseDes entités multipatch seront générées pour représenter chaque objet avec une sphère d’emprise minimale englobant ses points.
  • Emprise 3DDes entités multipatch seront générées pour représenter chaque objet avec l’emprise orientée la plus petite contenant ses points.
  • Enveloppe convexe 3DDes entités multipatch seront générées pour représenter chaque objet avec l’enveloppe convexe entourant ses points. Il s’agit de l’option par défaut.
  • Enveloppe concave 3DDes entités multipatch seront générées pour représenter chaque objet avec l’enveloppe concave entourant ses points. Cette option se rapproche de la géométrie d’ajustement la plus proche qui peut être générée à partir des points.
String
Nombre minimal de points
(Facultatif)

Nombre minimal de points qu’un objet doit détenir pour générer une sortie. La valeur par défaut est 10.

Long
Facteur d’échelle d’agrégation verticale

Facteur d’échelle qui sera appliqué aux valeurs z et qui impactera la manière dont la distance d’agrégation est appliquée le long de l’axe z et la manière dont les points sont agrégés en objets. La valeur par défaut est 1, et les valeurs valides sont comprises entre 0,0 et 10,0. Un facteur d’échelle de 0 générera une agrégation en deux dimensions. Un facteur d’échelle compris entre 0 et 1 générera une plage z plus étendue pour chaque objet. De même, un facteur d’échelle verticale supérieur à 1 générera une agrégation des points le long de l’axe z sur une distance plus courte. Le facteur d’échelle verticale s’applique uniquement à la manière dont les points sont agrégés. La géométrie des points et les unités z ne sont pas modifiées.

Double
Calculer un rayon alpha unique pour chaque objet
(Facultatif)

Indique si le rayon alpha sera calculé pour chaque objet ou si le même rayon alpha sera appliqué à tous les objets.

Ce paramètre est disponible uniquement lorsque le paramètre Type de géométrie en sortie est défini sur Enveloppe concave 2D ou Enveloppe concave 3D.

  • Activé : un rayon alpha unique est calculé pour chaque objet.
  • Désactivé : le même rayon alpha est utilisé pour tous les objets. Lorsque ce paramètre est désactivé, le paramètre Rayon alpha peut être utilisé pour définir cette valeur. Si aucune valeur n’est spécifiée, un rayon alpha est calculé pour tout le jeu de données. Il s’agit de l’option par défaut.
Boolean
Rayon alpha
(Facultatif)

Rayon alpha qui sera utilisé pour définir la forme alpha lors de la création des entités d’objet.

Ce paramètre s’applique lorsque le paramètre Calculer un rayon alpha unique pour chaque objet est désactivé et que le paramètre Type de géométrie en sortie est défini sur Enveloppe concave 2D ou Enveloppe concave 3D.

Un rayon alpha plus grand crée une entité d’objet plus unifiée avec des limites plus simples, jusqu’au point d’atteindre l’enveloppe convexe, tandis que des valeurs plus petites incluent les points de l’objet avec davantage de détails, tout en augmentant la probabilité de créer des pièces déconnectées. Lorsque le rayon alpha n’est pas défini, la valeur est dérivée des paramètres Distance d’agrégation et Facteur d’échelle d’agrégation verticale.

Pour en savoir plus sur la manière dont se fait la dérivation du rayon alpha, consultez la section Utilisation dans l’aide de l’outil.

Linear Unit

arcpy.ddd.ExtractObjectsFromPointCloud(in_point_cloud, class_codes_to_extract, clustering_distance, out_features, {geometry_type}, {min_points}, vertical_scale_factor, {alpha_calculation}, {alpha_radius})
NomExplicationType de données
in_point_cloud

Jeu de données LAS classé, paquetage de couche de scène de nuage de points ou service I3S de nuage de points qui sera utilisé pour détecter des objets.

LAS Dataset Layer; Scene Layer; File
class_codes_to_extract
[class_codes_to_extract,...]

Codes de classe qui seront traités pour identifier des objets. Un ID de groupe commun peut être attribué pour regrouper plusieurs codes de classe dans le même objet.

Value Table
clustering_distance

Distance en trois dimensions qui sera utilisée pour identifier les points appartenant au même objet.

Linear Unit
out_features

Objets en sortie dont la géométrie d’entité peut être de type point, polygone ou multipatch en fonction de la valeur du paramètre geometry_type.

Feature Class
geometry_type
(Facultatif)

Détermine le type de géométrie qui sera créé pour chaque objet. Le type spécifié détermine si les objets seront représentés sous forme de points, de polygones ou d’entités multipatch.

  • CENTERPOINTDes points en trois dimensions seront générés pour représenter chaque objet avec un point créé approximativement au milieu de l’enveloppe convexe de l’objet.
  • BOUNDING_CIRCLEDes polygones en deux dimensions seront générés pour représenter chaque objet avec un cercle d’emprise minimale entourant ses points.
  • BOUNDING_BOX_2DDes polygones en deux dimensions seront générés pour représenter chaque objet avec l’emprise orientée la plus petite contenant ses points.
  • CONVEX_HULL_2DDes polygones en deux dimensions seront générés pour représenter chaque objet avec l’enveloppe convexe contenant ses points.
  • CONCAVE_HULL_2DDes polygones en deux dimensions seront générés pour représenter chaque objet avec une enveloppe concave englobant ses points.
  • BOUNDING_SPHEREDes entités multipatch seront générées pour représenter chaque objet avec une sphère d’emprise minimale englobant ses points.
  • BOUNDING_BOX_3DDes entités multipatch seront générées pour représenter chaque objet avec l’emprise orientée la plus petite contenant ses points.
  • CONVEX_HULL_3DDes entités multipatch seront générées pour représenter chaque objet avec l’enveloppe convexe entourant ses points. Il s’agit de l’option par défaut.
  • CONCAVE_HULL_3DDes entités multipatch seront générées pour représenter chaque objet avec l’enveloppe concave entourant ses points. Cette option se rapproche de la géométrie d’ajustement la plus proche qui peut être générée à partir des points.
String
min_points
(Facultatif)

Nombre minimal de points qu’un objet doit détenir pour générer une sortie. La valeur par défaut est 10.

Long
vertical_scale_factor

Facteur d’échelle qui sera appliqué aux valeurs z et qui impactera la manière dont la distance d’agrégation est appliquée le long de l’axe z et la manière dont les points sont agrégés en objets. La valeur par défaut est 1, et les valeurs valides sont comprises entre 0,0 et 10,0. Un facteur d’échelle de 0 générera une agrégation en deux dimensions. Un facteur d’échelle compris entre 0 et 1 générera une plage z plus étendue pour chaque objet. De même, un facteur d’échelle verticale supérieur à 1 générera une agrégation des points le long de l’axe z sur une distance plus courte. Le facteur d’échelle verticale s’applique uniquement à la manière dont les points sont agrégés. La géométrie des points et les unités z ne sont pas modifiées.

Double
alpha_calculation
(Facultatif)

Indique si le rayon alpha sera calculé pour chaque objet ou si le même rayon alpha sera appliqué à tous les objets.

Ce paramètre n’est actif que si le paramètre geometry_type est défini sur CONCAVE_HULL_2D ou CONCAVE_HULL_3D.

  • PER_OBJECTUn rayon alpha unique est calculé pour chaque objet.
  • ALL_OBJECTSLe même rayon alpha est utilisé pour tous les objets. Lorsque cette option est spécifiée, le paramètre alpha_radius peut être utilisé pour définir cette valeur. Si aucune valeur n’est spécifiée, un rayon alpha est calculé pour tout le jeu de données. Il s’agit de l’option par défaut.
Boolean
alpha_radius
(Facultatif)

Rayon alpha qui sera utilisé pour définir la forme alpha lors de la création des entités d’objet.

Ce paramètre s’applique lorsque le paramètre alpha_calculation est défini sur ALL_OBJECTS et que le paramètre geometry_type est défini sur CONCAVE_HULL_2D ou CONCAVE_HULL_3D.

Un rayon alpha plus grand crée une entité d’objet plus unifiée avec des limites plus simples, jusqu’au point d’atteindre l’enveloppe convexe, tandis que des valeurs plus petites incluent les points de l’objet avec davantage de détails, tout en augmentant la probabilité de créer des pièces déconnectées. Lorsque le rayon alpha n’est pas défini, la valeur est dérivée des paramètres clustering_distance et vertical_clustering_scale_factor.

Pour en savoir plus sur la manière dont se fait la dérivation du rayon alpha, consultez la section Utilisation dans l’aide de l’outil.

Linear Unit

Exemple de code

Exemple 1 d’utilisation de la fonction ExtractObjectsFromPointCloud (fenêtre Python)

L’exemple suivant illustre l’utilisation de cet outil dans la fenêtre Python.

import arcpy
arcpy.env.workspace = r"C:/GIS_Data"
arcpy.ddd.ExtractObjectsFromPointCloud("Terrestrial_Scan.lasd", [(4, 5), (5, 5)],
                                       "60 Centimeters", "Trees.shp", 
                                       "CONCAVE_HULL_2D", 50)