Beschriftung | Erläuterung | Datentyp |
Eingabe-LAS-Dataset | Das LAS-Dataset mit den Punkten, die das Gebäudedach definieren. | LAS Dataset Layer |
Eingabe-Features | Die Polygon-Features, die den Gebäude-Footprint definieren. | Feature Layer |
Bodenhöhe | Bei der Quelle der Bodenhöhenwerte kann es sich entweder um ein numerisches Feld in der Gebäude-Footprint-Attributtabelle, ein Raster oder eine TIN-Oberfläche handeln. Feldbasierte Bodenquellen werden schneller verarbeitet als oberflächenbasierte Bodenquellen. | Field; Raster Layer; TIN Layer |
Ausgabe-Multipatch-Feature-Class | Die Multipatch-Feature-Class, die die Ausgabegebäudemodelle speichert. | Feature Class |
LAS-Dachpunktauswahl (optional) | Die LAS-Punkte, die das Gebäudedach definieren.
| String |
Vereinfachungstoleranz | Der Z-Toleranzwert, der zur Reduzierung der Anzahl von LAS-Punkten verwendet wird, die bei der Modellierung des Gebäudedaches berücksichtigt werden. Dieser Wert definiert den maximalen Schwellwert für Abweichungen zwischen dem Ausgabedachmodell und der Dachoberfläche, die aus der vollen Auflösung von LAS-Punkten erstellt wird. | Linear Unit |
Zusammenfassung
Erstellt Gebäudemodelle, die aus in LIDAR-Daten erfassten Dachpunkten abgeleitet wurden.
Abbildung
Verwendung
Es wird vorausgesetzt, dass die LAS-Punkte die gewünschte Abdeckung des Gebäudedachs bereitstellen. Um optimale Ergebnisse zu erzielen, sollten Sie Punkte ausschließen, die andere Gebäudeteile als das Dach darstellen, da diese im Allgemeinen zu Rauschen im resultierenden Gebäudemodell führen. Wenn keine als Gebäude klassifizierte Punkte im LAS-Dataset vorliegen, klassifizieren Sie sie mit dem Werkzeug Gebäude aus LAS klassifizieren. Das Werkzeug weist Punkten, die Gebäudedächer darstellen, den Klassencodewert 6 zu. Prüfen Sie das Klassifizierungsergebnis, und nehmen Sie ggf. Korrekturen vor, indem Sie das Werkzeug erneut mit anderen Parametereinstellungen ausführen oder interaktiv die Klassifizierung bearbeiten. Erstellen Sie das Modell, sobald Sie mit der Gebäudeabdeckung durch die Klassifizierung zufrieden sind.
Nehmen Sie vor der Ausführung dieses Werkzeugs eine Klassifizierung der Bodenpunkte vor. Weisen Sie Bodenpunkten mithilfe des Werkzeugs Boden aus LAS klassifizieren den Klassencodewert 2 zu, falls sie zuvor noch nicht klassifiziert wurden.
Das Gebäudemodell wird generiert, indem aus den LAS-Punkten, die das Gebäude-Footprint-Polygon überlappen, ein TIN erstellt wird. Der Footprint wird als Clip-Polygon in dieses TIN integriert, wobei die Polygonhöhe durch die im Parameter Bodenhöhe angegebene Quelle definiert wird. Der Wert für den Parameter Bodenhöhe kann entweder aus einem Feld in der Attributtabelle des Footprint-Polygons oder aus einer Höhenoberfläche abgeleitet werden.
Polygone mit Bogensegmenten werden von diesem Werkzeug nicht unterstützt. Wenn entsprechende Features in den Eingabedaten vorhanden sind, sollten Sie eine Kopie dieser Features erstellen und die Kreisbogengeometrien durch Liniensegmente ersetzen. Nutzen Sie dazu das Werkzeug Verdichten.
Wenn die Bodenhöhe aus einem Feld in der Attributtabelle des Footprint-Polygons abgeleitet wird, wird davon ausgegangen, dass ihre Höheneinheiten mit der Z-Einheit des Eingabe-LAS-Datasets identisch sind. Wenn die Höhe in der Attributtabelle in einer anderen linearen Einheit ausgedrückt ist, sollten Sie vor der Verwendung dieses Werkzeugs das Werkzeug Feld berechnen verwenden, um den passenden Konvertierungsfaktor anzuwenden. Die Bodenhöhe kann den Gebäude-Footprint-Polygonen auf folgende Weise zugeordnet werden:
- Filtern Sie das LAS-Dataset mithilfe der Layer-Eigenschaften oder des Werkzeugs LAS-Dataset-Layer erstellen nach Bodenpunkten.
- Führen Sie das Werkzeug Oberflächeninformationen hinzufügen aus, und legen Sie dabei die Eingabe-Features auf das Gebäude-Footprint-Polygon, die Eingabeoberfläche auf das nach Bodenpunkten gefilterte LAS-Dataset und die Ausgabe-Eigenschaft auf den Wert Z_MIN fest, um sicherzustellen, dass für das Gebäude der niedrigste Z-Wert verwendet wird.
Wenn die Bodenhöhe durch eine Oberfläche definiert ist, definiert der kleinste Z-Wert entlang der Grenze des Polygons die Basishöhe des Gebäudes. Verwenden Sie für die Oberfläche dasselbe vertikale Koordinatensystem wie im LAS-Dataset. Sie können aus den LAS-Punkten mit Bodenklassifizierung eine TIN- oder Raster-Oberfläche des Bodens erstellen, indem Sie das LAS-Dataset nach den Punkten mit Bodenklassifizierung filtern und dann das Werkzeug LAS-Dataset in Raster oder LAS-Dataset in TIN zum Generieren der Oberfläche verwenden.
LAS-Punkte werden effizienter verarbeitet, wenn das LAS-Dataset über Statistiken verfügt. Statistiken können mit dem Werkzeug LAS-Dataset-Statistiken berechnet werden.
Parameter
arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, simplification)
Name | Erläuterung | Datentyp |
in_las_dataset | Das LAS-Dataset mit den Punkten, die das Gebäudedach definieren. | LAS Dataset Layer |
in_features | Die Polygon-Features, die den Gebäude-Footprint definieren. | Feature Layer |
ground | Bei der Quelle der Bodenhöhenwerte kann es sich entweder um ein numerisches Feld in der Gebäude-Footprint-Attributtabelle, ein Raster oder eine TIN-Oberfläche handeln. Feldbasierte Bodenquellen werden schneller verarbeitet als oberflächenbasierte Bodenquellen. | Field; Raster Layer; TIN Layer |
out_feature_class | Die Multipatch-Feature-Class, die die Ausgabegebäudemodelle speichert. | Feature Class |
point_selection (optional) | Die LAS-Punkte, die das Gebäudedach definieren.
| String |
simplification | Der Z-Toleranzwert, der zur Reduzierung der Anzahl von LAS-Punkten verwendet wird, die bei der Modellierung des Gebäudedaches berücksichtigt werden. Dieser Wert definiert den maximalen Schwellwert für Abweichungen zwischen dem Ausgabedachmodell und der Dachoberfläche, die aus der vollen Auflösung von LAS-Punkten erstellt wird. | Linear Unit |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
arcpy.env.workspace = 'C:/data'
arcpy.LasBuildingMultipatch_3d('Highland.lasd', 'footprint.shp', 'dem.tif',
'highland_3d_bldgs.shp', simplification='4 Feet')
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: Extract Building Footprints & Generate 3D Models
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)
model = arcpy.GetParameterAsText(2)
try:
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=6)
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
arcpy.ddd.LasPointStatsByArea(lasd_layer, footprint, ['MIN_Z', 'MAX_Z'])
arcpy.management.AddField(footprint, 'Height', 'Double')
arcpy.management.CalculateField(footprint, 'Height',
"round('!Z_Max! - !Z_Min!', 2)",
'PYTHON_9.3')
simplification = arcpy.Describe(lasd).pointSpacing * 4
arcpy.ddd.LasBuildingMultipatch(lasd_layer, footprint, 'Z_MIN', model,
'BUILDING_CLASSIFIED_POINTS', simplification)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst