我想根据另一个栅格的值在R中创建一个新的栅格。我可以使用CON工具在ArcGIS中执行此操作,但我似乎无法在R中找到方法。以下是我所做的:
r<-raster("b1.tif")
if (r>33){
r2<-200
}else{
r2<--0.156*r^2 + 11.2*r + 0.1
}
以上是返回错误:
Error in if (slp > 33) { : argument is not interpretable as logical
我哪里错了?
答案 0 :(得分:0)
r < 33
不起作用,因为您正在将类“rasterLayer”的对象与整数进行比较。你必须比较tiff的值(如max)。
r <- raster("b1.tif")
if (r@data@max > 33){
r2 <- 200
}else{
r2 <-- 0.156*r^2 + 11.2*r + 0.1
}
如果您想访问tiff的所有值,请执行:r@data@values
根据这个值,您可以创建第二个tiff。
如果你想复制整个tiff,请执行:r <- r2