Cambiar los códigos de clase LAS (3D Analyst)
Resumen
Modifica los valores del código de clase de los archivos LAS a los que hace referencia un dataset 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.
Los puntos LAS se pueden clasificar en varias categorías que describen el material que encuentra el retorno LIDAR, como terreno, construcción o agua. La Sociedad Americana de Fotogrametría y Detección Remota (ASPRS) define los siguientes códigos de clase para las versiones del archivo LAS 1.1, 1.2 y 1.3:
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
8
Clave de modelo
9
Agua
10
Reservado para la definición de la ASPRS
11
Reservado para la definición de la ASPRS
12
Superponer
13–31
Reservado para la definición de la ASPRS
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_las_dataset |
El dataset de LAS de entrada. | 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]. Múltiples códigos de clase se pueden ingresar 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. La existencia de las estadísticas permite las opciones de simbología y filtrado de la capa del dataset LAS para mostrar solo los valores de atributos LAS que existen en los archivos LAS.
| Boolean |
Ejemplo de código
El siguiente ejemplo muestra cómo usar de esta herramienta en la ventana 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')
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos 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)