gpt4 book ai didi

r - idw为我崩溃了R

转载 作者:行者123 更新时间:2023-12-03 17:07:25 25 4
gpt4 key购买 nike

我的任务是为某些空间数据生成距离反比加权估计。我发现,当只有一个已知点并且指定了最大距离时,使用idw会使R崩溃(版本3.3.2和3.4.2)。

library(sp)
library(gstat)

# THIS IS OK MORE THAN ONE KNOWN POINT
X<-c(15,4,20,0)
Y<-c(10,10,10,10)
P<-c(1,2,3,4)
known.df<-data.frame(X,Y,P)
coordinates(known.df)<- ~ X + Y

X<-c(10)
Y<-c(10)
unknown.df<-data.frame(X,Y)
coordinates(unknown.df)<- ~ X + Y

idwmodel = idw(P~1,known.df,unknown.df,maxdist=1,idp=2,debug.level=0)
idwmodel@data$var1.pred
idwmodel = idw(P~1,known.df,unknown.df,maxdist=5,idp=2,debug.level=0)
idwmodel@data$var1.pred
idwmodel = idw(P~1,known.df,unknown.df,maxdist=6,idp=2,debug.level=0)
idwmodel@data$var1.pred
idwmodel = idw(P~1,known.df,unknown.df,maxdist=10,idp=2,debug.level=0)
idwmodel@data$var1.pred

# THIS IS ALSO OK SINCE maxdist IS Inf
X<-c(15)
Y<-c(10)
P<-c(1)
known.df<-data.frame(X,Y,P)
coordinates(known.df)<- ~ X + Y

X<-c(10)
Y<-c(10)
unknown.df<-data.frame(X,Y)
coordinates(unknown.df)<- ~ X + Y

idwmodel = idw(P~1,known.df,unknown.df,maxdist=Inf,idp=2,debug.level=0)
idwmodel@data$var1.pred

# THIS CRASHES R
X<-c(15)
Y<-c(10)
P<-c(1)
known.df<-data.frame(X,Y,P)
coordinates(known.df)<- ~ X + Y

X<-c(10)
Y<-c(10)
unknown.df<-data.frame(X,Y)
coordinates(unknown.df)<- ~ X + Y

idwmodel = idw(P~1,known.df,unknown.df,maxdist=10,idp=2,debug.level=0)
idwmodel@data$var1.pred

在我看来,基于一个观察值进行估算是可以的,并且无论如何,从R中崩溃都不理想。您可能会说,如果只有一个已知点,那为什么还要打扰idw?好吧,我只知道idw使用maxdist值进行过滤后,有一个已知点。

有谁知道/建议有效的解决方法?目前,我在调用idw并将maxdist设置为Inf之前将maxdist过滤器应用于我的数据。但这意味着两次计算点距离,一次是我自己计算一次,然后是在idw中计算一次。

最佳答案

在具有R版本3.4.3(2017-11-30)的Linux机器上,我只是得到以下错误,并且在运行代码时不会崩溃。

Error in predict.gstat(g, newdata = newdata, block = block, nsim = nsim,  : 
value not allowed for: bbox with zero size: remove neighbourhood settings?

在您的情况下,我建议在GitHub上提交问题(请记住包括您的平台):
https://github.com/edzer/gstat/issues

关于r - idw为我崩溃了R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com