我正在尝试通过lat& amp;空间插入海水pH数据集。长:
sample<-read.csv(file="Station locations 2016.csv", header=TRUE, sep=",", strip.white=T)
head(sample)
Station lat long pH
1 B17 -23.49174 152.0718 8.222411
2 B23 -23.49179 152.0718 8.199310
3 B26 -23.49182 152.0717 8.140428
4 B28 -23.49183 152.0717 8.100752
5 B30 -23.49185 152.0717 8.068141
6 B31 -23.49187 152.0717 8.048852
我已经根据纬度/经度数据中的现有范围创建了一个网格,并且想要插入pH值,以便我可以生成颜色编码的pH值图。以下代码一直有效,直到使用idw进行空间集成步骤,此时我得到以下错误:
library(ggplot2)
library(gstat)
library(sp)
x.range <- range(sample$long)
y.range <- range(sample$lat)
x<-seq(x.range[1], x.range[2], length.out=20)
y<-seq(y.range[1], y.range[2], length.out=20)
grd<-expand.grid(x,y)
coordinates(sample) = ~long+lat
coordinates(grd) <- ~ Var1+Var2
gridded(grd) <- TRUE
plot(grd, cex=1.5)
dat.idw<-idw(formula=pH ~ 1, data=sample, newdata=grd, idp=2.0)
Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘idw’ for signature ‘"formula", "missing"’
我也试过krige并得到类似的错误。有关如何解决此问题的任何建议?谢谢。
答案 0 :(得分:4)
library(gstat)
library(sp)
lat <- c(-23.49174, -23.49179, -23.49182, -23.49183, -23.49185, -23.49187)
long <- c(152.0718, 152.0718, 152.0717, 152.0717, 152.0717, 152.0717)
pH <- c(8.222411, 8.19931, 8.140428, 8.100752, 8.068141, 8.048852)
sample <- data.frame(lat, long, pH)
x.range <- range(sample$long)
y.range <- range(sample$lat)
x<-seq(x.range[1], x.range[2], length.out=20)
y<-seq(y.range[1], y.range[2], length.out=20)
grd<-expand.grid(x,y)
coordinates(sample) = ~long+lat
coordinates(grd) <- ~ Var1+Var2
gridded(grd) <- TRUE
proj4string(sample) <- CRS("+proj=longlat +datum=WGS84")
proj4string(grd) <- CRS("+proj=longlat +datum=WGS84")
plot(grd, cex=1.5)
dat.idw <- idw(formula=pH ~ 1, locations = sample, newdata = grd, idp = 2.0)
#> [inverse distance weighted interpolation]
plot(dat.idw)