Warum gibt es in ArcMap & QGIS einen Unterschied zwischen NDVI mit Sentinel 2?

8

Ich habe versucht, den NDVI für eine Szene mit den Sentinel 2-Bändern 4 (rot) und 8 (NIR) zu berechnen. Ich habe es zuerst in ArcMap und dann in QGIS gemacht. In beiden Softwareprogrammen habe ich den Rasterrechner verwendet und die grundlegende NDVI-Formel = (NIR-Rot) / (NIR + Rot) eingefügt.

ArcMap gab mir einen Bereich von 0 bis 9221 (dies hängt von der angewendeten Dehnung ab), während QGIS mir plausiblere Werte von 0,0258 bis 0,5255 gab.

Ich habe kurz gelesen, dass Sentinel 2 TOA-Reflexion ist und einen Skalierungsfaktor von 10000 hat, der anscheinend in der XML-Datei zu finden ist, die mit den Bildern heruntergeladen wird. Ich habe diesen Skalierungsfaktor in der heruntergeladenen XML-Datei nie gefunden.

Warum gibt es diesen Unterschied? Wie erfolgt die Berechnung in QGIS?

tg110
quelle
Wie berechnen Sie den NDVI mit einem Rasterrechner oder einem Tool / Plugin? Es ist offensichtlich, dass bei der Arcmap-Berechnung ein Fehler aufgetreten ist. Können Sie Ihren Beitrag bearbeiten, um genau anzugeben, wie Sie ihn berechnet haben?
HDunn
@ HDunn- Ich habe Details aufgenommen, wie Sie vorgeschlagen haben. Ich habe keine Plugins verwendet, nur den Rasterrechner in ArcMap und QGIS.
tg110
Versuchen Sie, Arcmap zu zwingen, sie anstelle von 8/16-Bit als Floats zu behandeln. Multiplizieren Sie dazu eines der Argumente mit 1.0 und beachten Sie die .0. So etwas wie ((NIR-Rot) * 1.0) / (NIR + Rot).
HDunn
@ HDunn- es hat funktioniert! Der Wertebereich in ArcMap -0,75468 bis 0,877372 unterscheidet sich jedoch stark von dem Bereich, den ich mit QGIS erhalten habe (0,0258 bis 0,5255). Welcher ist korrekt? Und warum gibt es diesen Unterschied?
tg110
Ist die Strecke ähnlich? Versuchen Sie, Statistiken zu berechnen, oder versuchen Sie, ein einzelnes Pixel in beiden Programmen zu identifizieren. Es sollte dasselbe sein oder nur eine präzise Rundungsziffer entfernt
HDunn

Antworten:

3

Arcmap ist dafür berüchtigt, den Rastertyp beizubehalten und Werte nicht als Dezimalstellen / Gleitkommazahlen zu behandeln, wenn sie aus 16-Bit-Ganzzahl-Rastern berechnet werden.

Um Arcmap zu zwingen, das Ergebnis der Rasterberechnung als Float zu behandeln, sollten Sie eines der Argumente mit 1,0 multiplizieren oder einfach eine '.0' an eine beliebige Konstante oder reelle Zahl in der Formel anhängen.

In Ihrem Fall (NIR-Red)*1.0/(NIR+Red)wird ausreichen.

HDunn
quelle
@ HDunn- Ich habe die gleiche Dehnung angewendet und auch Statistiken berechnet. QGIS- Minimum = -0,684, Maximum = 0,817, Mittelwert = 0,252, StdDev = 0,113 ArcMap- Min = -0,7546, Max = 0,87737, Mittelwert = 0,252, StdDev = 0,113 Ich meine fast das gleiche. Ich frage mich, warum der kleine Unterschied immer noch.
tg110
0

Haben Sie die anfänglichen Histogramme der jeweiligen Bänder überprüft, die Sie verwenden? Es ist möglich, dass jede Software unterschiedliche Werte ohne Daten interpretiert, die die Ergebnisse verzerren können.

Alexander
quelle
@ Alexander- Das ist also eine andere Frage, die ich hatte. Die Werte für das NIR-Band in QGIS sind 527-3234, in ArcMap jedoch 0-9212. Ich verstehe nicht wie und warum.
tg110
Dies könnte die Ursache Ihres Problems sein. Wenn Sie das Histogramm anzeigen, kennen Sie Ihren Wert ohne Daten häufig, da er am Anfang oder Ende Ihres Histogramms angezeigt wird, häufig mit einer großen Anzahl von Pixeln. Was Sie tun müssen, ist ein Histogramm-Clip - und schneiden Sie die Werte ohne Daten aus -, dann wiederholen Sie Ihre Indizes und teilen Sie uns Ihre Ergebnisse mit :)
Alexander
@ Alexander- Ich weiß nicht, wie man einen Histogramm-Clip macht. Wie würde ich das machen?
tg110
hmmm- Ich weiß nur, wie man es in erdas macht, indem ich die Rescale-Funktion benutze. Haben Sie jemals versucht, Ihre NDVI ohne den Bandrechner in Arcmap durchzuführen? Überprüfen Sie diesen Link: desktop.arcgis.com/de/arcmap/10.3/manage-data/raster-and-images/…
Alexander
Grundsätzlich können Sie die Histogramme im Bildanalysefenster neu skalieren (häufig werden standardmäßig keine Daten ausgeschlossen). Stellen Sie sicher, dass Sie die richtigen Bänder zugewiesen haben, indem Sie in das Menü mit den Bildanalyseoptionen gehen. Probieren Sie anschließend Ihr ndvi aus und prüfen Sie, ob es funktioniert.
Alexander