我希望做一些“简单的”反距离称量。过去,我在gstat中使用过idw函数,但该函数停止了工作。我在同一软件包中找到了一个等效的idw0,但无法正常工作。此示例代码应在unknown.df数据帧的50个点上产生50个对z帽的估计。
library(gstat)
set.seed(1)
x<-runif(100,0,1)
y<-runif(100,0,1)
z<-runif(100,0,1)
known.df<-data.frame(x,y,z)
x<-runif(50,0,1)
y<-runif(50,0,1)
unknown.df<-data.frame(x,y)
idw<-idw0(z~1,known.df,unknown.df)
idw<-idw0(z~1,known.df,unknown.df,y=as.matrix(known.df$z))
这会产生错误
> idw<-idw0(z~1,known.df,unknown.df)
Error in spDists(s0, s) : ncol(x) == ncol(y) is not TRUE
> idw<-idw0(z~1,known.df,unknown.df,y=as.matrix(known.df$z))
Error in spDists(s0, s) : ncol(x) == ncol(y) is not TRUE
Y的长度为50,但是x是多少?
答案 0 :(得分:1)
需要明确表示坐标字段。
library(gstat)
library(sp)
set.seed(1)
x<-runif(100,0,1)
y<-runif(100,0,1)
z<-runif(100,0,1)
known.df<-data.frame(x,y,z)
coordinates(known.df) = ~ x + y
x<-runif(50,0,1)
y<-runif(50,0,1)
unknown.df<-data.frame(x,y)
coordinates(unknown.df) = ~ x + y
idw<-idw0(z~1,known.df,unknown.df)