【发布时间】:2016-01-07 16:44:14
【问题描述】:
在 R 中创建 RSF 图时,我遇到了 NoData/NA 的一些问题 使用从 ArcGIS 10 导入的栅格数据。
我的栅格是
a) 河流的属性(在ArcGIS 10 to0、1和NoData中重新分类河流外)
b) 与房屋的距离
我需要将最终地图限制在河流中,但不知何故 周边区域包含在生成的地图中,甚至显示高度 符合条件的河流以外的地区。在绘制河流的单个栅格时,它们看起来很好,在河流之外没有隐藏数据
我猜这个错误发生在我对栅格求和的地方。一世 假设当我对栅格求和时,只有没有 NA 数据的单元格是 包括在内,但这可能是我的大错误。因此我该如何排除 以最简单有效的方式去河流以外的地区?
您可以在下面找到我正在使用的脚本。
# Import Raster to R using the library(raster)
Raster1 <-raster("Raster1")
Raster2 <-raster("Raster2")
Raster3 <-raster("Raster3")
RasterD <-raster("RasterD")
# Create a raster stack and do raster multiplications
model_stack<-raster::stack(Raster1,Raster2, Raster3, RasterD)
# assign the beta coefficients (stemming from glmer)
mean_search<-fixef(mod)
# multiply the rasters by the coefficients
model_stack_coef<-model_stack*mean_search
# Sum over all rasters - creates a single raster
pre_ssf <- calc(model_stack_coef, fun=sum)
# multiply by the power of exp
ssf<-calc(pre_ssf,fun=function(x){exp(x)})
# standardize between 0 and 1
ssf_p<-calc(ssf,fun=function(x){(x-min(x))/(max(x)-min(x))})
【问题讨论】:
-
这表明您的栅格没有
NA值,但可能为零。如果model_stack中的任何单元格具有NA,则该单元格的结果也将是NA。您的视觉评估可能是错误的。试试plot(Raster1); click(model_stack)(点击图查看值) -
谢谢你,罗伯特。这是一个非常方便的命令!我的栅格看起来不错,但现在标准化后我得到了一张空白地图。我尝试使用“ssf_trimquantile(x,0.995),quantile(x,0.995),x)}) 来修剪异常值,但出现错误'.calcTest(x[1:5], fun, na.rm, forcefun, forceapply) 中的错误:无法使用此函数'。我想这也与北美有关?
-
您的函数不起作用,因为您的“}”不匹配。
-
对不起,复制粘贴过程中出现错误:是"ssf_trimquantile(x,0.995),quantile( x,0.995),x)})",这给出了错误