LAS-Dataset-Layer erstellen (Data Management)
Zusammenfassung
Erstellt einen LAS-Dataset-Layer, der Filter auf die LAS-Dateien anwenden und Oberflächeneinschränkungen, die von einem LAS-Dataset referenziert werden, aktivieren oder deaktivieren kann.
Verwendung
Dieses Werkzeug erstellt einen temporären Layer im Arbeitsspeicher, der mit dem Werkzeug In Layer-Datei speichern als Layer-Datei gespeichert werden kann.
Die LAS-Punkte lassen sich in verschiedenen Kategorien klassifizieren, die das von der LIDAR-Rückgabe gefundene Material beschreiben, z. B. Erde, Gebäude oder Wasser. Von der ASPRS (American Society for Photogrammetry and Remote Sensing; Amerikanische Gesellschaft für Photogrammetrie und Fernerkundung) wurden die folgenden Klassencodes für die LAS-Dateiversionen 1.1, 1.2 und 1.3 definiert:
Klassifizierungswert
Klassifizierungstyp
0
Nie klassifiziert
1
Nicht zugewiesen
2
Erde
3
Niedere Vegetation
4
Mittlere Vegetation
5
Hohe Vegetation
6
Gebäude
7
Rauschen
8
Modellschlüssel
9
Wasser
10
Reserviert für die ASPRS-Definition
11
Reserviert für die ASPRS-Definition
12
Überlappung
13–31
Reserviert für die ASPRS-Definition
Hinweis:Die LAS 1.0-Spezifikationen enthalten Klassencodes von 0 bis 255, jedoch kein standardisiertes Klassifizierungsschema. In 1.0-Dateien verwendete Klassencodes werden in der Regel vom Datenanbieter definiert und über Zusatzinformationen bereitgestellt.
Der Layer kann als Staging-Basis zum Erstellen von Eingaben in andere Geoverarbeitungswerkzeuge, die ein LAS-Dataset akzeptieren, verwendet werden. Wenn z. B. ein Raster oder ein TIN-Dataset aus LIDAR-Daten der ersten Reflexion von der nackten Erdoberfläche benötigt wird, können die Filteroptionen verwendet werden, um den zweiten Klassencode und den Wert der ersten Reflexion auszuwählen. Der resultierende LAS-Dataset-Layer kann dann im Werkzeug LAS-Dataset in Raster oder dem Werkzeug LAS-Dataset in TIN verwendet werden, um die gewünschte Ausgabe zu erstellen.
Syntax
Parameter | Erläuterung | Datentyp |
in_las_dataset |
Das Eingabe-LAS-Dataset. | LAS Dataset Layer |
out_layer |
Der Name des resultierenden LAS-Dataset-Layers. Mit Text gefolgt von einem Schrägstich oder einem umgekehrten Schrägstrich wird ein Gruppen-Layer bezeichnet. | Las Dataset Layer |
class_code [class_code,...] (optional) |
Die Klassifizierungscodes zur Verwendung als Abfragefilter für LAS-Datenpunkte. Gültige Werte liegen zwischen 1 und 32. Standardmäßig wird kein Filter angewendet. | Long |
return_values [return_values,...] (optional) | Gibt die zum Filtern der Datenpunkte verwendeten Rückgabewerte an. Wenn nichts angegeben wird, werden alle Rückgaben verwendet. Gültige Rückgabeoptionen sind eine beliebige Zahl zwischen 1 und 5 und eines der folgenden Schlüsselwörter:
| String |
no_flag (optional) | Gibt an, ob Datenpunkte, denen keine Klassifizierungs-Flags zugewiesen sind, für die Anzeige und Analyse aktiviert werden sollen.
| Boolean |
synthetic (optional) | Gibt an, ob als synthetisch gekennzeichnete Datenpunkte oder Punkte aus anderen Datenquellen als LIDAR für die Anzeige und Analyse aktiviert werden sollen.
| Boolean |
keypoint (optional) | Gibt an, ob Datenpunkte, die als Modellschlüsselpunkte gekennzeichnet sind, oder wesentliche Messungen, die nicht ausgedünnt werden dürfen, für die Anzeige und Analyse aktiviert werden sollen.
| Boolean |
withheld (optional) | Gibt an, ob Datenpunkte, die als zurückgehalten gekennzeichnet sind, was in der Regel auf unerwünschte Rauschmessungen hinweist, für die Anzeige und Analyse aktiviert werden sollen.
| Boolean |
surface_constraints [surface_constraints,...] (optional) |
Der Name der Oberflächeneinschränkungs-Features, die im Layer aktiviert werden. Alle Einschränkungen sind standardmäßig aktiviert. | String |
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.MakeLasDatasetLayer_management('Baltimore.lasd', 'Baltimore Layer',
2, 'LAST', 'INCLUDE_UNFLAGGED',
'EXCLUDE_SYNTHETIC', 'INCLUDE_KEYPOINT',
'EXCLUDE_WITHHELD')
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)