0

からベンゼン値をクリグしようとしている間

    WELL.ID   X           Y     BENZENE
1   MW-02   268.8155    282.83  0.00150
2   IW-06   271.6961    377.01  0.00050
3   IW-07   251.0236    300.41  0.01040
4   IW-08   278.9238    300.37  0.03190
5   MW-10   281.4008    414.15  2.04000
6   MW-12   391.3973    449.40  0.01350
7   MW-13   309.5307    335.55  0.01940
8   MW-15   372.8967    370.04  0.01620
9   MW-17   250.0000    428.04  0.01900
10  MW-24   424.4025    295.69  0.00780
11  MW-28   419.3205    250.00  0.00100
12  MW-29   352.9197    277.27  0.00031
13  MW-31   309.3174    370.92  0.17900

私はそうのようにグリッド(これらの井戸が存在するプロパティ)を生成します

setwd("C:/.....")
getwd()

require(geoR)
require(ggplot2)


a <- read.table("krigbenz_loc.csv", sep = ",", header = TRUE)
b <- data.matrix(a)
c <- as.geodata(b, coords.col = 2:3, data.col = 4, )

ggplot(a, aes(x= X, y= Y, colour="green", label=WELL.ID)) + geom_point() + geom_text(aes(label=WELL.ID),hjust=0, vjust=0)

x.range <- as.integer(range(a[,2]))
y.range <- as.integer(range(a[,3]))
x = seq(from=x.range[1], to=x.range[2], by=1)
y = seq(from=y.range[1], to=y.range[2], by=1)
length(x)
length(y)
xv <- rep(x,length(y))
yv <- rep(y, each=length(x))
in_mat <- as.matrix(cbind(xv, yv))

バリオグラムを見てください..(あまりきれいではありませんが、それに取り組んでいます)

### variogram ###

## on geo-object
v1 <- variog(c)
length(v1$n)
v1.summary <- cbind(c(1:11), v1$v, v1$n)
colnames(v1.summary) <- c("lag", "semi-variance", "# of pairs")
v1.summary
plot(v1, type = "b", main = "Variogram: BENZENE at CRAIG BP")

ksline を使用して krig 値を生成します...

## variance of benzene readings = sd^2

sd <- sd(a$BENZENE)
var = sd^2

fitted_model <- variofit(vario=v1, ini.cov.pars=c(var, .29), cov.model='exp')
q <- ksline(c, cov.model=fitted_model$cov.model, cov.pars=fitted_model$cov.pars,
        nugget=fitted_model$nugget, locations=in_mat)

しかし、その後、電話を保持し、結果を画像化しようとするとエラーが発生します!!!!

> image(q, val = q$predict)
Error in eval(x$call$geodata, envir = attr(x, "parent.env"))$borders :
   object of type 'builtin' is not subsettable

これを何度か行ったので、これは完全に左のフィールドから外れているようです...エラーをグーグルで調べたところ、関数のサブセットを呼び出そうとしているようで、90%の時間の答えは私の構文ですどこかが間違っていますが、私はすべてをチェックしましたが、それを理解することはできません...どんな助けも大歓迎です.

ありがとう

ZR

4

1 に答える 1

2

これは、geoR での悪い評価状況のようです。つまり、バグです!

cオブジェクトの名前を別の名前に変更すると、次のように機能します。

ccc =c 
q <- ksline(ccc, cov.model=fitted_model$cov.model, cov.pars=fitted_model$cov.pars,
        nugget=fitted_model$nugget, locations=in_mat)
image(q) # now works

これはimage.kriging、元のオブジェクトから何かを取得しようとしてcいるが、正しいコンテキストでそれを評価していないため、R ベースc関数を取得しているためです (エラーの "builtin" という単語がここでの手がかりでした)。

kslineヘルプも言う

移動する近隣が使用される場合を除き、関数「krige.conv」を優先する必要があります。

だから多分あなたはそれを試してみるべきです - それは同じ問題を抱えていないかもしれません! とは異なる引数のセットがあることに注意してくださいksline

于 2014-11-25T22:39:32.803 に答える