kriging - gstat 中的克里金法
问题描述
我遇到了运行 1000 次没有错误的代码的问题。
错误信息:
"Error in bb[, "max"] : subscript out of bounds"
我不知道bb是什么意思。我想bbox
,但这对于网格和点来说是一样的。
代码:
setwd("C:/Users/matev/desktop/")
getwd()
remove(list=ls())
library(gstat)
library(rgdal)
library(lattice)
#input data
DF<-read.csv(file="UpperRukaragata.csv", sep=",", dec=".", header=T)
str(DF)
plot(DF$X,DF$Y, col=DF$Z, cex=11, pch=14)
coordinates(DF)<-~X+Y
str(DF)
summary(DF$Ta2O5)
plot(DF)
# grid
x.range <- as.integer(range(DF@coords[,1]))
y.range <- as.integer(range(DF@coords[,2]))
str(x.range)
grd<-expand.grid(x=seq(from=x.range[1]+2.5, to=x.range[2]-2.5, by=5), y=seq(from=y.range[1]+2.5, to=y.range[2]-2.5, by=10))
coordinates(grd)<-~x+y
gridded(grd)<-T
plot(grd)
dimnames(coordinates(DF))
dimnames(coordinates(grd))
dimnames(grd@coords) <-list(NULL,c("X", "Y"))
dimnames(grd@bbox) <-list(c("X", "Y"))
bbox(DF)
bbox(grd)
#variogram Z
v1<-variogram (Ta2O5~1, loc=DF)
plot(v1, type="p", plot.numbers=F, cex=0.65, pch=16)
vm1<-vgm(70, "Pen",70, 0)
(vmf1<-fit.variogram(v1, vm1))
print(plot(v1, plot.numbers = F, pch = 20, col = "darkblue", model = vmf1))
##ordinary kriging
Ta2O5<-krige(Ta2O5~1, DF, grd, model=vmf1 )
如何解决这个问题呢?
解决方案
我不清楚为什么有一些行,请评论以下内容:
#dimnames(coordinates(DF))
#dimnames(coordinates(grd))
#dimnames(grd@coords) <-list(NULL,c("X", "Y"))
#dimnames(grd@bbox) <-list(c("X", "Y"))
现在您可以运行所有内容并且它可以正常工作。越简单越好。
setwd("C:/Users/matev/desktop/")
getwd()
remove(list=ls())
library(gstat)
library(rgdal)
library(lattice)
#input data
DF<-read.csv(file="UpperRukaragata.csv", sep=",", dec=".", header=T)
str(DF)
plot(DF$X,DF$Y, col=DF$Z, cex=11, pch=14)
coordinates(DF)<-~X+Y
str(DF)
summary(DF$Ta2O5)
plot(DF)
# grid
x.range <- as.integer(range(DF@coords[,1]))
y.range <- as.integer(range(DF@coords[,2]))
str(x.range)
grd<-expand.grid(x=seq(from=x.range[1]+2.5, to=x.range[2]-2.5, by=5), y=seq(from=y.range[1]+2.5, to=y.range[2]-2.5, by=10))
coordinates(grd)<-~x+y
gridded(grd)<-T
plot(grd)
## Why doing this? comment it
#dimnames(coordinates(DF))
#dimnames(coordinates(grd))
#dimnames(grd@coords) <-list(NULL,c("X", "Y"))
#dimnames(grd@bbox) <-list(c("X", "Y"))
bbox(DF)
bbox(grd)
#variogram Z
v1<-variogram (Ta2O5~1, loc=DF)
plot(v1, type="p", plot.numbers=F, cex=0.65, pch=16)
vm1<-vgm(70, "Pen",70, 0)
(vmf1<-fit.variogram(v1, vm1))
print(plot(v1, plot.numbers = F, pch = 20, col = "darkblue", model = vmf1))
##ordinary kriging
Ta2O5<-krige(Ta2O5~1, DF, grd, model=vmf1 )
spplot(Ta2O5)
推荐阅读
- r - 如何在R中使用条件迭代wrt组变量运行双循环
- c - 在 c 上按位和 unsigned int 得到错误答案?
- javascript - 我只想为那些拥有 ManageMessages 权限的角色创建我的 nuke 命令。我该怎么做?
- javascript - 如何在网上搜索错误已经发布
- ruby-on-rails - HTTP_ORIGIN 总是返回 nil
- loops - 在 python 的 for 循环中更新 matplotlib 图形
- javascript - 当元素存在时'classList'属性返回null?
- c++ - 用qt绘制gps点的最佳方法
- java - ChartJS/High Charts Radar chart - 悬停时出现的每个类别的不同径向轴标签
- flutter - 如何在颤振中使用没有项目构建器的索引