【发布时间】:2021-01-16 02:30:40
【问题描述】:
所以我有一个反射率数据框,前两列是 lon 和 lat,之后的每一列是一个波长(其中 z 是反射率值):
(但我将 lon 和 lat 之后的每一列的名称更改为“refl”)
#lon, lat, band1, band2, band3, band4, etc.
#x,y,z,z,z,z...
#x,y,z,z,z,z...
我正在尝试创建一个多层栅格,并且可以通过以下代码使用一层 (xyz):
data<-read.csv("data.csv)
layer1<-data[,c(1:3)] # to select the first two lon and lat column and the band1 column
x <- raster(xmn=151.9124, xmx=151.9146, ymn=-23.4473, ymx=-23.44518, res=0.00001, crs="+proj=longlat +datum=WGS84")
specras <- rasterize(layer1[, c('lon', 'lat')], x, layer1[, 'refl'], fun=mean)
this is how one raster layer looks like plotted
一旦我有了一个栅格层,我如何创建一个循环以将 data 中的所有后续列变成栅格层,然后将它们全部绑定以形成 RasterStack?我有大约 1000 个波段值/列。
希望以这种形式写一些东西,但似乎无法让它工作:
for (i in (3:ncol(data))){
layer<-data[,c(1:2,i)]
specrast<-rasterize(layer[, c('lon', 'lat')], x, layer[, 'refl'], fun=mean)
specbrick<-addLayer(specrast)
}
【问题讨论】: