Получить координаты растровой ячейки, используя функцию 'cal c' в R - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь запустить функцию 'cal c' в R и не могу найти способ получить координаты обрабатываемой ячейки. Я просто пытаюсь сделать это: используя функцию 'cal c' для двоичного растра (0 и 1). Если значение растра равно '0', то измените значение на 'NA'. Если значение растра равно '1', тогда примените серию процессов, для которых мне потребуется, чтобы координаты ячейки были сохранены в переменных.

processAllCells = function(cell) {
  if (cell == 0) {
    cell = NA
    return(cell) 
  }
  else {
    cellCoords = coordinates(cell) ### This is what I'm trying to do. This does not work. See the error message.
    ### Here will go further processes using the cell coordinates.
    return(cell)
  }
}

outputRaster = calc(lake, processAllCells)

Сообщение об ошибке:

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘coordinates’ for signature ‘"integer"’
In addition: Warning message:
In if (cell == 0) { :

 Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘coordinates’ for signature ‘"integer"’ 

Спасибо всем!

1 Ответ

0 голосов
/ 19 марта 2020

Это невозможно. Но вы можете создать RasterLayer с координатами x и y и использовать их в calc.

library(raster)
r <- raster(nrow=10, ncol=10, values=1:100)
x <- init(r, "x")
y <- init(r, "y")

А потом

s <- stack(r, x, y)
#x <- calc(s, your-function)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...