Extraer LAS (3D Analyst)

Resumen

Filtra, recorta y reproyecta la colección de datos LIDAR referenciados por un dataset LAS.

Ilustración

Extraer LAS

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ámetroExplicaciónTipo 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.

  • MAXOF: se utilizará la extensión máxima de todas las entradas.
  • MINOF: se utilizará el área mínima en común de todas las entradas.
  • DISPLAY: la extensión es igual a la visualización actual.
  • Nombre de capa: se utilizará la extensión de la capa especificada.
  • Objeto de Extent: se utilizará la extensión del objeto especificado.
  • Cadena de coordenadas delimitada por espacios: se utilizará la extensión de la cadena especificada. Las coordenadas se expresan como x-min, y-min, x-max, y-max.
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.

  • PROCESS_EXTENTSolo se procesarán los puntos LAS que intersequen el área de interés. Esta es la opción predeterminada.
  • PROCESS_ENTIRE_FILESSi alguna parte del archivo LAS interseca el área de interés, se procesarán todos los puntos de ese archivo LAS, incluidos los que queden fuera del área de interés.
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.

  • MAINTAIN_VLRCualquier dato almacenado en los registros de longitud variable de los archivos LAS procesados se mantendrá en los archivos LAS extraídos. Esta es la opción predeterminada.
  • REMOVE_VLRLos registros de longitud variable adicionales se quitarán de los archivos LAS.
Boolean
rearrange_points
(Opcional)

Determina si es preciso reorganizar los puntos en los archivos LAS.

  • MAINTAIN_POINTSEl orden de los puntos de los archivos LAS permanecerá como está.
  • REARRANGE_POINTSLos puntos de los archivos LAS se reorganizarán. Esta es la opción predeterminada.
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.

  • COMPUTE_STATSSe calcularán las estadísticas.
  • NO_COMPUTE_STATSNo se calcularán las estadísticas. Esta es la opción predeterminada.
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.

  • SAME_AS_INPUTLa compresión será la misma que la de entrada. Esta es la opción predeterminada.
  • NO_COMPRESSIONLa salida tendrá el formato de LAS estándar (*.las).
  • ZLASLos archivos LAS de salida se comprimirán con el formato de zLAS.
String

Salida derivada

NombreExplicaciónTipo de datos
out_folder

La carpeta en la que se escribirán los archivos LAS.

Carpeta

Muestra de código

Ejemplo 1 de ExtractLas (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

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')
Ejemplo 2 de ExtractLas (secuencia de comandos independiente)

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())

Información de licenciamiento

  • Basic: Requiere 3D Analyst
  • Standard: Requiere 3D Analyst
  • Advanced: Requiere 3D Analyst

Temas relacionados