Resumen
Clasifica como ruido los puntos LAS con características espaciales anómalas.
Uso
Por lo general, los puntos de ruido de los resultados de LAS tienen un impacto perjudicial en la visualización y el análisis de datos. Por ejemplo, es posible que los resultados de aves de altos vuelos y pulsos dispersos que se enfrentaron a cobertura de nubes, niebla contaminada, masas de agua y espejos muy reflectantes distorsionen el rango z de los puntos que rodean a esa ubicación. Identificar estos puntos como ruido permitirá filtrarlos de la visualización y eliminarlos de cualquier producción de datos derivados, como un perfil de orientación, pendiente o superficie de elevación.
El método Aislamiento procesará los datos LAS en bins de 3x3 teselados según la región definida en los parámetros Ancho de vecindad y Altura de vecindad. Si el número de puntos LAS en el volumen del análisis es menor que el parámetro Límite de puntos de vecindad, los puntos LAS se tratarán como ruido. El límite de puntos debe reflejar una aproximación razonable según la densidad de los puntos LIDAR y el número de puntos LAS que se pueden anticipar en el volumen del análisis.
Si algunas devoluciones de puntos LAS tienen valores z anormalmente altos o bajos para la región capturada por el conjunto de LIDAR, plantéese utilizar el método de Altura absoluta para definir el umbral de valores z de los datos a fin de identificar rápidamente los puntos de valores atípicos como ruido.
Si los puntos LAS tienen valores z anormalmente altos o bajos para regiones específicas, pero estos valores quedan dentro del rango de mediciones válidas capturadas en el conjunto de LIDAR, plantéese utilizar el método de Altura relativa para definir el umbral de los valores z de los datos según el desplazamiento desde el suelo. Para generar una superficie de suelo, filtre el dataset LAS para los puntos clasificados del suelo y utilice la herramienta De dataset LAS a ráster.
Solo se reclasificarán los puntos LAS con los valores de código de clase 0 o 1. Si los puntos no clasificados se representan mediante otro valor, plantéese utilizar la herramienta Cambiar códigos de clase de LAS para asignar a los puntos no clasificados un valor de 1. Cuando los puntos de ruido se clasifican y se utiliza el método de Aislamiento o Altura absoluta, a todos los puntos de ruido se les asignará un valor de código de clase de 7. Si se utiliza el método de Altura relativa, a los puntos de ruido que estén por debajo del umbral mínimo de altura se les asignará un valor de 7, que representa Ruido bajo, mientras que a los puntos de ruido que estén por encima del umbral máximo de altura se les asignará un valor de 18, que representa Ruido alto.
Si tiene dudas sobre la configuración a utilizar para determinar puntos de ruido, plantéese exportar los puntos LAS detectados como ruido como una entidad de punto, teniendo deshabilitada la opción para editar el código de clasificación LAS. Si los puntos de salida reflejan los resultados deseados, puede reclasificar los puntos LAS con esas entidades usando la herramienta Buscar puntos de LAS por proximidad.
El método de aislamiento es una operación de rendimiento intensivo que se ejecuta más rápido con tamaños de bin mayores. Plantéese especificar el tamaño de bin más grande posible en función de la naturaleza y distribución de los datos.
Sintaxis
arcpy.3d.ClassifyLasNoise(in_las_dataset, method, edit_las, withheld, {compute_stats}, ground, low_z, high_z, max_neighbors, step_width, step_height, {extent}, {process_entire_files}, {out_feature_class})
Parámetro | Explicación | Tipo de datos |
in_las_dataset | El dataset LAS que se va a procesar. | LAS Dataset Layer |
method | El método de detección de ruido que se utilizará.
| String |
edit_las | Indica si los puntos LAS identificados como ruido se reclasificarán.
| Boolean |
withheld | Indica si a los puntos de ruido se les asignará el indicador de clasificación retenida. Esta opción solo se aplica si el parámetro edit_las está establecido en CLASSIFY.
| Boolean |
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 |
ground | La superficie del suelo utilizada para definir la altura relativa. | Raster Layer |
low_z | La altura que define el umbral de valor z más bajo para identificar puntos de ruido. Cualquier punto que sea inferior al valor especificado se clasificará como ruido. Si se especifica una superficie de suelo, este umbral se basará en un desplazamiento respecto del suelo. Así, un valor de "-3 pies" significa que cualquier punto que esté 3 pies por debajo de la superficie del suelo se clasificará como ruido. | Linear Unit |
high_z | La altura que define el umbral del valor z más alto para identificar puntos de ruido. Cualquier punto que sea superior al valor especificado se clasificará como ruido. Si se indica una superficie de suelo, este umbral se basará en un desplazamiento respecto del suelo. Así, un valor de "250 metros" significa que cualquier punto que esté 250 metros por encima de la superficie del suelo se clasificará como ruido. | Linear Unit |
max_neighbors | El número máximo de puntos dentro del volumen del análisis que se puede calificar como ruido cuando se utiliza el método Aislamiento. Si el volumen del análisis contiene cualquier número de puntos LAS igual o inferior a este valor, estos puntos se clasificarán como ruido. | Long |
step_width | El tamaño de cada dimensión en el espacio XY del volumen del análisis cuando se utiliza el método Aislamiento. | Linear Unit |
step_height | La altura del volumen del análisis cuando se utiliza el método Aislamiento. | 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 |
out_feature_class (Opcional) | Las entidades de puntos de salida que representan los puntos LAS identificados como ruido. | Feature Class |
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
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ClassifyLasNoise('Denver_2.lasd', "ABSOLUTE_HEIGHT",
edit_las='CLASSIFY', withheld='WITHHELD',
high_z='450 Feet')
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())
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst