Dataset LAS para ráster (Conversión)
Resumen
Crea un ráster utilizando valores de elevación, intensidad o RGB almacenados en los archivos lidar (*.las) a los que hace referencia el dataset LAS.
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.
La capa de dataset de LAS se pueden utilizar para filtrar los puntos LAS por código de clase o valores de devolución. La capa se puede crear utilizando la herramienta Crear capa de dataset LAS o bien, cargando el dataset LAS en ArcMap o ArcScene y especificando los códigos de clase y valores de devolución deseados mediante el cuadro de diálogo de propiedades de capa.
-
Al exportar un ráster grande, considere especificar el Tipo de datos de salida como un entero para ahorrar espacio del disco si los requisitos de precisión de sus valores z son tales que se pueden representar con datos enteros.
La inclusión de un límite del área de estudio como una restricción de recorte en la definición de la entrada dataset LAS es muy recomendable. Una razón es para evitar que se ocurra interpolación fuera de la extensión de datos reales de la topografía. En segundo lugar, puede haber una grave penalización de rendimiento al utilizar las opciones de vecinos naturales si el área de datos no está definida correctamente.
Nota:Cuando se utiliza solo BINNING (colocación en bin), se respetan las restricciones de recorte, borrado y reemplazo. Las líneas de corte y los puntos de anclaje no. La opción de triangulación respeta todos los tipos de restricciones, pero tarda más tiempo en ejecutarse.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_las_dataset |
El dataset de LAS de entrada. | LAS Dataset Layer |
out_raster |
Ubicación y nombre del ráster de salida. Al almacenar un dataset ráster en una geodatabase o en una carpeta como una cuadrícula de Esri, no se debe adicionar extensión de archivo al nombre del dataset ráster. Cuando se almacena el ráster en una carpeta, se puede proporcionar una extensión de archivo para definir el formato del ráster:
Si el ráster se almacena como un archivo TIFF o en una geodatabase, su tipo de compresión de ráster y la calidad se pueden especificar utilizando la configuración del entorno de geoprocesamiento. | Raster Dataset |
value_field (Opcional) |
Especifica la información lidar que se utilizará para generar la salida del ráster.
| String |
interpolation_type "BINNING {cell_assignment_type} {void_fill_method}" or "TRIANGULATION {interpolation_method} {point_thinning_type} {point_selection_method} {resolution}" (Opcional) |
El método de interpolación que se usa para producir el ráster. BINNING: Los valores de las celdas se obtienen utilizando los puntos que caen dentro de la extensión de la celda, excepto las celdas que no contienen puntos en su extensión. Las siguientes opciones están disponibles para esta técnica:
TRIANGULACIÓN: se obtienen los valores de las celdas interpolando las mediciones desde una representación de triángulos del dataset LAS. Las siguientes opciones están disponibles para esta técnica:
| String |
data_type (Opcional) |
El tipo de datos del ráster de salida se puede definir mediante las siguientes palabras clave:
| String |
sampling_type (Opcional) |
Especifica el método utilizado para interpretar el Valor de muestreo para definir la resolución del ráster de salida.
| String |
sampling_value (Opcional) |
Especifica el valor utilizado junto con el Tipo de muestreo para definir la resolución del ráster de salida. | Double |
z_factor (Opcional) |
El factor por el que se multiplicarán los valores de elevación. Esto se suele usar para convertir unidades lineales Z que coinciden con las de las unidades lineales XY. El valor predeterminado es 1, que no altera los valores de elevación. | Double |
Ejemplo de código
El siguiente ejemplo muestra cómo usar de esta herramienta en la ventana Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.LasDatasetToRaster_3d('baltimore.lasd', 'baltimore.tif', 'INTENSITY',
'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
'CELLSIZE', 10, 3.28)
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python:
'''*********************************************************************
Name: Export Elevation Raster from Ground LAS Measurements
Description: This script demonstrates how to export
ground measurements from LAS files to a raster using a
LAS dataset. This sample is designed to be used as a script
tool.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
surfCons = arcpy.GetParameterAsText(2)
classCode = arcpy.GetParameterAsText(3)
returnValue = arcpy.GetParameterAsText(4)
spatialRef = arcpy.GetParameterAsText(5)
lasD = arcpy.GetParameterAsText(6)
outRaster = arcpy.GetParameterAsText(7)
cellSize = arcpy.GetParameter(8)
zFactor = arcpy.GetParameter(9)
if arcpy.ProductInfo == 'ArcView':
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasD, recursion, surfCons, sr)
# Execute MakeLasDatasetLayer
lasLyr = arcpy.CreateUniqueName('Baltimore')
arcpy.management.MakeLasDatasetLayer(lasD, lasLyr, classCode, returnValue)
# Execute LasDatasetToRaster
arcpy.conversion.LasDatasetToRaster(lasLyr, outRaster, 'ELEVATION',
'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
'CELLSIZE', cellSize, zFactor)
arcpy.GetMessages()
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
finally:
arcpy.management.Delete(lasLyr)