r-使用光栅化函数的问题



我对R很陌生,所以我希望你们能帮助我完成这一步,因为我很困。

我有一张表,上面有监测点(坐标(和每个监测点的水质指数。我正试图用光栅化功能从这个表创建一个光栅:

rasterize(x, raster, field, fun=mean, backgroud=0, update=TRUE)

x=坐标为的数据帧

raster=使用引用光栅的范围、nrows、ncols等创建。

field=使用水质指数数据创建的矢量。每个值都属于x表中的一个点。

fun=mean=我需要同一单元格中所有点的平均值。

background=0以完成没有从字段派生值的单元格。

update=TRUE因此单元格中的值用矢量值更新

运行后,我得到了一张带有正确扩展但没有数据的地图(全部为空(和下一个摘要(有时我得到的是NA或2,而不是5,不知道为什么(:

Min.            5
1st Qu.         5
Median          5
3rd Qu.         5
Max.            5
NA's    215695154

我认为问题出在函数上,但我不确定。我试着按如下方式更改函数,但得到了相同的结果。

na.rm=mean(na.omit(v))
raster.wq=rasterize(xy, raster, v, fun=function(v,na.rm)mean(v), backgroud=0, update=TRUE)

事先非常感谢。干杯

下一次包含一个可重复的最小示例。但是,您必须在函数中包含...参数,如rasterize文档中所述:

如果x表示点,fun必须接受na.rm参数,无论是显式的还是通过"dots"。

所以你可以这样做:

library(raster)
#generate data
r <- raster(ncols=36, nrows=18)
n <- 1000
set.seed(123)
x <- runif(n) * 360 - 180
y <- runif(n) * 180 - 90
z <- sample(1:1000,n)
xy <- cbind(x, y)
#rasterize
s <- rasterize(xy, r, z, fun=function(x,...)mean(x,na.rm=T), backgroud=0, update=TRUE)
plot(s)

相关内容

  • 没有找到相关文章

最新更新