LAS-Dataset in Raster (Konvertierung)
Zusammenfassung
Erstellt ein Raster mithilfe von Höhen-, Intensitäts- oder RGB-Werten, die in den Lidar-Dateien (*.las) des LAS-Datasets gespeichert sind.
Bild
Verwendung
Wenn ein LAS-Dataset als Eingabe festgelegt wird, werden alle Datenpunkte in den LAS-Dateien, auf die es verweist, verarbeitet.
Mit dem LAS-Dataset-Layer können LAS-Punkte nach Klassencode oder Rückgabewerten gefiltert werden. Der Layer kann mit dem Werkzeug LAS-Dataset-Layer erstellen erzeugt werden, oder indem Sie das LAS-Dataset in ArcMap oder ArcScene laden und die gewünschten Klassencodes und Rückgabewerte im Dialogfeld "Layer-Eigenschaften" angeben.
-
Beim Exportieren eines umfangreichen Rasters sollten Sie in Erwägung ziehen, den Ausgabedatentyp als Ganzzahl anzugeben, um Festplattenspeicherplatz zu sparen, wenn die Z-Werte aufgrund niedriger Genauigkeitsanforderungen auch durch Ganzzahldaten dargestellt werden können.
Es wird dringend empfohlen, eine Grenze für ein Untersuchungsgebiet als Ausschneideeinschränkung in die Definition des Eingabe-LAS-Datasets aufzunehmen. Ein Grund dafür ist, die Interpolation außerhalb der eigentlichen Datenausdehnung der Vermessung zu verhindern. Außerdem kann es zu erheblichen Performance-Einbußen kommen, wenn Sie natürliche Nachbarn verwenden und der Datenbereich nicht korrekt definiert ist.
Hinweis:Bei Verwendung von BINNING werden nur Ausschneide-, Radieren- und Ersetzeneinschränkungen berücksichtigt, Bruchkanten und Ankerpunkte dagegen nicht. Die Triangulationsoption berücksichtigt alle Typen von Einschränkungen, braucht aber mehr Zeit zur Ausführung.
Syntax
Parameter | Erläuterung | Datentyp |
in_las_dataset |
Das Eingabe-LAS-Dataset. | LAS Dataset Layer |
out_raster |
Der Speicherort und Name des Ausgabe-Rasters. Bei der Speicherung eines Raster-Datasets in einer Geodatabase oder in einem Ordner wie z. B. einem Esri Grid darf dem Namen des Raster-Datasets keine Dateierweiterung hinzugefügt werden. Eine Dateierweiterung kann angegeben werden, um das Format des Rasters beim Speichern in einem Ordner zu definieren:
Beim Speichern des Rasters in einer TIFF-Datei oder einer Geodatabase können Raster-Komprimierungstyp und -qualität in den Einstellungen für die Geoverarbeitungsumgebung angegeben werden. | Raster Dataset |
value_field (optional) |
Gibt die LIDAR-Informationen an, die zum Erzeugen der Raster-Ausgabe verwendet werden.
| String |
interpolation_type "BINNING {cell_assignment_type} {void_fill_method}" or "TRIANGULATION {interpolation_method} {point_thinning_type} {point_selection_method} {resolution}" (optional) |
Die Interpolationsmethode, die zum Erstellen des Rasters verwendet wird. BINNING – Zellenwerte werden anhand der Punkte abgeleitet, die in den Ausdehnungen der Zelle liegen, mit Ausnahme von Zellen, die keine Punkte in ihrer Ausdehnung enthalten. Die folgenden Optionen sind für diese Methode verfügbar:
TRIANGULATION – Zellenwerte werden durch Interpolation der Messwerte aus einer triangulierten Darstellung des LAS-Datasets abgeleitet. Die folgenden Optionen sind für diese Methode verfügbar:
| String |
data_type (optional) |
Der Datentyp des Ausgabe-Rasters kann durch die folgenden Schlüsselwörter definiert werden:
| String |
sampling_type (optional) |
Gibt die Methode zum Interpretieren des Abtastwertes an, um die Auflösung des Ausgabe-Rasters zu definieren.
| String |
sampling_value (optional) |
Gibt den Wert an, der zusammen mit dem Abtastwert zum Definieren der Auflösung des Ausgabe-Rasters verwendet wird. | Double |
z_factor (optional) |
Der Faktor, mit dem die Höhenwerte multipliziert werden. Dieser wird in der Regel verwendet, um lineare Z-Einheiten zu konvertieren, sodass sie den linearen XY-Einheiten entsprechen. Der Standardwert ist 1, wodurch die Höhenwerte unverändert bleiben. | Double |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht:
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)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''*********************************************************************
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)