【问题标题】:How to restrict summarizing rasters to cells with data (no-Nodata) in R如何将汇总栅格限制为 R 中具有数据(无数据)的单元格
【发布时间】: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)})",这给出了错误

标签: r arcgis raster no-data


【解决方案1】:

您可以检查所有 NA 值的函数:

fun=function(x){ifelse(x>quantile(x,0.995),quantile(x,0.995),x)}
fun(c(NA,NA,NA))
#Error in quantile.default(x, 0.995) : 
#  missing values and NaN's not allowed if 'na.rm' is FALSE

并修复它:

fun=function(x){ifelse(x>quantile(x,0.995,na.rm=T),quantile(x,0.995, na.rm=T),x)}
fun(c(NA,NA,NA))
# [1] NA NA NA

【讨论】:

    猜你喜欢
    • 2021-10-27
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    相关资源
    最近更新 更多