Mehr

Höhendaten „nivellieren“ mit Polygon?

Höhendaten „nivellieren“ mit Polygon?


Ich habe ein Shapefile mit Gebäudegeometrien (Polygonen) und einem Höhen-Dataset. Die Höhendaten stimmen nicht perfekt mit den Gebäuden überein.

Ich möchte die Höhendaten "abflachen", damit die Höhe überall dort, wo sich ein Gebäude befindet, vollständig flach ist.

Kurz gesagt: Ändern Sie für alle Pixel, die ein Polygon schneiden, ihren Wert auf den Durchschnitt der sich schneidenden Pixel.

Wie kann ich das erreichen?

Diese Frage hat mehr oder weniger keinen Bezug zu einer bestimmten Software, obwohl ich lieber freie Software wie QGIS, GDAL/OGR usw. verwende.


Für Mittelwerte der Höhe in Gebäudepolygonen…

In QGIS:

  1. aktivieren Sie Zonenstatistik Plugin
    • Führen Sie es aus - "Raster / Zonale Statistik", es werden neue Spalten zur Polygonebene hinzugefügt
    • der benötigte ist "bedeuten".
  2. Duplizieren Sie Ihre Höhenebene (Raster/Raster) - Sie werden sie für die endgültige Datei verwenden
  3. Benutzen "Raster / Konvertierung / Rasterisieren"
    • Wählen Sie Ihren Polygon-(Gebäude-)Layer aus, Feld "Mittelwert"
    • als Ziel verwenden Sie Ihre Kopie des Höhenrasters/Rasters.
    • Bestehende Größe und Auflösung beibehalten
    • (Aus irgendeinem Grund schreibt meine QGIS 2.2-Version "Die ausgewählte Datei ist kein unterstütztes OGR-Format" für alle Vektordateien, die ich ausprobiert habe, daher musste ich QGIS-Entwicklungsversion 2.3 verwenden.)

Das Ergebnis ist eine Kombination aus ursprünglichen Höhenwerten außerhalb von Polygonen und Mittelwerten innerhalb von Polygonen.


Diese Antwort funktioniert nur, wenn Sie einen konstanten Wert wünschen - im Beispiel 0.

In QGIS:

  1. Höhe nach Polygonen (Gebäuden) auf neues Raster (Raster) ausschneiden - building_grd

    • Raster/Extraktion/Clipper
    • (Verwenden Sie den Clipping-Modus "Maskenebene" und Ihr Gebäude-Shapefile)
  2. Rasterrechner ausführen und berechnen

    • Raster/Raster-Rechner…
    • Ausdruck: ("Elevation" = "buildings_grd")*0 + ("Elevation" != "buildings_grd")*"Elevation"