Zusammenfassung
Klassifiziert Gebäudedächer und -seiten in LAS-Daten.
Abbildung
Verwendung
Die LAS-Daten müssen klassifizierte Bodenpunkte aufweisen, bevor Dachpunkte von Gebäuden klassifiziert werden können. Wenn noch keine Bodenpunkte klassifiziert wurden, können Sie das Werkzeug Boden aus LAS klassifizieren verwenden. Die Bodenpunkte müssen den Klassencodewert 2 aufweisen. Wenn Bodenpunkte über einen anderen Klassencodewert als 2 verfügen, verwenden Sie das Werkzeug LAS-Klassencodes ändern, um den Klassencode entsprechend neu zuzuweisen.
LAS-Punkte mit den Klassencodewerten 0, 1 und 6 werden ausgewertet, um zu bestimmen, ob sie die Eigenschaften von Gebäudedächern aufweisen. Wenn Punkte, die als Gebäude klassifiziert wurden, diese Kriterien nicht erfüllen, wird ihnen der neue Klassencodewert 1 zugewiesen, es sei denn, die Option zur Wiederverwendung vorhandener Punkte, die als Gebäude klassifiziert wurden, ist angegeben.
Der Parameter Methode wird nicht verwendet, wenn die Option Photogrammetrische Daten festgelegt ist.
Syntax
arcpy.ddd.ClassifyLasBuilding(in_las_dataset, {min_height}, min_area, {compute_stats}, {extent}, boundary, {process_entire_files}, point_spacing, {reuse_building}, {photogrammetric_data}, {method}, {classify_above_roof}, {above_roof_height}, {above_roof_code})
Parameter | Erklärung | Datentyp |
in_las_dataset | Das LAS-Dataset, das klassifiziert werden soll. | LAS Dataset Layer |
min_height (optional) | Die Höhe vom Boden, die den niedrigsten Punkt festlegt, von dem aus Dachpunkte identifiziert werden. | Linear Unit |
min_area | Die kleinste Fläche des Gebäudedachs. | Areal Unit |
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 |
extent (optional) | Legt die Ausdehnung der Daten fest, die von diesem Werkzeug ausgewertet werden. | Extent |
boundary | Ein Polygon-Feature, das den Interessenbereich definiert, der von diesem Werkzeug verarbeitet werden soll. | Feature Layer |
process_entire_files (optional) | Legt fest, wie die Verarbeitungsausdehnung angewendet werden soll.
| Boolean |
point_spacing | Der durchschnittliche Abstand der LAS-Punkte. Dieser Parameter wird nicht mehr verwendet. | Linear Unit |
reuse_building (optional) | Gibt an, ob die vorhandenen, als Gebäude klassifizierten Punkte erneut verwendet oder ausgewertet werden. Gibt an, ob die vorhandenen, als Gebäude klassifizierten Punkte erneut verwendet oder ausgewertet werden.
| Boolean |
photogrammetric_data (optional) | Gibt an, ob die Punkte in der LAS-Datei mit einer photogrammetrischen Methode abgeleitet wurden. Gibt an, ob die Punkte in der LAS-Datei mit einer photogrammetrischen Methode abgeleitet wurden.
| Boolean |
method (optional) | Die zu verwendende Klassifizierungsmethode.
| String |
classify_above_roof (optional) | Legt fest, ob Punkte über den für das Dach ermittelten Ebenen klassifiziert werden sollen.
| Boolean |
above_roof_height (optional) | Die maximale Höhe der Punkte über dem Gebäudedach, die mit dem im Parameter Klassencode für Punkte über Dächern angegebenen Wert klassifiziert werden. | Linear Unit |
above_roof_code (optional) | Der Klassencode, der Punkten über dem Dach zugewiesen wird. | Long |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
derived_las_dataset | Das LAS-Dataset, das für Gebäudedächer klassifiziert ist. | LAS-Dataset-Layer |
Codebeispiel
ClassifyLasBuilding – Beispiel 1 (Python-Fenster)
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet',
minArea='30 Square Feet', compute_stats=True)
ClassifyLasBuilding – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset
try:
# Create temp LAS dataset to reference LAS files that will be tiled
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las, temp_lasd)
arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4,
point_format=7, file_size=300)
arcpy.management.Delete(temp_lasd)
arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
noise='All Noise', compute_stats='COMPUTE_STATS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst