Как обновить растр с индексами x, y клеток в R? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть примерный растр:

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?

1 Ответ

1 голос
/ 28 июня 2019
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...