LAS a multipunto (3D Analyst)
Resumen
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.
Uso
Los puntos LAS se pueden clasificar en varias categorías que incluyen suelo o terreno desnudo, parte superior de cubierta forestal y agua. Las diversas clases se definen mediante códigos numéricos de enteros. Lamentablemente, la especificación LAS 1.0 no tiene un esquema de clasificación predefinido, ni los archivos resumen los códigos de clase (si existen) utilizados por los puntos. Debe recibir esta información del proveedor de datos.
Si trabaja con la especificación LAS 1.1 o 1.2, consulte los esquemas de clasificación predefinidos por la Sociedad Americana de Fotogrametría y Teledetección (ASPRS) para obtener la categoría de datos deseada. La siguiente tabla incluye los códigos de clase LAS basados en la versión 1.2 de LAS definida por ASPRS.
Para importar puntos LAS predefinidos desde archivo o archivos LAS, puede especificarlos en el parámetro Códigos de clase de entrada.
Clases de punto LiDAR estándar de ASPRSValor de clasificación
Significado
0
Creado, no clasificado nunca
1
Sin clasificar
2
Suelo
3
Vegetación baja
4
Vegetación media
5
Vegetación alta
6
Edificio
7
Puntos bajos (ruido)
8
Puntos clave del modelo (puntos de masa)
9
Agua
10
Reservado para la definición de la ASPRS
11
Reservado para la definición de la ASPRS
12
Puntos de superposición
13-31
Reservado para la definición de la ASPRS
-
Las versiones de LAS compatibles son 1.0, 1.1 y 1.2.
-
Si no está interesado en importar puntos basados en la cantidad de devoluciones o si todas las devoluciones especificadas en el archivo o los archivos se establecen en 0 porque los puntos se han filtrado o clasificado, seleccione ANY_RETURN.
-
Cuando cargue diversos atributos LAS en una base de datos de Oracle, deberá asegurarse de que todas las palabras clave DBTUNE para el parámetro attribute_binary se establezcan para utilizar objetos binarios grandes (BLOBs), no LONGRAW. Esto se debe a que los atributos LAS se cargan como BLOBs y Oracle no admite varios BLOBs en las tablas LONGRAW. Consulte con el administrador de la base de datos de Oracle para obtener más ayuda.
Sintaxis
Parámetro | Explicación | Tipo de datos |
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 (Opcional) |
Numeric classification codes to use as a query filter. The default is no filter. | Long |
return (Opcional) |
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 (Opcional) |
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 (Opcional) |
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 (Opcional) |
The suffix of the files to import when a folder is specified on input. | String |
z_factor (Opcional) |
Specifies a factor by which to multiply the surface heights. Used to convert z units to x and y units. | Double |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función LAS a multipunto en el modo inmediato.
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)
La siguiente secuencia de comandos de Python muestra cómo utilizar la función LAS a multipunto en una secuencia de comandos independiente.
'''**************************************************************************** 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)