Für ein Bewässerungsinventar, das den NDVI von Satellitenbildern verwendet, muss ich Landsat 8 Bilder von DN auf Reflexionsgrade umwandeln. In R gibt es zwei Pakete (Landsat und Landsat8), die Funktionen zum Konvertieren haben, jedoch ist die Ausgabe dieser Funktionen in einer großen 'numerischen' Klasse.R: Landsat8 DN zur Reflektanzumwandlung
Die Eingabe ist anders: SpatialGridDataframe (siehe Funktionsbeschreibung). Ich habe beide Methoden ausprobiert, aber es funktioniert nicht, um sie in ein Raster oder SpatialGridDataframe zu konvertieren. Die ‚numerische‘ Klasse ist für weitere Berechnungen (NDVI, Bildkorrekturen oder Plotten nicht geeignet. Es gibt eine Möglichkeit, dies zu konvertieren? Könnten Sie mir?
helfenDank!
#BAND 4
R4 <- list()
R4 <- lapply(j, FUN = function(x) {raster(paste0('LC81700merged2014',x,'LGN00_B4.tif'))})
names(R4) <- paste0("R4",j)
Jab=readShapeSpatial('E:/Maps/GIS Data/Jabi IrrigationSchemes/Jabi_Irrigation_Schemes_UTM.shp')
CR <- lapply(R4, FUN=function(x) {crop(x, extent(Jab), snap="out")})
y <- stack(CR) # stack as RasterStack
ty <- as(y, "SpatialGridDataFrame")
#landsat8- package:
ytest <- reflconv(ty$R4016,2.0E-5,-0.1)
class(ytest) #numeric class
ytest[ytest==-0.1] <- NA
tsa <- as.raster(ytest, max=1)
class(tsa) #raster Object
y.tsa <- rasterize(tsa,background=NA,mask=FALSE, update=FALSE) #not working
#alternative landsat-package
jan16 <-radiocorr(ty$R4016,Grescale=L.var[4,4],Brescale=L.var[4,5],sunelev=SunEvel[1,2],edist=ESdist('2014-01-16'),
Esun=L.var[4,6],method= "apparentreflectance")
class(jan16) #numeric class again..
Jep, Sie haben den Fehler gefunden .. Die eine Schicht war in der Tat der Punkt. Danke vielmals! – Doris