LAS vers multipoints (3D Analyst)
Récapitulatif
Crée des entités multi-points à l'aide d'un ou plusieurs fichiers LIDAR.
Illustration
Utilisation
-
Les versions de fichier LAS 1.0, 1.1, 1.2 et 1.3 sont prises en charge.
Vous pouvez classer les points lidar en plusieurs catégories qui décrivent la matière détectée par la valeur lidar renvoyée : sol, bâtiment ou eau. L'association ASPRS (American Society for Photogrammetry and Remote Sensing) a défini les codes de classes suivants pour les versions de fichiers LAS 1.1, 1.2 et 1.3 :
Valeur de classification
Type de classification
0
Jamais classé
1
Non attribué
2
Sol
3
Végétation basse
4
Végétation moyenne
5
Végétation haute
6
Bâtiment
7
Bruit
8
Clé de modèle
9
Eau
10
Réservé à la définition ASPRS
11
Réservé à la définition ASPRS
12
Superposition
13–31
Réservé à la définition ASPRS
Remarque :Alors que les spécifications LAS 1.0 proposent des codes de classes compris entre 0 et 255, elles ne présentent pas de jeu de classification standard. Les codes de classes utilisés dans les fichiers 1.0 sont habituellement définis par le fournisseur de données et communiquées via des informations auxiliaires.
-
Si vous ne souhaitez pas importer de points basés sur leur valeur de renvoi ou si tous les renvois spécifiés dans les fichiers sont définis sur 0 car les points ont été filtrés ou classés, sélectionnez ANY_RETURNS.
-
Lors du chargement de plusieurs attributs LAS dans une base de données Oracle, vous devez vous assurer que tous les mots-clés DBTUNE pour le paramètre attribute_binary sont définis pour utiliser de grands objets binaires (BLOB), et non LONGRAW. Les attributs LAS sont chargés en tant que BLOB, et Oracle ne prend pas en charge plusieurs BLOB dans les tables LONGRAW. Si vous avez besoin d'aide, consultez votre administrateur de base de données Oracle.
Syntaxe
Paramètre | Explication | Type de données |
input [input,...] |
Un ou plusieurs fichiers ou dossiers contenant des données au format LAS version 1.0, 1.1 ou 1.2. LAS est le format standard pour les données lidar. | Folder or File |
out_feature_class |
Classe d'entités en sortie. | Feature Class |
average_point_spacing |
Distance 2D moyenne entre les points dans les fichiers en entrée. Vous pouvez utiliser une approximation. Si des zones ont été échantillonnées à différentes densités, spécifiez l'espacement le plus petit. La valeur doit être entrée dans les unités de projection du système de coordonnées en sortie. | Double |
class_code [class_code,...] (Facultatif) |
Codes de classification à utiliser en tant que filtre de requête pour les points de données LAS. Les valeurs correctes sont comprises entre 1 et 32. Aucun filtre n'est appliqué par défaut. | Long |
return [return,...] (Facultatif) |
Valeurs de renvoi utilisées comme filtre de requête. Les valeurs de renvoi valides sont 1-5, LAST_RETURNS et ANY_RETURNS. La valeur par défaut est ANY_RETURNS. | String |
attribute [[keyword, name],...] (Facultatif) |
Un ou plusieurs attributs LAS à charger et à stocker et, si vous le souhaitez, noms de champs à utiliser. Par défaut, aucune valeur n'est définie. Les mots-clés d'attribut pris en charge sont INTENSITY, RETURN_NUMBER, NUMBER_OF_RETURNS, SCAN_DIRECTION_FLAG, EDGE_OF_FLIGHTLINE, CLASSIFICATION, SCAN_ANGLE_RANK, FILE_MARKER, USER_BIT_FIELD et GPS_TIME. | Value Table |
input_coordinate_system (Facultatif) |
Système de coordonnées du fichier LAS en entrée. Il est détecté automatiquement à partir du fichier LAS. Si, pour une raison ou une autre, il n'est pas défini dans le fichier mais que vous le connaissez, spécifiez-le ici. | Coordinate System |
file_suffix (Facultatif) |
Suffixe des fichiers à importer à partir d'un dossier en entrée. Ce paramètre est requis lorsqu'un dossier est spécifié en entrée. | String |
z_factor (Facultatif) |
Facteur par lequel les valeurs d'altitude sont multipliées. Il est généralement utilisé pour convertir les unités linéaires Z qui correspondent à celles des unités linéaires XY. La valeur par défaut est 1, qui laisse les valeurs d'altitude inchangées. | Double |
folder_recursion (Facultatif) |
Passe en revue les sous-dossiers lorsqu'un dossier en entrée contenant des données est sélectionné dans un répertoire de sous-dossiers. La classe d'entités en sortie est générée avec une ligne pour chaque fichier rencontré dans la structure de répertoires.
| Boolean |
Exemple de code
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.LASToMultipoint_3d("001.las", "Test.gdb/feature_dataset/sample_1", 1.5,
"2", "ANY_RETURNS", "INTENSITY", "Coordinate Systems"\
"/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 "\
"UTM Zone 17N.prj", "las", 1)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''****************************************************************************
Name: Define Data Boundary of LAS File
Description: This script demonstrates how to delineate data boundaries of
LAS files with irregularly clustered points. It is intended for
use as a script tool with one input LAS file.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set local variables
inLas = arcpy.GetParameterAsText(0) #input LAS file
ptSpacing = arcpy.GetParameterAsText(1) # LAS point spacing
classCode = arcpy.GetParameterAsText(2) # List of integers
returnValue = arcpy.GetParameterAsText(3) # List of strings
outTin = arcpy.GetParameterAsText(4) # TIN created to delineate data area
outBoundary = arcpy.GetParameterAsText(5) # Polygon boundary file
try:
arcpy.CheckOutExtension("3D")
# Execute LASToMultipoint
arcpy.AddMessage("Creating multipoint features from LAS...")
lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code,
"ANY_RETURNS", "", sr, inFormat, zfactor)
# Execute CreateTin
arcpy.AddMessage("Creating TIN dataset...")
arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
.format(lasMP), "Delaunay")
# Execute CopyTin
arcpy.AddMessage("Copying TIN to delineate data boundary...")
arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
# Execute DelineateTinDataArea
arcpy.AddMessage("Delineating TIN boundary...")
maxEdge = ptSpacing * 4
arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
# Execute TinDomain
arcpy.AddMessage("Exporting data area to polygon boundary...")
arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
arcpy.AddMessage("Finished")
arcpy.CheckInExtension("3D")
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)