Resumen
Clasifica los puntos LAS de escaneados superpuestos procedentes de levantamientos topográficos LIDAR aéreos.
Ilustración
Uso
Es posible que la presencia de puntos superpuestos sin clasificar produzca resultados no deseados en operaciones que adoptan una distribución de puntos regular, como la herramienta Clasificar edificio de LAS. También pueden dar lugar a un margen de error no deseado en la producción de datos derivados si las superposiciones provienen de ángulos de escaneado extremos. La clasificación de puntos superpuestos ofrece la opción de filtrarlos con el fin de lograr una distribución de puntos más uniforme con resultados de mayor calidad.
El atributo de Id. de origen de punto de un punto LAS proporciona información acerca de la línea de vuelo desde la que se recopiló. Esta herramienta procesa los datos LAS de las teselas determinando si existen varios Id. de origen de punto y, a continuación, identificando como superposición el Id. con el ángulo de escaneo de mayor magnitud. Si se encuentran varios puntos con el mismo Id. de origen de punto en el área que se está procesando, se clasificarán como superposición todos los puntos que compartan el Id. de origen de punto del punto que tenga el ángulo de escaneo de mayor magnitud. Por este motivo, el tamaño de la muestra utilizada para evaluar los puntos LAS debería ser, aproximadamente, entre el doble y el triple del espaciado de puntos nominal de los datos LAS. Se deben evitar los tamaños de tesela mayores, ya que aumenta el riesgo de clasificar erróneamente los puntos con valores de ángulo de escaneo menores. Puede que las muestras de menor tamaño no capturen los puntos suficientes como para identificar y clasificar debidamente los puntos de superposición.
Los puntos de superposición de los archivos LAS de la versión 1.4 y formatos de registro de puntos de entre 6 y 8 reciben el marcador de clasificación de superposición, si bien conservan el valor de su código de clase original. Los puntos de superposición de todos los demás archivos LAS admitidos reciben un valor de código de clase de 12. Si el valor de código de clase de 12 ya se está utilizando en los archivos LAS de entrada para representar otras cosas distintas de escaneados de superposición, plantéese utilizar la herramienta Cambiar códigos de clase de LAS para reasignar estos puntos a otro valor antes de ejecutar esta herramienta.
-
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
ClassifyLasOverlap_3d (in_las_dataset, sample_distance, {extent}, {process_entire_files}, {compute_stats})
Parámetro | Explicación | Tipo de datos |
in_las_dataset | El dataset LAS que se va a procesar. | LAS Dataset Layer |
sample_distance | La distancia de cualquier dimensión del área cuadrada utilizada para evaluar los datos LAS. Este valor se puede expresar como un número y un valor de unidad lineal, por ejemplo, 3 metros. Si no se especifican las unidades lineales o se introducen como Desconocido, la unidad se definirá mediante la referencia espacial del archivo LAS de entrada. | Linear Unit |
extent (Opcional) | Especifica la extensión de los datos que se evaluarán con esta herramienta. | Extent |
process_entire_files (Opcional) | Especifica cómo se va a aplicar la extensión de procesamiento.
| Boolean |
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 |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_las_dataset | El dataset LAS que se va a modificar. | Capa de dataset LAS |
Muestra de código
Ejemplo 1 de ClassifyLasOverlap (ventana de Python)
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ClassifyLasOverlap('Denver_2.lasd', '1 Meter')
Ejemplo 2 de ClassifyLasOverlap (script independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''****************************************************************************
Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)
try:
desc = arcpy.Describe(lasd)
if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
unit = 'Feet'
else:
unit = 'Meters'
ptSpacing = desc.pointSpacing * 2.25
sampling = '{0} {1}'.format(ptSpacing, unit)
# Classify overlap points
arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
# Classify ground points
arcpy.ddd.ClassifyLasGround(lasd)
# Filter for ground points
arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
# Generate DEM
arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION',
'BINNING NEAREST NATURAL_NEIGHBOR',
sampling_type='CELLSIZE',
sampling_value=desc.pointSpacing)
# Classify noise points
arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY',
withheld='WITHHELD', ground=dem,
low_z='-2 feet', high_z='300 feet',
max_neighbors=ptSpacing, step_width=ptSpacing,
step_height='10 feet')
# Classify buildings
arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
#Classify vegetation
arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55],
compute_stats='COMPUTE_STATS')
# Filter LAS dataset for building points
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
# Export raster from lidar using only building points
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
# Convert building raster to polygon
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
# Regularize building footprints
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere 3D Analyst
- ArcGIS Desktop Standard: Requiere 3D Analyst
- ArcGIS Desktop Advanced: Requiere 3D Analyst