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) | Gibt die LAS-Punkte an, die das Gebäudedach definieren.
| String |
Vereinfachungstoleranz (optional) | Ein Z-Wert, der zur Vereinfachung der Dachgeometrie verwendet wird. Dieser Wert definiert die maximale Abweichung des Ausgabedachmodells von der mit den LAS-Punkten erstellten TIN-Oberfläche. | Linear Unit |
Abtastauflösung (optional) | Die Binning-Größe, die zur Ausdünnung der Punktwolke vor der Erstellung der Dachfläche verwendet 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. Wenn die zu verarbeitende Punktwolke eine hohe Punktdichte aufweist, sollten Sie die Verwendung des Parameters Abtastauflösung in Erwägung ziehen, um die Punkte, die für die Dachkonstruktion verwendet werden, auszudünnen.
Polygone mit Bogensegmenten werden von diesem Werkzeug nicht unterstützt. Wenn derartige Features in den Eingabedaten vorhanden sind, können Sie eine Kopie der Features erstellen und die Bogengeometrien mit dem Werkzeug Verdichten durch Liniensegmente ersetzen.
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 wird, wenden Sie vor der Verwendung dieses Werkzeugs mithilfe des Werkzeugs Feld berechnen den passenden Konvertierungsfaktor an. 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 entweder das Werkzeug LAS-Dataset in Raster oder das Werkzeug LAS-Dataset in TIN zum Generieren der Oberfläche verwenden.
LAS-Punkte werden effizienter verarbeitet, wenn das LAS-Dataset über Statistiken verfügt. Verwenden Sie das Werkzeug LAS-Dataset-Statistiken zur Berechnung von Statistiken.
Parameter
arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, {simplification}, {sampling_resolution})
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) | Gibt die LAS-Punkte an, die das Gebäudedach definieren.
| String |
simplification (optional) | Ein Z-Wert, der zur Vereinfachung der Dachgeometrie verwendet wird. Dieser Wert definiert die maximale Abweichung des Ausgabedachmodells von der mit den LAS-Punkten erstellten TIN-Oberfläche. | Linear Unit |
sampling_resolution (optional) | Die Binning-Größe, die zur Ausdünnung der Punktwolke vor der Erstellung der Dachfläche verwendet 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