Извлечение значения растра с координатами xy и xy буфера - PullRequest
1 голос
/ 06 апреля 2020

У меня есть некоторые трудности, если я хочу также получить координаты внутри буфера, соответствующие каждому значению в моем результате extract. В моем примере:

library(raster)

#Simulation of raster and some coordinates
r <- raster(ncol=36, nrow=18)
r[] <- 1:ncell(r)
xy <- cbind(-50, seq(-80, 80, by=20))

#Get coordinates of raster cells
v <- extract(x = r, 
                 y = xy, 
                 buffer=100,
                 df=TRUE)
cbind(v,coordinates(r))

Error in cbind(v, coordinates(r)) : 
  number of rows of matrices must match (see arg 2)

Очевидно, потому что у меня есть список, который представляет каждый буфер и известное решение:

ee <- t(data.frame(result))
rownames(ee) <- NULL
data.frame(xy, ee)

Это не работает, потому что я могу восстановить только координаты XY и не каждый xy значений пикселей внутри буфера тоже.

Какое решение для меня, у меня есть выходной кадр данных с координатами xy и xy буфера для каждого извлеченного значения, как:


##         cells layer x   y   x_buffer y_buffer
##  [1,]   626   626   -45 -85 -44     -84
...

1 Ответ

0 голосов
/ 07 апреля 2020
# get xy from buffer cells
cell <- extract(r, xy, buffer=100, cellnumbers=T)
xy_b <- xyFromCell(r, do.call(rbind, cell)[,1])
res<-NULL
res <- do.call(rbind, cell)
RES<-cbind(res,xy,xy_b)
colnames(RES)<-c("cells","layer","x","y","x_buffer","y_buffer")
head(RES)
     cells layer    x y x_buffer y_buffer
[1,]  4909  4909 -150 0   -149.4      0.9
[2,]  4937  4937  -50 0    -48.6      0.9
[3,]  4964  4964   50 0     48.6      0.9
[4,]  4992  4992  150 0    149.4      0.9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...