如何更新R中具有x,y像元索引的栅格?

时间:2019-06-27 17:06:11

标签: r raster

我有典型的栅格:

r <- raster(nrow=100, ncol=100)
r[] = 0
r <- writeRaster(r, 'test.tif', overwrite=TRUE, datatype='INT2S')

我需要更新10x10网格的最后一列,除了第一个和最后一个正方形。所以基本上,这就是我要应用的:

update(r, rep(255, 10*10), dx=(91:100), dy=(11:90))

,但没有dxdy这样的参数,而是cell参数。如何重新计算它以具有代替x,y索引的单元格?

1 个答案:

答案 0 :(得分:1)

r <- raster(nrow=10, ncol=10, vals=0)

您可以执行此操作而不是更新

r[2:(nrow(r)-1), ncol(r)] <- 10

或首先计算单元格编号

cells <- cellFromRowCol(r, 2:(nrow(r)-1), ncol(r))
r[cells] <- 25

或将单元格号与update

一起使用
rr <- writeRaster(r, 'test.tif', overwrite=TRUE, datatype='INT2S')
# rr <- update(rr, rep(255, ncol(r)-2), cells)
rr <- update(rr, 255, cells)

看看

as.matrix(rr)
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,]    0    0    0    0    0    0    0    0    0     0
# [2,]    0    0    0    0    0    0    0    0    0   255
# [3,]    0    0    0    0    0    0    0    0    0   255
# [4,]    0    0    0    0    0    0    0    0    0   255
# [5,]    0    0    0    0    0    0    0    0    0   255
# [6,]    0    0    0    0    0    0    0    0    0   255
# [7,]    0    0    0    0    0    0    0    0    0   255
# [8,]    0    0    0    0    0    0    0    0    0   255
# [9,]    0    0    0    0    0    0    0    0    0   255
#[10,]    0    0    0    0    0    0    0    0    0     0