我有典型的栅格:
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))
,但没有dx
和dy
这样的参数,而是cell
参数。如何重新计算它以具有代替x,y索引的单元格?
答案 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