Messfläche von Rasterklassen?


9

Gibt es in ArcMap Tools oder Methoden, mit denen die Fläche jeder Ebene der Kerneldichteausgabe gemessen werden kann?

Beachten Sie, dass dies nur ein Kernel-Dichtediagramm ist (keine Formdatei oder ein Polygon). Kerndichteanalyse (dunkelgrün (10%) bis rot (90%) (1)

Ich habe ein paar Dinge ausprobiert, aber ich brauche es, um genau zu sein.

Kerenel-Dichteanalyse (dunkelgrün (10%) bis rot (90%)

Antworten:


7

Ich würde den folgenden Workflow verwenden, um die Fläche innerhalb der Klassen zu berechnen:

  1. Klassifizieren Sie die Ausgabe der Kerneldichte in die von Ihnen verwendeten Klassen neu (Spatial Analyst) . Standardmäßig erstellt ArcGIS eine fortlaufende Rasteroberfläche für die Kernel-Dichteausgabe, klassifiziert jedoch die Legende (die nur vorübergehend ist) neu. Wenn Sie das Neuklassifizierungswerkzeug verwenden, wird dies dauerhaft.
  2. Öffnen Sie die Attributtabelle für die neu klassifizierte Kerneldichte und beobachten Sie das Feld "COUNT" ( Abbildung 1 ). Dies ist die Anzahl aller Pixel in jeder Klasse. Beispielsweise hat Klasse 1 (Wert = 1) eine Anzahl von 620.063 Pixel. Da mein Koordinatensystem UTM ist, sind die Einheiten in Metern und die Pixel haben eine räumliche Auflösung von 1 m. Daher beträgt die Klasse 1 620.063 m ^ 2.
  3. Fügen Sie der Attributtabelle ein neues Feld hinzu, um die Anzahl in andere Einheiten wie Hektar umzurechnen.
  4. Feld berechnen ( Abbildung 2 )
  5. Überprüfen Sie die Ergebnisse mithilfe einer Logik, indem Sie eine Klasse markieren ( Abbildung 3 ).

Abbildung 1

Geben Sie hier die Bildbeschreibung ein

Figur 2

Geben Sie hier die Bildbeschreibung ein

Figur 3

Geben Sie hier die Bildbeschreibung ein


2

Wenn Sie eine bogenförmige Lösung wünschen:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

Alternativ können Sie die Werte in eine CSV- / Textdatei schreiben.


1

Angenommen, Ihr Kernel-Dichtediagramm ist ein Raster, das mit dem Kernel-Dichtewerkzeug oder ähnlichem erstellt wurde, ist dies nur eine Frage der Verwendung des Raster-zu-Polygon-Werkzeugs .

Stellen Sie sicher, dass Sie das Feld angeben, das die Klassifizierung des Rasters definiert, und dass es in Polygone konvertiert wird. Sie können dann das Werkzeug Geometrie berechnen verwenden , um die Fläche zu berechnen.


Ich habe das versucht. Wenn ich die Rasterdatei hinein ziehe, heißt es "ein oder mehrere abgelegte Elemente waren ungültig". Der Fehler deutet darauf hin, dass die Datei "störend" ist. Haben Sie eine Idee, warum dies so ist?
Herr Angus

1
@MrAngus Das Problem ist, dass die Kerneldichte immer eine Gleitkomma-Rasterausgabe erzeugt, während für Raster zu Polygon eine Ganzzahl-Rastereingabe erforderlich ist (siehe verknüpfte Hilfedateien). Sie müssten zuerst das KD-Raster neu klassifizieren.
Chris W

Beachten Sie, dass die Berechnung der Geometrie pro Feature erfolgt und nicht die Gesamtfläche aller Polygone angibt, die eine bestimmte Klasse gemeinsam nutzen.
Matt Wilkie

0

Eine schnelle Lösung hierfür ist eine manuelle Lösung:

  1. Öffnen Sie die Eigenschaften des Rasters und wechseln Sie zur Registerkarte Symbologie.
  2. Vermutlich ist die Symbologie bereits auf Klassifiziert eingestellt und die Anzahl der Klassen entspricht Ihren Wünschen. Klicken Sie auf die Schaltfläche Klassifizieren.
  3. Auf der rechten Seite des Dialogfelds befindet sich ein Feld für Unterbrechungswerte. Klicken Sie auf jeden Unterbrechungswert und am unteren Rand des Dialogfelds sehen Sie # Elemente in der Klasse. Dies ist eine Anzahl der Pixel in dieser Klasse. Notieren Sie die Nummer für jede Klasse oder geben Sie sie in eine Tabelle ein.
  4. Brechen Sie die Rastereigenschaften ab und wechseln Sie zur Registerkarte Quelle. Die Zellengröße ist dort in x, y angegeben. Multiplizieren Sie diese beiden und Sie haben die Fläche von einem Pixel.
  5. Nehmen Sie nun diesen Bereich mal die Anzahl der Pixel in jeder Klasse. Dies sollte Ihnen die Gesamtfläche dieser Klasse geben.

Genau ist ein relativer Begriff. Was Ihre Rasterbereiche betrifft, ist sie genau. Wenn Sie die Fezter-Methode verwenden, kann der Bereich unterschiedlich sein, je nachdem, ob Sie beim Konvertieren der pixelbasierten Bereiche in Polygone Smooth verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.