使用类似 dplyr 的命令在 R 中组织栅格数据
Using dplyr-like commands to organise raster data in R
我有三个全局土壤纹理栅格(sand
、clay
和 silt
)。我想根据 sand
、clay
和 silt
的相对百分比将这些栅格合并为一个具有两个类别(coarse
和 fine
)的栅格。在以这种方式使用 dataframe 之前,我已经这样做过:
kiwi <- kiwi %>% mutate(group = case_when(
clay_value_avg < 20 ~ "coarse",
silt_value_avg > 80 ~ "coarse",
clay_value_avg > 20 ~ "fine",
silt_value_avg < 80 ~ "fine"
))
我可以用 raster 做这样的事情吗?谢谢,
您不能使用这种语法,但还有其他方法
这就是您如何创建一个简单且独立的可重现示例
library(raster)
clay <- silt <- raster(ncol=10, nrow=10)
values(clay) <- 1:100
values(silt) <- 99:0
这是一种方法
fine <- silt < 80 & clay > 20
coarse <- !fine
还有一个
f <- function(s, c) {
s < 80 & c > 20
}
fine <- overlay(silt, clay, fun=f)
我有三个全局土壤纹理栅格(sand
、clay
和 silt
)。我想根据 sand
、clay
和 silt
的相对百分比将这些栅格合并为一个具有两个类别(coarse
和 fine
)的栅格。在以这种方式使用 dataframe 之前,我已经这样做过:
kiwi <- kiwi %>% mutate(group = case_when(
clay_value_avg < 20 ~ "coarse",
silt_value_avg > 80 ~ "coarse",
clay_value_avg > 20 ~ "fine",
silt_value_avg < 80 ~ "fine"
))
我可以用 raster 做这样的事情吗?谢谢,
您不能使用这种语法,但还有其他方法
这就是您如何创建一个简单且独立的可重现示例
library(raster)
clay <- silt <- raster(ncol=10, nrow=10)
values(clay) <- 1:100
values(silt) <- 99:0
这是一种方法
fine <- silt < 80 & clay > 20
coarse <- !fine
还有一个
f <- function(s, c) {
s < 80 & c > 20
}
fine <- overlay(silt, clay, fun=f)