我现在想处理两张地图
这两张地图的地区是一样的
都是栅格图 不同的是 第一张地图上面是带云彩的 第二张没有
在第一张地图 像素值为0的栅格(grid)代表有云彩
现在我想用R写一个函数来找到第一张图内像素值为0栅格(grid)的行列坐标(在第几行 第几列)
然后把第二张地图内行列坐标相同的栅格(grid)的像素值改为NA
我的想法是写一个if loop来检测第一张图内像素值为0的栅格(grid)坐标
但是我发现if loop一旦测到不为0的值就会报错(TRURE FALSE value need)
请问该怎么做
这是我的code 谢谢
setwd("E:/Landsat-data-NASA atm-corrected/sample_day1")
restdir2 <- ("E:/Landsat-data-NASA atm-corrected/sample_day1")
n3 <- list.files(restdir2, pattern="*band4_clip_1.tif", full.names=TRUE)
n4 <- list.files(restdir2, pattern="*cloud_qa_clip_1.tif", full.names=TRUE)
本帖最后由 wangluan 于 2015-4-16 00:55 编辑
你首先要测试的是下面这段有没有问题,然后在封装成函数
x=10;y=10;
layer <- raster(n4)
layer2 <- raster(n3)
for(c in 1:x)
{
for(r in 1:y)
{
if(layer[c,r]==0)
{
nl<- layer2
nl[c,r]<-NA
writeRaster(nl, "cloud.tif")
}
else
{ layer[c,r]=layer2[c,r]}
}
}
> a=NA;if(a==0){}
Error in if (a == 0) { : missing value where TRUE/FALSE needed
不 我不是用画图
这两个图片是tiff格式的地图
我只是想要用R修改第二张图的一些像素值
然后创建一个新图可以用ArcGIS打开的