首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用栅格函数的问题

使用栅格函数的问题
EN

Stack Overflow用户
提问于 2020-10-24 18:54:58
回答 1查看 259关注 0票数 0

我在R是新来的,所以我希望你们能在这一步上帮我,因为我被困住了。

我有一个有监测点(坐标)的表格和每个监测点的水质指数。我试图从这个表中创建一个具有光栅功能的光栅:

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

具有坐标的x=数据

raster=使用范围、行、ncols等引用栅格创建。

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

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

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

update=TRUE,因此单元格中的值得到了向量值的更新。

运行此命令后,我得到了一个具有严格扩展的地图,但没有任何数据(全部为空白)和下一个摘要(有时我得到的是NA‘s或2 s而不是5’s,不知道为什么):

代码语言:javascript
复制
Min.            5
1st Qu.         5
Median          5
3rd Qu.         5
Max.            5
NA's    215695154

我认为问题出在功能上,但我不确定。我试图按如下方式更改函数,但结果是相同的。

代码语言:javascript
复制
na.rm=mean(na.omit(v))
raster.wq=rasterize(xy, raster, v, fun=function(v,na.rm)mean(v), backgroud=0, update=TRUE)

先谢谢你。干杯。

EN

回答 1

Stack Overflow用户

发布于 2021-04-24 08:38:04

下一次包括一个minimal reproducible exampe。但是,您必须在函数中包含...参数,如rasterize文档中所述:

如果x代表点,则

必须接受na.rm参数,无论是显式还是通过“点”。

所以你可以这样做:

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64516943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档