LAS vers multipoints (3D Analyst)
Récapitulatif
This tool imports one or more files in LAS format, the industry standard for lidar data, into a new multipoint feature class. Supported LAS file format versions are 1.0, 1.1, and 1.2.
Utilisation
Les points LAS peuvent être classés en plusieurs catégories : terre ou sol nu(e), dessus de la canopée, eau, etc. Les différentes classes sont définies à l'aide de codes numériques (entiers). Malheureusement, la spécification LAS 1.0 ne fournit pas de schéma de classification prédéfini, pas plus que les fichiers ne recensent les éventuels codes de classe utilisés par les points. Vous devez vous procurer ces informations auprès du fournisseur des données.
Si vous utilisez la spécification LAS 1.1 ou 1.2, reportez-vous aux schémas de classification prédéfinis par l'ASPRS (American Society for Photogrammetry and Remote Sensing) pour connaître la catégorie de données souhaitée. Le tableau suivant répertorie les codes de classe LAS en fonction de la version LAS 1.2 définie par l'ASPRS.
Pour importer des points LAS prédéfinis à partir d'un ou de plusieurs fichiers LAS, vous pouvez les spécifier dans le paramètre Codes de classes en entrée.
Classes de point LIDAR standard de l'ASPRSValeur de classification
Signification
0
Créé, jamais classé
1
Non classé
2
Sol
3
Végétation basse
4
Végétation moyenne
5
Végétation haute
6
Bâtiment
7
Points bas (bruit)
8
Points clés de modèle (points cotés)
9
Eau
10
Réservé à la définition ASPRS
11
Réservé à la définition ASPRS
12
Points de superposition
13-31
Réservé à la définition ASPRS
-
Les versions 1.0, 1.1 et 1.2 du format LAS sont prises en charge.
-
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 |
One or more files or folders with data in the LAS version 1.0, 1.1, and 1.2 format. The LAS format is the industry standard for lidar data. | Folder; File |
out_feature_class |
The newly created multipoint feature class to which lidar points are added. | Feature Class |
average_point_spacing |
The average 2D distance between points in the input file or files. This can be an approximation. If areas have been sampled at different densities, specify the smaller spacing. The value needs to be provided in the projection units of the output coordinate system. | Double |
class_code (Facultatif) |
Numeric classification codes to use as a query filter. The default is no filter. | Long |
return (Facultatif) |
The return values used as a query filter. Valid return values are 1-5, LAST_RETURNS, and ANY_RETURNS. The default is ANY_RETURNS. | String |
attribute (Facultatif) |
One or more LAS attributes to load and store and optionally the field names to use. The default is none. Supported attribute keywords are INTENSITY, RETURN_NUMBER, NUMBER_OF_RETURNS, SCAN_DIRECTION_FLAG, EDGE_OF_FLIGHTLINE, CLASSIFICATION, SCAN_ANGLE_RANK, FILE_MARKER, USER_BIT_FIELD, and GPS_TIME. | String |
input_coordinate_system (Facultatif) |
The coordinate system of the input LAS file. This defaults to that specified in the LAS file. If for some reason it's not defined in the file but you know what it is, provide it here. | Coordinate system |
file_suffix (Facultatif) |
The suffix of the files to import when a folder is specified on input. | String |
z_factor (Facultatif) |
Specifies a factor by which to multiply the surface heights. Used to convert z units to x and y units. | Double |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction LAS vers multipoints en mode immédiat.
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)
Le script Python ci-dessous illustre l'utilisation de la fonction LAS vers multipoints dans un script 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)