2016-01-14 2 views
0

У меня есть растровый слой с пробелами данных (r1), я хочу заполнить пробелы в нем, используя n число соседних ячеек при условии, что эти ячейки имеют общее значение в r2. Надеюсь, следующий пример может дать эту идею.Интерполирующие промежутки в растровом слое на основе другого слоя

library(raster) 
r1 <- raster(ncol=4, nrow=4) 
r1[] <- c(1:6,NA,4:9,NA,1,2) 

r2 <- raster(ncol=4, nrow=4) 
r2[] <- c(1,1,2,2,1,1,2,2,3,3,4,4,3,3,4,4) 

ответ

0

Вы предоставляете два набора данных, но не пример. То есть вы не объясняете, каким бы вы хотели, чтобы результат был. Ни один из соседних клеток NA клеток в r1 не имеют такое же значение, как эти клетки в r2 (только самой первой ячейки r1 и r2 имеют одинаковое значение, так что кажется, что не существует никакого решения.)

Возможно, это то, что вы ищете:

s <- overlay(r1, r2, fun=function(x,y){ y <- x == y; y[!y] <- NA; y }) 
x <- focal(s, w=matrix(1,5,5), fun=mean, na.rm=TRUE, pad=T) 
r <- cover(r1, x) 
+0

спасибо за ответ, может быть, я должен сказать это так: '' r2' имеет 4' категории, я хочу, чтобы заполнить пробелы в 'r1', используя все клетки с той же категорией в 'r2'. В этом случае первое NA имеет значение 2 в 'r2', поэтому все соседние ячейки со значением' 2' в 'r2' должны использоваться для заполнения пробела. –

 Смежные вопросы

  • Нет связанных вопросов^_^