ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Verwalten von Daten
  • Werkzeuge
  • Erweiterungen

Gebäudegrundriss vereinfachen

  • Zusammenfassung
  • Abbildung
  • Verwendung
  • Syntax
  • Codebeispiel
  • Umgebungen
  • Lizenzinformationen

Zusammenfassung

Normalisiert den Footprint von Gebäude-Polygonen, indem unerwünschte Artefakte in deren Geometrie entfernt werden.

Abbildung

Vereinfachte Gebäudegrundrisse

Verwendung

  • Dieses Werkzeug nutzt einen Polylinienkomprimierungsalgorithmus, um Verzerrungen in Gebäudegrundriss-Polygonen zu korrigieren, die durch Feature-Extraktions-Workflows erstellt wurden, die möglicherweise unerwünschte Artefakte erzeugen.

  • Anhand des Toleranzwertes wird die Region um die Grenze des Polygons definiert, in der das vereinfachte Polygon liegen muss. Diese Region lässt sich am besten visualisieren, indem die Grenze des Polygons in ein Linien-Feature konvertiert und die Linie anschließend um die gewünschte Toleranz gepuffert wird.

  • Wenn Ihre Gebäudegrundrisse kreisförmige Strukturen enthalten, sollten diese Features zuerst verarbeitet werden. Kreisförmige Gebäude können anhand eines Kompaktheitsverhältnisses identifiziert werden. Um diesen Wert zu berechnen, führen Sie die folgenden Schritte aus:

    1. Fügen Sie ein Feld vom Typ "Double" hinzu.
    2. Berechnen Sie die folgende Formel mithilfe der Feldberechnung:
      (4 * 3.14159265358979 * !shape.area!) / !shape.length! ** 2
    3. Ein perfekter Kreis hat den Wert 1. Da die Polygone, die in der Regel mit diesem Werkzeug verarbeitet werden, jedoch einige Unregelmäßigkeiten aufweisen, geben Werte, die näher bei 1 liegen, eher eine Kreisform an. Bewerten Sie Ihre Ergebnisse, um den Minimalwert eines kreisförmigen Gebäudes zu identifizieren, und wählen Sie Werte aus, die größer als dieser Wert sind oder diesem entsprechen, bevor Sie dieses Werkzeug mit der Methode CIRCLE ausführen.
  • Wenn die angegebenen Parameter keine vereinfachte Lösung für eine bestimmte Eingabe erstellen können, wird das ursprüngliche Feature in die Ausgabe kopiert. Der im Feld STATUS angegebene Wert gibt an, ob das Feature vereinfacht wurde:

    • 0 – Vereinfachtes Feature
    • 1 – Ursprüngliches Feature
    Hinweis:

    Wenn Ihre Ausgabe Features enthält, die nicht normalisiert werden konnten, können Sie das Werkzeug iterativ ausführen, indem Sie die nicht verarbeiteten Features auswählen und die Parameter zum Identifizieren einer Lösung ändern. Hintergrundbilddaten können für die Auswertung der Genauigkeit der normalisierten Ausgabe sehr hilfreich sein.

Syntax

arcpy.ddd.RegularizeBuildingFootprint(in_features, out_feature_class, method, tolerance, densification, precision, diagonal_penalty, min_radius, max_radius)
ParameterErklärungDatentyp
in_features

Die Polygone zur Darstellung des Gebäudegrundrisses, der normalisiert werden soll.

Feature Layer
out_feature_class

Die Feature-Class, die von diesem Werkzeug erstellt wird.

Feature Class
method

Die Normalisierungsmethode, die bei der Verarbeitung der Eingabe-Features verwendet werden soll.

  • RIGHT_ANGLES —Hilfreich für Gebäude-Footprints, die hauptsächlich durch rechte Winkel definiert werden
  • RIGHT_ANGLES_AND_DIAGONALS —Hilfreich für Gebäude-Footprints, die aus rechten Winkeln und diagonalen Seiten bestehen
  • ANY_ANGLE —Hilfreich für Gebäude mit sehr unregelmäßigen Grundrissen.
  • CIRCLE —Hilfreich für Gebäude mit kreisförmigen Eigenschaften, wie Getreidesilos oder Wassertürme
String
tolerance

Die maximale Entfernung, die der normalisierte Gebäudegrundriss von der Grenze seines ursprünglichen Features abweichen kann. Der angegebene Wert basiert auf den linearen Einheiten des Koordinatensystems des Eingabe-Features.

Double
densification

Das Beispielintervall, anhand dessen ausgewertet wird, ob das normalisierte Feature gerade oder gekrümmt ist. Die Verdichtung muss gleich dem oder kleiner als der Toleranzwert sein.

Dieser Parameter wird nur mit Methoden verwendet, die die Identifizierung rechter Winkel unterstützen.

Double
precision

Die Genauigkeit, die vom räumlichen Gitter verwendet wird, das im Normalisierungsprozess bereitgestellt wird. Zulässig sind Werte im Bereich von 0.05 bis 0.25.

Double
diagonal_penalty

Steuert die Entfernungsverzerrung für die Erstellung von Verbindungen von rechten Winkeln. Entfernungen, die kleiner sind als die diagonale Gewichtung, dienen zum Erstellen von rechten Winkeln.

Dieser Parameter wird nur mit der Methode RIGHT_ANGLES_AND_DIAGONALS verwendet.

Double
min_radius

Der kleinste Radius, den ein normalisierter Kreis aufweisen kann. Der Wert 0 impliziert, dass keine minimale Größenbeschränkung vorhanden ist. Diese Option ist nur für die Methode CIRCLE verfügbar.

Double
max_radius

Der größte Radius, den ein normalisierter Kreis aufweisen kann. Diese Option ist nur bei der Methode "Kreis" verfügbar.

Double

Codebeispiel

RegularizeBuildingFootprint – Beispiel 1 (Python-Fenster)

Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.

arcpy.env.workspace = 'c:/data'
arcpy.ddd.RegularizeBuildingFootprint('rough_footprints.shp', 
                                      'regularized_footprints.shp',
                                      method='Circle', tolerance=1.5, min_radius=10, 
                                      max_radius=20)
RegularizeBuildingFootprint – Beispiel 2 (eigenständiges Skript)

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

  • Aktueller Workspace
  • Ausgabe-Koordinatensystem
  • Geographische Transformationen
  • Ausdehnung
  • Faktor für parallele Verarbeitung

Lizenzinformationen

  • Basic: Erfordert 3D Analyst
  • Standard: Erfordert 3D Analyst
  • Advanced: Erfordert 3D Analyst

Verwandte Themen

  • Überblick über das Toolset "3D-Features"
  • 3D-Features
  • Grundlagen der Geoverarbeitung mit der ArcGIS 3D Analyst-Erweiterung

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2021 Esri. | Datenschutz | Rechtliches