Resumen
Reasigna los códigos y marcadores de clasificación de archivos LAS.
Uso
Todos los archivos LAS a los que hace referencia el dataset LAS serán evaluados por esta herramienta, pero solamente se modificarán los archivos que contienen los códigos de clase proporcionados.
Considere el uso de esta herramienta para actualizar la clasificación de puntos de datos en los archivos LAS generados antes de la introducción de los códigos de clase estandarizados en las especificaciones de LAS 1,1.
El formato LAS admite la clasificación de cada punto según las especificaciones definidas por la American Society for Photogrammetry and Remote Sensing (ASPRS, por sus siglas en inglés o Sociedad americana de fotogrametría y teledetección). La plataforma ArcGIS aplica el esquema de clasificación especificado para la versión 1.4 de los archivos LAS:
Valor de clasificación Tipo de clasificación 0
Nunca clasificado
1
No asignado
2
Suelo
3
Vegetación baja
4
Vegetación media
5
Vegetación alta
6
Edificio
7
Ruido bajo
8
Clave de modelo/Reservada
9
Water
10
Ferrocarril
11
Superficie de la carretera
12
Superposición/Reservado
13
Protector de cable
14
Conductor de cable
15
Torre de transmisión
16
Cable - Conector
17
Plataforma del puente
18
Ruido alto
19 – 63
Reservado para la definición de la ASPRS (las versiones de LAS de la 1.1 a la 1.3 admiten hasta el código de clase 31)
32 – 255
Lo puede definir el usuario (solo se admite en la versión de LAS 1.0 y en algunas versiones de 1.4)
Sintaxis
arcpy.ddd.ChangeLasClassCodes(in_las_dataset, class_codes, {compute_stats}, {extent}, boundary, {process_entire_files})
Parámetro | Explicación | Tipo de datos |
in_las_dataset | El dataset LAS que se va a procesar. | LAS Dataset Layer |
class_codes [[current_class, new_class],...] | Especifique cada par de valores de código de clase nuevo y actual como una cadena de caracteres delimitada por espacios o una lista de números enteros. Por ejemplo, un código de clase actual de 5 se puede cambiar a 2 al especificar"5 2" ó [5, 2]. Es posible introducir varios códigos de clase como una cadena de caracteres delimitada por punto y coma ("5 2; 8 3; 1 4"), una lista de cadenas de caracteres (por ejemplo, [[5, 2], [8, 3], [1, 4]]). | Value Table |
compute_stats (Opcional) | Especifica si las estadísticas se deben calcular para los archivos LAS a los que hace referencia el dataset LAS. Calcular estadísticas proporciona un índice espacial para cada archivo LAS, lo que mejora el análisis y el rendimiento de la visualización. Las estadísticas también mejoran la experiencia de filtrado y simbología al limitar la visualización de los atributos LAS, como los códigos de clasificación y la información de retorno, a los valores presentes en el archivo LAS.
| Boolean |
extent (Opcional) | Especifica la extensión de los datos que se evaluarán con esta herramienta. | Extent |
boundary | Una entidad poligonal que define el área de interés que esta herramienta va a procesar. | Feature Layer |
process_entire_files (Opcional) | Especifica cómo se va a aplicar la extensión de procesamiento.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
derived_las_dataset | El dataset LAS actualizado. | Capa de dataset LAS |
Muestra de código
Ejemplo 1 de ChangeLasClassCodes (ventana de Python)
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.ChangeLasClassCodes_3d('test.lasd', [[5, 2], [3, 1], [4, 6]],
'COMPUTE_STATS')
Ejemplo 2 de ChangeLasClassCodes (script independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''****************************************************************************
Name: Update LAS 1.0 Classification to ASPRS 1.1 Specs
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:
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ChangeLasClassCodes(lasd, reclassList, calcStats)
# Report messages
arcpy.GetMessages()
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)
Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst