LAS zu Multipoint (3D Analyst)
Zusammenfassung
This tool imports one or more files in LAS format, the industry standard for lidar data, into a new multipoint feature class. Supported LAS file format versions are 1.0, 1.1, and 1.2.
Verwendung
LAS-Punkte können in eine Reihe von Kategorien, u. a. unbebaute Erdoberfläche oder Boden, Baumkronen und Wasser, eingeteilt werden. Die verschiedenen Klassen werden durch numerische Ganzzahlcodes definiert. Leider weist die LAS 1.0-Spezifikation kein vordefiniertes Klassifizierungsschema auf, und die Dateien bieten keine Zusammenfassung der ggf. von den Punkten verwendeten Klassencodes. Diese Informationen erhalten Sie vom Datenanbieter.
Wenn Sie die Spezifikation von LAS 1.1 oder 1.2 verwenden, entnehmen Sie die gewünschte Datenkategorie den vordefinierten Klassifizierungsschemas der US-amerikanischen Gesellschaft für Photogrammetrie und Fernerkundung (ASPRS, American Society for Photogrammetry and Remote Sensing). In der folgenden Tabelle sind die von der ASPRS definierten LAS-Klassencodes basierend auf LAS Version 1.2 aufgeführt.
Um vordefinierte LAS-Punkte aus den LAS-Dateien zu importieren, können Sie sie im Parameter Eingabeklassencodes angeben.
Standardmäßige LIDAR-Punktklassen von ASPRSKlassifizierungswert
Bedeutung
0
Erstellt, nie klassifiziert
1
Nicht klassifiziert
2
Erde
3
Niedere Vegetation
4
Mittlere Vegetation
5
Hohe Vegetation
6
Gebäude
7
Niedrige Punkte (Rauschen)
8
Modellschlüsselpunkte (Massenpunkte)
9
Wasser
10
Reserviert für die ASPRS-Definition
11
Reserviert für die ASPRS-Definition
12
Überlappende Punkte
13-31
Reserviert für die ASPRS-Definition
-
Unterstützte LAS-Versionen sind 1.0, 1.1 und 1.2.
-
Wenn Sie keine Punkte basierend auf ihrer Rückgabenummer importieren möchten oder wenn alle in der Datei bzw. den Dateien festgelegten Rückgabewerte auf 0 festgelegt sind, weil die Punkte gefiltert oder klassifiziert wurden, wählen Sie ANY_RETURNS.
-
Wenn Sie mehrere LAS-Attribute in eine Oracle-Datenbank laden, müssen Sie sicherstellen, dass alle DBTUNE-Schlüsselwörter für den Parameter "attribute_binary" für die Verwendung von BLOBs (Binary Large OBjects), nicht LONGRAW, festgelegt sind. Dies ist darauf zurückzuführen, dass die LAS-Attribute als BLOBs geladen werden und Oracle nicht mehrere BLOBs in LONGRAW-Tabellen unterstützt. Hilfe erhalten Sie von Ihrem Oracle-Datenbank-Administrator.
Syntax
Parameter | Erläuterung | Datentyp |
input |
One or more files or folders with data in the LAS version 1.0, 1.1, and 1.2 format. The LAS format is the industry standard for lidar data. | Folder; File |
out_feature_class |
The newly created multipoint feature class to which lidar points are added. | Feature Class |
average_point_spacing |
The average 2D distance between points in the input file or files. This can be an approximation. If areas have been sampled at different densities, specify the smaller spacing. The value needs to be provided in the projection units of the output coordinate system. | Double |
class_code (optional) |
Numeric classification codes to use as a query filter. The default is no filter. | Long |
return (optional) |
The return values used as a query filter. Valid return values are 1-5, LAST_RETURNS, and ANY_RETURNS. The default is ANY_RETURNS. | String |
attribute (optional) |
One or more LAS attributes to load and store and optionally the field names to use. The default is none. Supported attribute keywords are INTENSITY, RETURN_NUMBER, NUMBER_OF_RETURNS, SCAN_DIRECTION_FLAG, EDGE_OF_FLIGHTLINE, CLASSIFICATION, SCAN_ANGLE_RANK, FILE_MARKER, USER_BIT_FIELD, and GPS_TIME. | String |
input_coordinate_system (optional) |
The coordinate system of the input LAS file. This defaults to that specified in the LAS file. If for some reason it's not defined in the file but you know what it is, provide it here. | Coordinate system |
file_suffix (optional) |
The suffix of the files to import when a folder is specified on input. | String |
z_factor (optional) |
Specifies a factor by which to multiply the surface heights. Used to convert z units to x and y units. | Double |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion LAS zu Multipoint im unmittelbaren Modus verwenden.
import arcpy from arcpy import env arcpy.CheckOutExtension("3D") env.workspace = "C:/data" arcpy.LASToMultipoint_3d("001.las", "Test.gdb/feature_dataset/sample_1", 1.5, "2", "ANY_RETURNS", "INTENSITY", "Coordinate Systems"\ "/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 "\ "UTM Zone 17N.prj", "las", 1)
Das folgende Python-Skript veranschaulicht, wie Sie die Funktion LAS zu Multipoint in einem eigenständigen Skript verwenden.
'''**************************************************************************** Name: Define Data Boundary of LAS File Description: This script demonstrates how to delineate data boundaries of LAS files with irregularly clustered points. It is intended for use as a script tool with one input LAS file. ****************************************************************************''' # Import system modules import arcpy import exceptions, sys, traceback # Set local variables inLas = arcpy.GetParameterAsText(0) #input LAS file ptSpacing = arcpy.GetParameterAsText(1) # LAS point spacing classCode = arcpy.GetParameterAsText(2) # List of integers returnValue = arcpy.GetParameterAsText(3) # List of strings outTin = arcpy.GetParameterAsText(4) # TIN created to delineate data area outBoundary = arcpy.GetParameterAsText(5) # Polygon boundary file try: arcpy.CheckOutExtension("3D") # Execute LASToMultipoint arcpy.AddMessage("Creating multipoint features from LAS...") lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory') arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code, "ANY_RETURNS", "", sr, inFormat, zfactor) # Execute CreateTin arcpy.AddMessage("Creating TIN dataset...") arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\ .format(lasMP), "Delaunay") # Execute CopyTin arcpy.AddMessage("Copying TIN to delineate data boundary...") arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin)) # Execute DelineateTinDataArea arcpy.AddMessage("Delineating TIN boundary...") maxEdge = ptSpacing * 4 arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY") # Execute TinDomain arcpy.AddMessage("Exporting data area to polygon boundary...") arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON") arcpy.AddMessage("Finished") arcpy.CheckInExtension("3D") 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)