Resumen
Aplica colores y valores infrarrojos cercanos desde imágenes ortográficas hasta puntos LAS.
Ilustración
Uso
Mostrar puntos LAS con información de RGB puede proporcionar una visualización fotorrealista e inmersiva que aporta una experiencia de visualización única. La información visual de las imágenes reales superpuestas en puntos LAS puede ofrece un mayor detalle sobre las características discretas de la nube de puntos que pueden ser útiles al clasificar datos de forma interactiva, digitalizar nuevas entidades y establecer un punto de referencia al realizar mediciones de distancia en 3D.
Las mejores imágenes en las que se puede dar color a los puntos LAS se obtendrían al mismo tiempo que el levantamiento topográfico LIDAR, para que la coincidencia con las entidades capturadas sea la mejor. Si no dispone de ello, intente utilizar imágenes lo más cercanas posible a la fecha de escaneado, para así minimizar las diferencias por eventos tales como la construcción o por la variación estacional de plantas de hoja caduca.
Si las imágenes de origen son varias imágenes en teselas, plantéese cargar esas teselas en un dataset de mosaico para hacer referencia a ellas como un solo dataset y utilizarlo como entrada de imagen para dar color a los datos LAS. Más información sobre la creación de un dataset de mosaico.
Solamente la versión 1.4 del archivo LAS con formato de registro de puntos 8 admite el almacenamiento de valores infrarrojos cercanos para puntos LAS.
Cuando se define una extensión de procesamiento, todo el archivo LAS que interseca con la extensión de procesamiento se coloreará. Si solo se desea un subconjunto del archivo LAS de entrada, plantéese utilizar la herramienta Extraer LAS para recortar el subconjunto y utilice el archivo resultante como entrada para esta herramienta.
No es inusual que los registros de puntos LAS se almacenen en el archivo LAS en una secuencia binaria que no se corresponde con el clustering espacial de los puntos. Cuando se consultan los datos de tal distribución, puede ser que el acceso a los registros binarios que representan los puntos LAS sea menos eficiente. La reordenación de los puntos en el archivo LAS resultante optimizará los datos para su visualización y otras operaciones espaciales. Las estadísticas se calcularán automáticamente cuando se habilite la opción de reordenación. Si decide no reordenar los puntos LAS, puede elegir habilitar o deshabilitar el cálculo de estadísticas. El cálculo de estadísticas optimizará las consultas espaciales y ofrecerá un resumen de los códigos de clase y valores de retorno que hay en el archivo LAS. Sin embargo, también agregará tiempo al procesamiento de esta herramienta. Si los archivos LAS resultantes no se van a utilizar en ArcGIS, puede deshabilitar el cálculo de estadísticas para que la herramienta se ejecute más rápido.
Sintaxis
arcpy.ddd.ColorizeLas(in_las_dataset, in_image, bands, target_folder, {name_suffix}, {las_version}, {point_format}, {compression}, {rearrange_points}, {compute_stats}, {out_las_dataset})
Parámetro | Explicación | Tipo de datos |
in_las_dataset | El dataset LAS que se va a procesar. | LAS Dataset Layer |
in_image | Imagen que se utilizará para asignar colores a puntos LAS. | Mosaic Layer; Raster Layer |
bands [bands,...] | Bandas de la imagen de entrada que se asignarán a los canales de color asociados a los puntos LAS de salida. | Value Table |
target_folder | La carpeta existente en la que se escribirán los archivos LAS de salida. | Folder |
name_suffix (Opcional) | Texto que se incorporará al nombre de cada archivo LAS de salida. Cada archivo heredará su nombre base de su archivo de origen, seguido del sufijo especificado en este parámetro. | String |
las_version (Opcional) | La versión de LAS de los archivos de salida que se va a crear.
| String |
point_format (Opcional) | El formato del registro de puntos de los archivos LAS de salida.
| Long |
compression (Opcional) | Especifica si el archivo LAS de salida tendrá un formato comprimido o el formato LAS estándar.
| String |
rearrange_points (Opcional) | Determina si es preciso reorganizar los puntos en los archivos LAS.
| 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 |
out_las_dataset (Opcional) | El dataset LAS de salida que hace referencia a los archivos LAS recién creados. | LAS Dataset |
Salida derivada
Nombre | Explicación | Tipo de datos |
output_folder | La carpeta en la que se escribirán los archivos LAS de salida. | Carpeta |
Muestra de código
Ejemplo 1 de ColorizeLas (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.ColorizeLas('2014_lidar_survey.lasd', '2014_CIR.tif',
'RED Band_1; GREEN Band_2; BLUE Band_3',
'las/rgb', '_rgb', 1.3, 3, 'ZLAS',
'REARRANGE_POINTS')
Ejemplo 2 de ColorizeLas (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 de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst