Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Переклассифицируйте растр на основе другого растра в R

Автор вопроса: Geo-spОтветов: 1

У меня 2 растра:

library ('raster')
r1=raster(matrix(1:4,nrow=2))
r2=raster(matrix(runif(16),nrow=4))

Я хочу переклассифицировать все значения во втором растре, которые имеют значение == 1 в первом растре. Спасибо!

  • Сделайте свой код воспроизводимым, добавив, какой пакет требуется для предоставления функции raster. SabDeM 04.08.2015

rraster

Ответы

Ответ 1 · рейтинг 1 · Robert Hijmans

Есть несколько способов добиться этого. Например

library(raster)
r1 <- raster(matrix(1:4, nrow=4, ncol=4))
r2 <- raster(matrix(runif(16),nrow=4))
x <- overlay(r1, r2, fun=function(x,y){ y[x==1] <- 0; y})

Вместо оверлея можно использовать calc(stack(r1, r2)). Вы также можете использовать комбинацию reclassify и cover

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы