Resumen
Filtra, recorta y reproyecta la colección de datos LIDAR referenciados por un dataset LAS.
Ilustración
Uso
-
Es posible hacer que la capa del dataset LAS limite los puntos LAS a mostrar y procesar seleccionando cualquier combinación de códigos de clasificación, marcadores de clasificación y valores de retorno en la configuración del filtro de la capa. Los filtros se pueden definir en el cuadro de diálogo Propiedades de capa o con la herramienta Crear capa de dataset LAS.
Para reproyectar archivos LAS en otro sistema de coordenadas diferente, especifique la referencia espacial en la configuración del entorno Sistema de coordenadas de salida. Los archivos LAS deben tener una referencia espacial definida para los archivos a reproyectar. Si la referencia espacial contiene un sistema de coordenadas verticales, los archivos LAS también pueden reproyectarse a otro sistema de referencia de altura si las cuadrículas de transformación de datum verticales están instaladas y hay una transformación disponible desde la referencia de origen y el sistema de coordenadas de destino. La referencia espacial de un archivo LAS se puede definir en su encabezado o mediante un archivo PRJ auxiliar que define la referencia espacial mediante la convención de texto conocido (WKT). El archivo PRJ debe residir en la misma ubicación y tener el mismo nombre que el archivo LAS. Si está presente, el archivo PRJ invalida la información de referencia espacial del encabezado del archivo LAS. Se pueden crear archivos PRJ para los archivos LAS con las referencias espaciales ausentes o mal definidas mediante la herramienta Definir proyección para un archivo LAS o ZLAS individual o la herramienta Crear dataset LAS con la opción PRJ habilitada.
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.
Al recortar archivos LAS, si una extensión de extracción está definida junto con un límite de extracción, la intersección de ambos definirá la cobertura de los archivos LAS extraídos.
Los archivos LAS de salida coincidirán con la versión LAS y el formato de registro de puntos de la entrada.
Sintaxis
arcpy.3d.ExtractLas(in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset}, {compression})
Parámetro | Explicación | Tipo de datos |
in_las_dataset | El dataset LAS que se va a procesar. | LAS Dataset Layer |
target_folder | La carpeta existente en la que se escribirán los archivos LAS de salida. | Folder |
extent (Opcional) | Especifica la extensión de los datos que se evaluarán con esta herramienta.
| Extent |
boundary (Opcional) | Un límite de polígono que define el área de los archivos LAS que se recortará. | Feature Layer |
process_entire_files (Opcional) | Especifica cómo se va a aplicar la extensión de procesamiento.
| Boolean |
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 |
remove_vlr (Opcional) | Cada archivo LAS puede contener potencialmente un conjunto de registros de longitud variable (VLR) agregado por el software que lo produjo. El significado de estos registros normalmente solo lo conoce el software original. A menos que los datos LAS de salida sean procesados por una aplicación que entienda esta información, la retención de los VLR puede no proporcionar ninguna funcionalidad de valor añadido. La eliminación de los VLR puede ahorrar un espacio significativo en el disco dependiendo de su tamaño total y de la cantidad de archivos que los contienen.
| Boolean |
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 |
compression (Opcional) | Especifica si el archivo LAS de salida tendrá un formato comprimido o el formato LAS estándar.
| String |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_folder | La carpeta en la que se escribirán los archivos LAS. | Carpeta |
Muestra de código
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
import arcpy
from arcpy import env
env.workspace = 'C:/data'
arcpy.ddd.ExtractLas('test.lasd', 'c:/lidar/subset', boundary='study_area.shp',
name_suffix='subset', remove_vlr=True,
rearrange_points='REARRANGE_POINTS',
out_las_dataset='extracted_lidar.lasd')
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''****************************************************************************
Name: Split Large LAS File
Description: Divides a large LAS file whose point distribution covers the full
XY extent of the data into smaller files to optimize performance
when reading lidar data.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las_file = arcpy.GetParameterAsText(0)
tile_width = arcpy.GetParameter(1) # double in LAS file's XY linear unit
tile_height = arcpy.GetParameter(2) # double in LAS file's XY linear unit
out_folder = arcpy.GetParameterAsText(3) # folder for LAS files
out_name_suffix = arcpy.GetParameterAsText(4) # basename for output files
out_lasd = arcpy.GetParameterAsText(5) # output LAS dataset
try:
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las_file, temp_lasd,
compute_stats='COMPUTE_STATS')
desc = arcpy.Describe(temp_lasd)
total_columns = int(math.ceil(desc.extent.width/tile_width))
total_rows = int(math.ceil(desc.extent.height/tile_height))
digits = int(math.log10(max(cols, rows))) + 1
for row in range(1, total_rows+1):
yMin = desc.extent.YMin + tile_height*(row-1)
yMax = desc.extent.YMin + tile_height*(row)
for col in range (1, total_columns+1):
xMin = desc.extent.XMin + tile_width*(col-1)
xMax = desc.extent.XMax + tile_width*(col)
name_suffix = '_{0}_{1}x{2}'.format(out_name_suffix,
str(row).zfill(digits),
str(col).zfill(digits))
arcpy.ddd.ExtractLas(temp_lasd, out_folder,
arcpy.Extent(xMin, yMin, xMax, yMax),
name_suffix=name_suffix,
rearrange_points='REARRANGE_POINTS',
compute_stats='COMPUTE_STATS')
arcpy.env.workspace = out_folder
arcpy.management.CreateLasDataset(arcpy.ListFiles('*{0}*.las'.format(out_name_suffix)),
out_lasd, compute_stats='COMPUTE_STATS',
relative_paths='RELATIVE_PATHS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst