Ilekroć próbuję PAN-wyostrzyć kompozytów niektórych zdjęć Landsat w trawie przy użyciu i.pansharpen
, i.fusion.brovey
lub IHS ostrzenie metody, wyjście będzie mieć niektóre lub wszystkie z następujących cech:
- kolor kompozytu ma inny odcień niż kompozyt nieostrzony
- poziom jasności jest pomieszany
- cały kompozyt stał się całkowicie biały / całkowicie czarny (przy użyciu obrazów poddanych obróbce wstępnej do korekcji współczynnika odbicia w górnej części atmosfery lub powierzchni
i.landsat.toar
)
Próbowałem także wszystkich następujących; ale kolory / jasność pozostały takie same lub pogorszyły się:
- Stosowany
i.landsat.rgb
przed i po procesie ostrzenia na patelni - Grał z flagą
-f
lub-p
wi.landsat.rgb
- Próbowałem
r.colors
edytować tabelę kolorów na grey / grey255 / grey.eq - Próbowałem
i.pansharpen
przy użyciu wszystkich metod Brovey / IHS / PCA - Grał z
-l
flagą w,i.pansharpen
aby przywrócić równowagę niebieskiego kanału
W podręczniku GRASS GIS wyjaśniono, jak wykonywać wyostrzanie panwiowe i równoważenie kolorów, ale nie mogę wymyślić, jak połączyć oba procesy w równoległym przepływie pracy. Podejrzewałem, że wynika to z mojego słabego zrozumienia tabel kolorów, histogramu kolorów itp. W GRASS.
Czy ktoś może mi zatem wyjaśnić - jak radzisz sobie z problemami wyrównywania kolorów w przypadku obrazów Landsat po przetworzeniu w GRASS? Czy możesz podzielić się ze mną swoimi ulubionymi przepływami pracy / metodami?
Wielkie dzięki za wszelkie opinie!
i.pansharpen
obsługiwać wszystkie rodzaje formatów. Proszę spojrzeć na powiązany „bilet”: Bilet nr 2048: i.pansharpen ograniczony do zdjęć 8-bitowych . Z drugiej strony po prostu mogę nie rozumieć rzeczy, a zatem nie jestem w stanie prawidłowo używać i.pansharpen ...?Szukałem wysoko i nisko i myślę, że odkryłem źródło moich problemów. Wydaje mi się, że mam dla nich teraz rozwiązanie - ale jest trochę niechlujne. Jestem pewien, że są lepsze sposoby ich rozwiązania. Udostępnij, jeśli znasz prostszy sposób!
KORZENIE PROBLEMÓW:
i.landsat.toar
są w zmiennoprzecinkowe . Uświadomiłem sobie, że kiedy używam rastrów zmiennoprzecinkowych w dowolnej metodzie ostrzenia, kolory się popsują. Algorytm ten w jakiś sposób preferował rastry w oryginalnej liczbie całkowitej.i.pansharpen
ii.fusion.brovey
moduły, psują kolory . Nie do końca rozumiem algorytmy zastosowane w tych modułach - ale jakoś wpłynie to na tablice kolorów i zrujnuje powstałe obrazy z wyostrzonymi obrazami.ROZWIĄZANIE:
i.landsat.toar
float na int, używającr.recode
.i.rgb.his
ii.his.rgb
). Unikam używaniai.pansharpen
ii.fusion.brovey
.PRZEBIEG PRACY:
Użyj
r.info
wraz z-r
flagą, aby uzyskać wartości DN min i max dla każdego pasma rastrowego, które zostały przetworzonei.landsat.toar
. Na przykład:Jak widzimy, wartości mieszczą się w zakresie od 0 do 1, które są dość różne od pierwotnych (które wynoszą od 0 do 255). To wyjaśnia, dlaczego wynik z wyostrzania panwiowego okazał się pusty, ponieważ zastosowany zakres wartości jest bardzo niski (poniżej 1).
Konwertuj pasmo rastrowe za pomocą
r.recode
. Użyj wartości minimalnej i maksymalnej uzyskanych w kroku 1, aby przeliczyć na nowy zakres 0–255. Przykładowy fragment kodu:Możemy sprawdzić nowe przekonwertowane wartości za pomocą
r.info
:Wartości mieszczą się w zakresie 0–255: teraz można to wykorzystać do procesu ostrzenia na patelni.
Zastosuj tabelę kolorów w skali szarości do przekonwertowanego pasma za pomocą
r.colors
.Do tej pory najlepsze wyniki osiągam przy użyciu szarej tabeli kolorów - kompozyty wyostrzone na patelni ściśle pasują do oryginalnych kompozytów. Inne alternatywy to wyrównanie tabeli szarości za
color=grey.eq
pomocą lub przy użyciu-e
flagi zcolor=grey
. Lub możemy użyći.landsat.rgb
modułu zamiastr.colors
…Powtórz krok 1-3 z innymi pasmami rastrowymi, które zamierzamy wykorzystać jako kompozyty, w tym z panoramowaniem rastrowym (pasmo 8). Bardzo mile widziane byłoby użycie skryptów.
Następnie użyj przetworzonych rastrów jako danych wejściowych w metodzie ostrzenia IHS . Na przykład podczas tworzenia kompleksu pasma 7,4,2:
Spowoduje to wygenerowanie 3 warstw: warstwy odcienia, warstwy
HUE
intensywnościINT
, a także warstwy nasyceniaSAT
. Następnie zastąpimy warstwę intensywnościINT
pasmem rastrowymNEWBAND8
wi.his.rgb
:Powstałe czerwone kanały COMP742_red , COMP742_green , COMP742_blue można następnie połączyć za pomocą
d.rgb
lubr.composite
..PRÓBKA PRZED I PO:
Przed ostrzeniem na patelni:
Po ostrzeniu na patelni:
Może trudno odróżnić różnice w wyostrzaniu , patrząc na tak małe obrazy. Ale ważny jest kolor wyostrzonego obrazu dopasowanego do kompozytu z oryginału. Misja zakończona sukcesem!
INNE NOTATKI:
r.recode
pasma termiczne (pasmo 6) .i.landsat.toar
wyprowadzaj te pasma termiczne w wartościach temperatury Kelvina (nie ma to nic wspólnego z wartościami DN). Zachowajr.recode
rutynę na normalnych pasmach wielu widmowych i pan (pasma 1-5,7,8).i.landsat.toar
, ale powstałe kompozyty wyglądają naprawdę źle , zwykle dzieje się tak z powodu niedopasowania tabel kolorów przed i po procesie wyostrzania. Nakładałemr.colors RASTER color=grey
na oryginalne paski rastrowe przed wyostrzaniem pan i na powstałe kanały po wyostrzaniu pan, aby zapewnić dokładne dopasowanie kolorów.color=grey255
, a wyjściei.landsat.rgb
jest włączonecolor=grey.eq
. Nic dziwnego, że oba wyglądają inaczej!Mam nadzieję, że komuś to przyniesie korzyść: zajęło mi kilka dni, aby dowiedzieć się, co jest nie tak.
źródło
r.mapcalc
wraz ze zintegrowanąint()
funkcją. Myślę, żer.recode
nie należy go używać w kontekście twojej aplikacji.i.pansharpen
jest to, że oczekuje on 8-bitowych map rastrowych jako danych wejściowych, tzn. Wartości wejściowe powinny zawierać się w przedziale od 0 do 255.i.pansharpen
jest tylko w grass7_trunk. To jest wersja rozwojowa ... :-)