Ich arbeite mit Landsat-Daten, die einige topographische Korrekturen unter Verwendung der von Hantson & Chuvieco (2010) vorgeschlagenen Methode machen, die eine Deckungstrennungsmethode basierend auf einem bestimmten NDVI-Wert beinhaltet, um zwischen vegetativ und nicht-vegetativ zu unterscheiden Bereiche.füge Multiband-Raster in r hinzu
Also gehe ich von einem Multiband-Raster-Objekt zu zwei, die nebeneinander verarbeitet und anschließend kombiniert werden, um die ursprüngliche, topographisch korrigierte Szene zu bilden.
Das Problem ist, dass ich einige NA-Werte in der Szene habe, also wenn ich sie nicht los werde, bekomme ich ein leeres Bild als Ergebnis. Ich benutze die sum
Funktion mit der Option na.rm
definiert als TRUE, um dieses Problem anzugehen, aber das Ergebnis ist ein Ein-Band-Raster-Objekt anstelle eines Stack-oder Rasterbrick-Objekt.
Dies ist mein Code:
#topographic correction
VEGB1TC<- topocorr(VEGB1,slopeG,aspectG,sunelev,sunazimuth,method="ccorrection",na.value=NA)
VEGB2TC<- topocorr(VEGB2,slopeG,aspectG,sunelev,sunazimuth,method="ccorrection",na.value=NA)
....
SDB1TC<- topocorr(SDB1,slopeG,aspectG,sunelev,sunazimuth,method="ccorrection",na.value=NA)
SDB2TC<- topocorr(SDB2,slopeG,aspectG,sunelev,sunazimuth,method="ccorrection",na.value=NA)
...
#rasterize corrected band and stack them
VB1<-raster(VEGB1TC)
VB2<-raster(VEGB2TC)
....
ADEVEG<-stack(VB1, VB2,...)
SB1<-raster(SDB1TC)
SB2<-raster(SDB2TC)
....
ADESD<-stack(SB1, SB2,...)
#-----------combine images-------
ADE<-sum(stack(ADEVEG,ADESD),na.rm=T)
Gibt es eine Funktion, die Multiband-Rastern mit einem na.rm
Tag hinzufügen können? Ich habe die do.call
Funktion gefunden, aber es scheint mir, dass es mehrere Raster zu einem Einbandobjekt zusammenfasst.
Danke für Ihre Hilfe.
ps: Hantson, S. Chuvieco, E. 2010. Auswertung verschiedener topographischer Korrekturmethoden für Landsat-Bilder. Internationale Zeitschrift für Angewandte Erdbeobachtung und Geoinformation 13 (2011): 691-700p.
Wenn Sie eine Reihe von Rasterebenen summieren Sie nur eine Band bekommen. Oder möchten Sie die Stacks ADEVEG und ADESD separat summieren und dann stapeln? Vielleicht möchten Sie tun ist ADE <-stack (Summe (ADEVEG, na.rm = T), Summe (ADESD, na.rm = T)) ' – rar
Ich möchte die beiden Stapel in eins zu verschmelzen, wie sie das darstellen unfruchtbare und bewachsene Teile einer Szene, die mehrere Bänder gleichzeitig kombinieren. Am Ende ersetzte ich nur NA vaues durch 0 manualy und fuhr damit fort, beide Stacks durch einfache Addition hinzuzufügen. Ihre Methode ist nicht das, was ich vorhabe, aber vielen Dank für die schnelle Antwort. –