ArcPy 中是否有等同于 FuzzyOverlay( ,"AND") 的 R 函数?
Is there an R function equivalent to FuzzyOverlay( ,"AND") in ArcPy?
我正在 运行 将适用性模型从 arcpy 转移到 R 中,并试图找到执行类似于 FuzzyOverlay 的模糊叠加的函数或包。哪些 R 操作会产生与 ArcPy 中的 fuzzyOverlay( , "AND") 函数相同的输出?
我的模型生成具有 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")
我想要一个 returns、ESRI's description、"the minimum of the fuzzy memberships from the input fuzzy rasters" 的输出,最好是光栅格式。
我在正确的轨道上吗?
鉴于描述 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)
我正在 运行 将适用性模型从 arcpy 转移到 R 中,并试图找到执行类似于 FuzzyOverlay 的模糊叠加的函数或包。哪些 R 操作会产生与 ArcPy 中的 fuzzyOverlay( , "AND") 函数相同的输出?
我的模型生成具有 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")
我想要一个 returns、ESRI's description、"the minimum of the fuzzy memberships from the input fuzzy rasters" 的输出,最好是光栅格式。 我在正确的轨道上吗?
鉴于描述 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)