ArcGIS Desktop

  • Dokumentation
  • Support

  • 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 for 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

Normalisierte 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 normalisierte 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 Toleranzentfernung gepuffert wird.

  • Wenn Ihre Gebäudegrundrisse kreisförmige Strukturen enthalten, sollten diese Features zuerst verarbeitet werden. Ein Kompaktheitsverhältnis kann zum Identifizieren kreisförmiger Gebäude herangezogen werden. Führen Sie zum Berechnen dieses Wertes die folgenden Schritte aus:

    1. Fügen Sie ein Feld vom Typ "Double" hinzu.
    2. Berechnen Sie die folgende Formel anhand der Feldberechnung:
      (4 * 3.14159265358979 * !shape.area!) / !shape.length! ^ 2
    3. Ein perfekter Kreis hat den Wert 1, da die mit diesem Werkzeug verarbeiteten Polygone jedoch in der Regel Unregelmäßigkeiten aufweisen, weisen Werte nahe bei 1 wahrscheinlich eher eine kreisförmige Form auf. Werten Sie Ihre Ergebnisse aus, um den Mindestwert eines kreisförmigen Gebäudes zu ermitteln, und wählen Sie Werte aus, die größer oder gleich diesem Wert sind, bevor Sie dieses Werkzeug mit der Methode CIRCLE ausführen.
  • Wenn die angegebenen Parameter keine normalisierte 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 normalisiert wurde:

    • 0: Ursprüngliches Feature
    • 1: Normalisiertes 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

RegularizeBuildingFootprint_3d (in_features, out_feature_class, method, tolerance, densification, precision, diagonal_penalty, min_radius, max_radius)
ParameterErläuterungDatentyp
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äudegrundrisse, die primär durch rechte Winkel definiert werden
  • RIGHT_ANGLES_AND_DIAGONALS —Hilfreich für Gebäudegrundrisse, 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. Dieser Parameter ist nur für die Methode CIRCLE verfügbar.

Double
max_radius

Der größte Radius, den ein normalisierter Kreis aufweisen kann. Dieser Parameter ist nur für die 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

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

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS Plattform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

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