Есть ли R-функция, эквивалентная FuzzyOverlay (, "AND") в ArcPy? - PullRequest
0 голосов
/ 01 мая 2019

Я перевожу модель пригодности из arcpy в R и пытаюсь найти функцию или пакет, который выполняет нечеткое наложение, подобное FuzzyOverlay .Какие операции R будут производить тот же вывод, что и функция fuzzyOverlay (, "AND") в ArcPy?

Моя модель создает промежуточные растровые слои со значениями 0-100, которые я пытаюсь наложить через нечеткое членство

Я пробовал fuzzySim :: fuzzyOverlay, но не уверен, что они выполняют одну и ту же операцию.Входные данные моей модели имели значения 0-100, которые отлично работали в arcpy fuzzyOverlay, но fuzzySim :: fuzzyOverlay выдавал ошибку до тех пор, пока я не изменил значения до 0-1.Ниже приведена попытка воспроизвести код, но, опять же, нет уверенности в том, что эта функция будет использоваться.

#make 4 rasters
r1 <- raster(xmn = -100, xmx = -60, ymn = 25,  ymx = 50,  res = c(1,1)) 
r2 <- r1
r3 <- r1
r4 <- r1

#fill with random values
r1[] <- runif(ncell(r2), 0, 1)
r2[] <- runif(ncell(r2), 0, 1)
r3[] <- runif(ncell(r3), 0, 1)
r4[] <- runif(ncell(r3), 0, 1)

#stack rasters
rs <- stack(r1, r2, r3, r4)

#perform fuzzyOverlay
xy <- fuzzyOverlay(rs, op = "fuzzy_and")

Я хочу вывод, который возвращает, в соответствии с описанием ESRI , "минимум нечеткого членства от входных нечетких растров ", в идеале в растровом формате.Я на правильном пути?

1 Ответ

1 голос
/ 01 мая 2019

Учитывая различия fuzzyAndValue = min(arg1, ..., argn) Я думаю, что это просто min функция:

#make 4 rasters
r1 <- raster(xmn = -100, xmx = -60, ymn = 25,  ymx = 50,  res = c(1,1)) 
r2 <- r1
r3 <- r1
r4 <- r1

#fill with random values
r1[] <- runif(ncell(r2), 0, 1)
r2[] <- runif(ncell(r2), 0, 1)
r3[] <- runif(ncell(r3), 0, 1)
r4[] <- runif(ncell(r3), 0, 1)

#stack rasters
rs <- stack(r1, r2, r3, r4)

#perform fuzzyOverlay
xy <- min(rs)
plot(xy)
...