Jedes Mal , wenn ich versuche, pan-sharpen Komposite einiger Landsatbildern in GRASS mit i.pansharpen
, i.fusion.brovey
oder das Verfahren IHS schärfen, wird die Ausgabe einige oder alle der folgenden Merkmale aufweisen:
- Die Farbe des Verbundwerkstoffs hat einen anderen Farbton als der ungeschärfte Verbundwerkstoff
- Die Helligkeit ist durcheinander
- Das gesamte Komposit wurde vollständig weiß / vollständig schwarz (bei Verwendung von Bildern, die für Korrekturen des Reflexionsvermögens oder des Oberflächenreflexionsvermögens in der Atmosphäre vorverarbeitet wurden
i.landsat.toar
).
Ich habe auch alle folgenden versucht ; aber die Farben / Helligkeit blieben gleich oder wurden noch schlechter:
- Applied
i.landsat.rgb
, vor-und-nach dem pan-Schärfprozess - Spielte mit der Flagge
-f
oder-p
ini.landsat.rgb
- Es wurde versucht
r.colors
, die Farbtabelle in grey / grey255 / grey.eq zu bearbeiten - Versucht
i.pansharpen
mit allen Brovey / IHS / PCA-Methoden - Spielte mit der
-l
Flagge,i.pansharpen
um den blauen Kanal wieder ins Gleichgewicht zu bringen
Das GRASS GIS-Handbuch hat zwar erklärt, wie Pan-Sharpening und Color Balancing durchgeführt werden, aber ich kann nicht herausfinden, wie beide Prozesse in einem gleichzeitigen Workflow kombiniert werden können. Ich vermutete, dass dies auf mein schlechtes Verständnis von Farbtabellen, Farbhistogrammen usw. in GRASS zurückzuführen ist.
Kann mir jemand erklären, wie Sie Probleme mit dem Farbausgleich lösen, wenn Sie mit Landsat-Bildern nach der Bildverarbeitung in GRASS arbeiten? Können Sie mir Ihre bevorzugten Arbeitsabläufe / Methoden mitteilen?
Vielen Dank für jedes Feedback!
i.pansharpen
, mit allen Arten von Formaten umzugehen. Bitte schauen Sie sich ein verwandtes "Ticket" an: Ticket Nr. 2048: i.pansharpen ist auf 8-Bit-Bilder beschränkt . Andererseits verstehe ich Dinge möglicherweise einfach nicht und kann i.pansharpen daher nicht richtig verwenden ...?Ich habe hoch und niedrig gesucht und ich glaube, ich habe die Wurzel meiner Probleme entdeckt. Ich glaube, ich habe jetzt die Lösung für sie - aber es ist ein bisschen chaotisch. Ich bin sicher, es gibt bessere Möglichkeiten, sie zu lösen. Teilen Sie, wenn Sie einen einfacheren Weg kennen!
WURZELN VON PROBLEMEN:
i.landsat.toar
erfolgt in Gleitkomma . Ich habe festgestellt, dass bei Verwendung von Gleitkomma-Rastern bei jeder Pan-Sharpening-Methode die Farben durcheinander geraten. Diese Algorithmen bevorzugten Raster in der ursprünglichen Ganzzahlform.i.pansharpen
undi.fusion.brovey
Module bringen die Farben durcheinander . Ich habe die Algorithmen, die sie in diesen Modulen verwendet haben, nicht ganz verstanden - aber irgendwie werden die Farbtabellen betroffen sein und die resultierenden pan-geschärften Bilder ruinieren.LÖSUNG:
i.landsat.toar
float nach int mitr.recode
.i.rgb.his
undi.his.rgb
). Ich halte mich voni.pansharpen
und ferni.fusion.brovey
.DER WORKFLOW:
Mit
r.info
dem-r
Flag verwenden, um die DN-Min- und Max-Werte aller Raster-Bänder abzurufen, mit denen verarbeitet wurdei.landsat.toar
. Beispielsweise:Wie wir sehen können, liegen die Werte zwischen 0 und 1, was sich ziemlich von den ursprünglichen Werten unterscheidet (die zwischen 0 und 255 liegen). Dies erklärt, warum die Ausgabe des Pan-Schärfens leer war, da der verwendete Wertebereich sehr niedrig ist (unter 1).
Konvertieren Sie das Rasterband mit
r.recode
. Verwenden Sie die aus Schritt 1 erhaltenen Min- und Max-Werte, um in einen neuen Bereich von 0 bis 255 zu konvertieren. Ein Beispiel-Code-Snippet:Wir können die neu konvertierten Werte überprüfen mit
r.info
:Die Werte liegen zwischen 0 und 255: Jetzt kann es für den Pan-Sharpening-Prozess verwendet werden.
Wenden Sie die Graustufen-Farbtabelle mit auf das konvertierte Band an
r.colors
.Bisher erziele ich die besten Ergebnisse mit der grauen Farbtabelle - die pan-geschärften Verbundwerkstoffe stimmen eng mit den ursprünglichen Verbundwerkstoffen überein. Die anderen Alternativen sind das Ausgleichen der grauen Farbtabelle mit
color=grey.eq
oder das Verwenden der-e
Flagge mitcolor=grey
. Oder wir können dasi.landsat.rgb
Modul anstelle von verwendenr.colors
.Wiederholen Sie Schritt 1-3 mit anderen Rasterbändern, die wir als Verbundwerkstoffe verwenden möchten, einschließlich des Pan-Rasters (Band 8). Die Verwendung von Skripten wäre hier sehr willkommen.
Verwenden Sie dann die verarbeiteten Raster als Eingaben für die IHS-Pan-Sharpening-Methode . Zum Beispiel, wenn der Verbund aus Band 7,4,2 hergestellt wird:
Dadurch werden 3 Ebenen ausgegeben: eine Farbtonschicht
HUE
, eine IntensitätsschichtINT
und auch eine SättigungsschichtSAT
. Wir werden dann die IntensitätsschichtINT
durch das Pan-Raster-BandNEWBAND8
in ersetzeni.his.rgb
:Die resultierenden roten Kanäle von COMP742_red , COMP742_green , COMP742_blue können dann mit
d.rgb
oder kombiniert werdenr.composite
.BEISPIEL VOR UND NACH:
Vor dem Panschärfen:
Nach dem Pfannenschärfen:
Vielleicht ist es schwierig, die Unterschiede beim Schärfen zu erkennen , wenn man von so kleinen Bildern aus betrachtet. Wichtig ist jedoch, dass die Farbe des pan-geschärften Bildes mit dem Komposit des Originals übereinstimmt. Mission erfüllt!
WEITERE HINWEISE:
r.recode
die Wärmebänder (Band 6) .i.landsat.toar
Geben Sie diese Wärmebänder in Kelvin-Temperaturwerten aus (nichts mit DN-Werten zu tun). Halten Sie dier.recode
Routine auf den normalen Multispektral- und Pan-Bändern (Bänder 1-5,7,8).i.landsat.toar
, aber die resultierenden Verbundwerkstoffe wirklich falsch aussehen , liegt dies normalerweise an der Nichtübereinstimmung der Farbtabellen vor und nach dem Pan-Sharpening-Prozess. Ich haber.colors RASTER color=grey
vor dem Pan-Schärfen auf die ursprünglichen Rasterbänder und nach dem Pan-Schärfen auf die resultierenden Kanäle aufgetragen , um eine enge Farbabstimmung sicherzustellen.color=grey255
, die Ausgabe voni.landsat.rgb
ist incolor=grey.eq
. Kein Wunder, dass beide unterschiedlich aussehen!Hoffe, das würde jemandem nützen: Ich habe Tage gebraucht, um herauszufinden, was los ist.
quelle
r.mapcalc
zusammen mit ihrer integriertenint()
Funktion verwenden. Ich denke, esr.recode
ist nicht dazu gedacht, im Kontext Ihrer Bewerbung verwendet zu werden.i.pansharpen
besteht darin, dass 8-Bit-Rasterkarten als Eingabe erwartet werden, dh die Eingabewerte sollten zwischen 0 und 255 liegen.i.pansharpen
dies nur in grass7_trunk der Fall ist. Das ist die Entwicklungsversion ... :-)