衛星画像の NDVI を使用した灌漑インベントリの場合、Landsat 8 画像を DN から反射率に変換する必要があります。R には、変換する関数を持つ 2 つのパッケージ (Landsat と Landsat8) がありますが、これらの関数の出力は大きな「数値」クラスにあります。
入力が異なります: SpatialGridDataframe (関数の説明を参照)。両方の方法を試しましたが、それらをラスターまたは SpatialGridDataframe に変換することはできません。「数値」クラスは、さらなる計算 (NDVI、画像補正、またはプロット) には適していません。これを変換する方法はありますか?助けてもらえますか?
ありがとう!
#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..