Resumen
Modifica los valores del código de clase de los archivos de 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.
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
Terreno
3
Vegetación baja
4
Vegetación media
5
Vegetación alta
6
Edificio
7
Ruido bajo
8
Clave de modelo/Reservada
9
Agua
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
ChangeLasClassCodes_3d (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. 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 |
extent (Opcional) | Especifique la extensión de los datos que se evaluará con esta herramienta. | Extent |
boundary | Entidad poligonal que define el área de interés que se va a procesar con esta herramienta. | Feature Layer |
process_entire_files (Opcional) | Especifique cómo se va a aplicar la extensión de procesamiento.
| Boolean |
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 (secuencia de comandos independiente)
En el siguiente ejemplo se 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)
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere 3D Analyst
- ArcGIS Desktop Standard: Requiere 3D Analyst
- ArcGIS Desktop Advanced: Requiere 3D Analyst