Localiser les points LAS par proximité (3D Analyst)

Résumé

Identifie les points LAS dans la proximité en trois dimensions des entités prenant en charge les valeurs Z et permet également de reclasser les points.

Utilisation

  • Cet outil met à jour l’entité en entrée avec un champ qui contient le nombre de points LAS situés dans le rayon de recherche spécifié. Comme il peut générer un nombre illimité de points, mieux vaut éviter l’utilisation de distances de recherche extrêmement grandes.

  • Vous pouvez configurer la couche de jeu de données LAS pour qu’elle limite les points LAS affichés et traités. Pour ce faire, sélectionnez une combinaison de codes de classification, d’indicateurs de classification et de valeurs renvoyées dans les paramètres de filtre de la couche. Les filtres peuvent être définis par l’intermédiaire de la boîte de dialogue Layer Properties (Propriétés de la couche) ou de l’outil Make LAS Dataset Layer (Créer une couche de jeu de données LAS).

  • Lors de la génération de l’entité ponctuelle en sortie à l’aide de la géométrie à point unique, un champ intitulé DIST3D est ajouté à la sortie qui contient la distance 3D entre le point et l’entité en entrée la plus proche.

Syntaxe

LocateLasPointsByProximity(in_las_dataset, in_features, search_radius, count_field, {out_features}, {geometry}, {class_code}, {compute_stats})
ParamètreExplicationType de données
in_las_dataset

Jeu de données LAS à traiter.

LAS Dataset Layer
in_features

Entités ponctuelles, linéaires, surfaciques ou multipatch 3D dont la proximité est utilisée pour identifier les points LAS.

Feature Layer
search_radius

Distance autour des entités en entrée qui sont évaluées en vue de détecter la présence de points LAS. Elle peut se présenter sous la forme d’une distance linéaire ou d’un champ numérique dans la table attributaire des entités en entrée. Si le rayon de recherche découle d'un champ ou d'une distance linéaire dont les unités linéaires sont signalées comme Inconnu, l'unité linéaire de la référence spatiale XY des entités en entrée est utilisée.

Les unités suivantes sont prises en charge :

  • UNKNOWNInconnu
  • INCHESPouces
  • FEETPieds
  • YARDSYards
  • MILESMilles
  • CENTIMETERSCentimètres
  • DECIMETERSDécimètres
  • METERSMètres
  • KILOMETERSKilomètres
Linear Unit; Field
count_field

Nom du champ qui est ajouté à la table attributaire de l’entité en entrée et renseigné avec le nombre de points LAS à proximité de chaque entité. Le nom de champ par défaut est COUNT.

String
out_features
(Facultatif)

Entités ponctuelles qui représentent les points LAS détectés dans la proximité spécifiée des entités en entrée.

Feature Class
geometry
(Facultatif)

Indique la géométrie des entités ponctuelles en sortie qui représentent les points LAS détectés dans la proximité spécifiée des entités en entrée.

  • MULTIPOINTEntités multi-points dont chaque ligne comportera plusieurs points.
  • POINTEntités à un seul point qui comportera une ligne unique pour chaque point LAS identifié.
String
class_code
(Facultatif)

Valeur du code de classe qui permet de reclasser les points détectés au sein du rayon de recherche des entités en entrée.

Long
compute_stats
(Facultatif)

Spécifie si des statistiques doivent être calculées pour les fichiers LAS référencés par le jeu de données LAS. Le calcul des statistiques fournit un index spatial pour chaque fichier LAS, ce qui améliore les performances d’analyse et d’affichage. Les statistiques permettent également d’optimiser l’utilisation des filtres et de la symbologie en limitant l’affichage des attributs LAS (tels que les codes de classification et les informations renvoyées) aux valeurs présentes dans le fichier LAS.

  • COMPUTE_STATSLes statistiques sont calculées.
  • NO_COMPUTE_STATSLes statistiques ne sont pas calculées. Il s’agit de l’option par défaut.
Boolean

Sortie dérivée

NomExplicationType de données
out_las_dataset

Jeu de données LAS en entrée mis à jour.

Couche du jeu de données LAS
derived_features

Entités 3D en entrée mises à jour.

Couche d'entités

Exemple de code

Exemple 1 d'utilisation de l'outil LocateLasPointsByProximity (fenêtre Python)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.LocateLasPointsByProximity_3d('lidar.lasd', 'powerlines.shp', 
                                    search_radius="10 Feet", 
                                    count_field="Near_Pts",
                                    out_features="located_pts.shp")
Exemple 2 d'utilisation de l'outil LocateLasPointsByProximity (script autonome)

L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.

'''****************************************************************************
Name: Classify Noise Points
Description: Updates classification of version 1.0 LAS files to conform to
             the standardized class codes introduced in the 1.1 specifications.
             The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback

# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
reclassList = arcpy.GetParameterAsText(3) #List of values '<oldCode> <newCode>'
calcStats = arcpy.GetParameter(4)

try:
    # Execute CreateLasDataset
    arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
    # Execute Locate Outliers
    outlier_pts = 'in_memory/outliers'
    arcpy.ddd.LocateOutliers(lasd, out_feature_class=outlier_pts, 
                            apply_hard_limit='Apply_Hard_Limit', 
                            absolute_z_min=-15, absolute_z_max=680, 
                            apply_comparison_filter='Apply_Comparison_Filter',
                            z_tolerance=0, slope_tolerance=150, 
                            exceed_tolerance_ratio=0.5, outlier_cap=3000)
    # Execute ChangeLasClassCodes
    arcpy.ddd.LocateLasPointsByProximity(lasd, in_features=outlier_pts, 
                                         search_radius='0.5 Centimeters', 
                                         class_code=18)
    # Report messages
    arcpy.GetMessages(0)

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Informations de licence

  • Basic: Requiert 3D Analyst
  • Standard: Requiert 3D Analyst
  • Advanced: Requiert 3D Analyst

Rubriques connexes