到目前为止,我在ArcGIS的栅格计算器中使用了以下语句:
Con(("Land_use.rst" == -20), "Export.rst")
这会计算一个新栅格,其中仅包含来自导出的数据,其中 Land_use 等于 -20。这正是我想要的。但我想自动化这个R
,因为我必须这样做很多次。
到目前为止我得到了这样的东西:
for (catch_dir in Dir_List) {
r1 <- raster(paste0(catch_dir, '/Export.rst'))
r2 <- raster(paste0(catch_dir,'/LAND_use.rst'))
### statement that output export_streams.rst contains the data of export.rst where LAND_use.rst equals -20.
x <- overlay(r2, r1, fun=function(x,y){ y[x!=-20] <- 0; y})
writeRaster(x, filename = paste0(catch_dir, "/export_streams.rst"), format="IDRISI", NAflag = 0, datatype = "FLT4S",
overwrite=TRUE)
}
该代码执行以下操作:
它生成一个包含 r1 值(其中 r2 = -20)的栅格。这很好,但栅格边界处也有剩余部分,它们不等于 r2 中的 -20。不过,两个栅格的范围是相同的。所以覆盖可能不适合我的任务。除了叠加还有其他想法吗?也许有一些if(r2 == -20){ }
命令?