Resumen
Extrae archivos LAS o ZLAS que intersecan un polígono o extensión de recorte.
Ilustración
Uso
-
Cuando un dataset LAS se especifica como entrada, todos los puntos de datos en los archivos LAS a los que hace referencia se procesarán. También es posible seleccionar un subconjunto de datos LIDAR por los códigos de clasificación, indicadores de clasificación y valores de retoro aplicando los filtros de punto LAS que desee mediante una capa de dataset LAS. Los filtros se pueden definir mediante el cuadro de diálogo de propiedades de la capa en la herramienta Crear capa de dataset LAS.
Considere la posibilidad de utilizar esta herramienta para extraer un subconjunto de datos LIDAR capturados en los archivos LIDAR de origen. Por ejemplo, si solo necesita trabajar en un área definida por el límite de un polígono, puede extraer el archivo LAS utilizando el polígono como la entidad de límites.
Para volver a proyectar archivos LAS, especifique la referencia espacial que desee en la configuración del entorno de Sistema de coordenadas de salida.
Si la extensión de la extracción se define junto con un límite de extracción, la intersección entre ambos se utilizará para definir la cobertura de los archivos LAS extraídos.
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
ExtractLas_3d (in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {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 |
target_folder | Carpeta en la que se escribirán los archivos LAS. Cada archivo de salida tendrá la misma versión de archivo LAS y el mismo formato de registro de puntos que el archivo de entrada. | Folder |
extent (Opcional) | Especifica la extensión de los datos que se evaluarán con esta herramienta. | Extent |
boundary (Opcional) | Límite de polígono que define las ubicaciones en las que se extraerán los archivos LAS. | 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) | Determina si es preciso quitar los registros de longitud variable adicionales o si estos deben mantenerse en los archivos LAS.
| 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. Las estadísticas permiten que las opciones de simbología y filtrado de la capa del dataset LAS limiten la visualización de atributos LAS a valores que existen en los archivos LAS.
| Boolean |
out_las_dataset (Opcional) | Dataset LAS de salida. | LAS Dataset |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_folder | Carpeta en la que se escribirán los archivos LAS. |
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 (script 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())
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere 3D Analyst
- ArcGIS Desktop Standard: Requiere 3D Analyst
- ArcGIS Desktop Advanced: Requiere 3D Analyst