Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索输出光栅比较R中的两个评级器层_R_Statistics_Geospatial_Raster_R Raster - Fatal编程技术网

检索输出光栅比较R中的两个评级器层

检索输出光栅比较R中的两个评级器层,r,statistics,geospatial,raster,r-raster,R,Statistics,Geospatial,Raster,R Raster,我有两个尺寸为(78017651)的光栅层。我想将一个光栅层的每个像素与另一个进行比较,并创建一个新的光栅,该光栅在最初的两个光栅中具有最小像素值。也就是说,如果光栅1的任何i,j像素的值为25,而光栅2的相同i,j像素的值为20,则在输出光栅中,i,j像素应为20。您可以使用两个光栅层的min。 让我们从一个可复制的示例开始: library(raster) r1 <- raster(ncol = 5, nrow = 5) r1[] <- 1:ncell(r1) plot(r1)

我有两个尺寸为
(78017651)
的光栅层。我想将一个光栅层的每个像素与另一个进行比较,并创建一个新的光栅,该光栅在最初的两个光栅中具有
最小像素值。也就是说,如果光栅1的任何i,j像素
的值为25,而光栅2的相同i,j像素的值为20,则在输出光栅中,
i,j像素
应为20。

您可以使用两个光栅层的
min

让我们从一个可复制的示例开始:

library(raster)
r1 <- raster(ncol = 5, nrow = 5)
r1[] <- 1:ncell(r1)
plot(r1)
r2 <- raster(ncol = 5, nrow = 5)
r2[] <- ncell(r2):1
par(mfrow = c(1,3))
plot(r1)
plot(r2)
之后,可以对这些值应用函数

r3[] <- apply(cbind(r1[], r2[]), 1, min)

r3[]以@loki为例,您还有三个选项可以计算两层的最小值:

library(raster)

calc(stack(r1,r2),fun=min,na.rm=T)

stackApply(stack(r1,r2),indices = c(1,1),fun='min',na.rm=T)

overlay(r1,r2,fun=min,na.rm=T)

我尝试了,但输出光栅没有最小值。b1是具有上述值范围的光栅:0、16637(最小值、最大值),b2也是具有值0、16961(最小值、最大值)的光栅,当我使用此最小值函数时,得到的输出范围为0、24838(最小值、最大值)光栅是陆地卫星8波段。请查看。由于您似乎在处理大型LS8数据,请尝试用一个较小的示例来说明大型数据集的错误/困难。
r3[] <- apply(cbind(r1[], r2[]), 1, min)
library(raster)

calc(stack(r1,r2),fun=min,na.rm=T)

stackApply(stack(r1,r2),indices = c(1,1),fun='min',na.rm=T)

overlay(r1,r2,fun=min,na.rm=T)