Zusammenfassung
Wendet Farben und infrarotnahe Werte aus Orthofotos auf LAS-Punkte an.
Abbildung
Verwendung
Mit der Anzeige von LAS-Punkten mithilfe von RGB-Informationen lässt sich eine einzigartig immersive, fotorealistische Anzeige erreichen. Das visuelle Feedback von echten Bilddaten, die über LAS-Punkte gelegt werden, kann Informationen über die diskontinuierlichen Eigenschaften der Punktwolke liefern. Das kann bei der interaktiven Klassifizierung von Daten, bei der Digitalisierung neuer Features sowie bei der Einrichtung eines Bezugspunktes hilfreich sein, wenn 3D-Entfernungsmesswerte verwendet werden.
Die für die Anwendung von Farben auf LAS-Punkte verwendeten Bilddaten werden am besten zur selben Zeit wie die LIDAR-Vermessungen gewonnen, um bei den erfassten Features die höchste Übereinstimmung zu erzielen. Andernfalls sollten Sie Bilddaten verwenden, die möglichst nahe am Zeitpunkt der Erfassung liegen, um Unterschiede aufgrund von Ereignissen wie Bauarbeiten oder die jahreszeitliche Veränderung von sommergrünen Blättern zu minimieren.
Wenn die Quellbilddaten aus verschiedenen gekachelten Bildern bestehen, laden Sie diese Kacheln in ein Mosaik-Dataset, um sie als ein einzelnes Dataset zu referenzieren, und verwenden Sie dieses als Bildeingabe zum Färben der LAS-Daten. Hier finden Sie weitere Informationen zum Erstellen eines Mosaik-Datasets.
Die Speicherung von Nahinfrarot-Werten für LAS-Punkte wird nur durch LAS-Dateiversion 1.4 mit Punktdatensatzformat 8 unterstützt.
Wenn eine Verarbeitungsausdehnung definiert ist, wird die vollständige LAS-Datei, die die Verarbeitungsausdehnung schneidet, gefärbt. Wenn nur ein Teil der LAS-Eingabedatei gewünscht ist, könnten Sie mit dem Werkzeug LAS extrahieren den Teil ausschneiden und die resultierende Datei als Eingabe für dieses Werkzeug verwenden.
LAS-Punkt-Datensätze werden häufig in der LAS-Datei in einer binären Sequenz gespeichert, die nicht dem räumlichen Clustering der Punkte entspricht. Wenn Daten einer derartigen Verteilung abgefragt werden, kann dies zu einem weniger effizienten Zugriff auf die binären Datensätze führen, die die LAS-Punkte darstellen. Durch eine Neuanordnung der Punkte in der resultierenden LAS-Datei werden die Daten für die Visualisierung und andere räumliche Operationen optimiert. Bei Aktivierung der Option für die Neuanordnung werden automatisch Statistiken berechnet. Wenn Sie die LAS-Punkte nicht neu anordnen möchten, bleibt es Ihnen überlassen, ob Sie die Berechnung von Statistiken aktivieren oder deaktivieren. Durch die Berechnung von Statistiken werden räumliche Abfragen optimiert. Zudem wird eine Zusammenfassung der Klassencodes und Rückgabewerte bereitgestellt, die in der LAS-Datei vorhanden sind. Im Gegenzug benötigt dieses Werkzeug jedoch etwas mehr Zeit für die Verarbeitung. Wenn Sie die resultierenden LAS-Dateien in ArcGIS nicht verwenden, bleibt es Ihnen überlassen, ob Sie die Berechnung von Statistiken aktivieren oder zur Beschleunigung des Werkzeugs deaktivieren.
Syntax
arcpy.3d.ColorizeLas(in_las_dataset, in_image, bands, target_folder, {name_suffix}, {las_version}, {point_format}, {compression}, {rearrange_points}, {compute_stats}, {out_las_dataset})
Parameter | Erklärung | Datentyp |
in_las_dataset | Das zu verarbeitende LAS-Dataset. | LAS Dataset Layer |
in_image | Das Bild, das zum Zuweisen von Farben zu LAS-Punkten verwendet werden soll. | Mosaic Layer; Raster Layer |
bands [bands,...] | Die Bänder im Eingabebild, die den Farbkanälen, die den Ausgabe-LAS-Punkten zugeordnet sind, zugewiesen werden sollen. | Value Table |
target_folder | Der vorhandene Ordner, in den die Ausgabe-LAS-Dateien geschrieben werden. | Folder |
name_suffix (optional) | Der Text, der an den Namen jeder Ausgabe-LAS-Datei angehängt wird. Jede Datei übernimmt ihren Basisnamen aus ihrer Quelldatei, gefolgt von dem Suffix, der in diesem Parameter festgelegt wird. | String |
las_version (optional) | Die LAS-Version der Ausgabedateien, die erstellt werden.
| String |
point_format (optional) | Das Punktdatensatzformat der Ausgabe-LAS-Dateien.
| Long |
compression (optional) | Legt fest, ob die Ausgabe-LAS-Datei in einem komprimierten oder im Standard-LAS-Format vorliegen soll.
| String |
rearrange_points (optional) | Legt fest, ob Punkte in den LAS-Dateien neu angeordnet werden.
| Boolean |
compute_stats (optional) | Gibt an, ob für die vom LAS-Dataset referenzierten LAS-Dateien Statistiken berechnet werden sollen. Durch das Berechnen von Statistiken wird ein räumlicher Index für jede LAS-Datei bereitgestellt, wodurch sich die Analyse- und Darstellungs-Performance verbessert. Ferner werden durch Statistiken die Filter- und Symbolisierungsverfahren verbessert, da die Anzeige von LAS-Attributen, beispielsweise Klassifizierungscodes und Rückgabeinformationen, auf die in der LAS-Datei vorhandenen Werte begrenzt wird.
| Boolean |
out_las_dataset (optional) | Das Ausgabe-LAS-Dataset, das auf die neu erstellten LAS-Dateien verweist. | LAS Dataset |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
output_folder | Der Ordner, in den die Ausgabe-LAS-Dateien ausgegeben werden. | Ordner |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ColorizeLas('2014_lidar_survey.lasd', '2014_CIR.tif',
'RED Band_1; GREEN Band_2; BLUE Band_3',
'las/rgb', '_rgb', 1.3, 3, 'ZLAS',
'REARRANGE_POINTS')
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)
try:
desc = arcpy.Describe(lasd)
if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
unit = 'Feet'
else:
unit = 'Meters'
ptSpacing = desc.pointSpacing * 2.25
sampling = '{0} {1}'.format(ptSpacing, unit)
# Classify overlap points
arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
# Classify ground points
arcpy.ddd.ClassifyLasGround(lasd)
# Filter for ground points
arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
# Generate DEM
arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION',
'BINNING NEAREST NATURAL_NEIGHBOR',
sampling_type='CELLSIZE',
sampling_value=desc.pointSpacing)
# Classify noise points
arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY',
withheld='WITHHELD', ground=dem,
low_z='-2 feet', high_z='300 feet',
max_neighbors=ptSpacing, step_width=ptSpacing,
step_height='10 feet')
# Classify buildings
arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
#Classify vegetation
arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55],
compute_stats='COMPUTE_STATS')
# Filter LAS dataset for building points
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
# Export raster from lidar using only building points
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
# Convert building raster to polygon
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
# Regularize building footprints
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst