Resumen
Extrae archivos LAS que se superponen a las entidades del clip o a la extensión.
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, debe especificar el Sistema de coordenadas de salida en la Configuración del entorno. Si los archivos LAS que se están procesando no tienen definida una referencia espacial, los archivos LAS extraídos heredarán la proyección especificada.
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.
El parámetro Reorganizar puntos, si está activado (rearrange_points = 'REARRANGE_POINTS' en Python), ordena los registros de puntos en clusters espaciales que se optimizan para leer los archivos. Esta optimización mejora considerablemente la visualización en toda la plataforma de ArcGIS. La reorganización de los puntos necesitará tiempo de procesamiento adicional para completarse. Dado que la reorganización del orden de los puntos para mejorar el acceso a los datos es una mejora fundamental de los datos, este parámetro está activado de forma predeterminada.
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) | Especifique la extensión de los datos que se evaluará 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) | Especifique 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. La existencia de las estadísticas permite las opciones de simbología y filtrado de la capa del dataset LAS para mostrar solo los valores de atributos LAS que existen en los archivos LAS.
| Boolean |
out_las_dataset (Opcional) | Dataset LAS de salida. | LAS Dataset |
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 una secuencia de comandos 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