1

R の gstat または automap パッケージを使用して、予測変数に基づいて動物が発生するデータを空間的に予測するために、通常のクリギングを使用しようとしています。多くの (100 以上の) 重複する座標点があり、それらのステーションがサンプリングされているため、それらを捨てることはできません。何年にもわたって何度も。通常のクリギングで以下のコードを実行するたびに、ポイントが重複しているために LDL エラーが発生します。データを捨てずにこの問題を解決する方法を知っている人はいますか? 重複を修正するはずのautomapパッケージのコードを試しましたが、うまくいきません。お手伝いありがとう!

coordinates(fish) <- ~ LONGITUDE+LATITUDE
x.range <- range(fish@coords[,1])
y.range <- range(fish@coords[,2])
grd <- expand.grid(x=seq(from=x.range[1], to=x.range[2], by=3), y=seq(from=y.range[1], to=y.range[2], by=3))
coordinates(grd) <- ~ x+y
plot(grd, pch=16, cex=.5)
gridded(grd) <- TRUE

library(gstat)
zerodist(fish) ###146 duplicate points
v <- variogram(log(WATER_TEMP) ~1, fish, na.rm=TRUE)
plot(v)
vgm()
f <- vgm(1, "Sph", 300, 0.5)
print(f)
v.fit <- fit.variogram(v,f)
plot(v, model=v.fit) ####In fit.variogram(v, d) : Warning: singular model in variogram fit

krg <- krige(log(WATER_TEMP) ~ 1, fish, grd, v.fit) 
## [using ordinary kriging]
##"chfactor.c", line 131: singular matrix in function LDLfactor()Error in predict.gstat(g, newdata = newdata, block = block, nsim = nsim,: LDLfactor

##automap code for correcting for duplicates
fish.dup = rbind(fish, fish[1,]) # Create duplicate
coordinates(fish.dup) = ~LONGITUDE + LATITUDE 
kr = autoKrige(WATER_TEMP, fish.dup, grd)
###Error in inherits(formula, "SpatialPointsDataFrame"):object 'WATER_TEMP' not found
###somehow my predictor variables are no longer available when in a Spatial Points Data Frame??
4

3 に答える 3

1

automap::autoKrige最初の引数として数式が必要です。試してください

kr = autoKrige(WATER_TEMP~1, fish.dup, grd)
于 2016-02-05T15:19:07.663 に答える
0

automap重複した観測に対する非常に簡単な修正があり、それはそれらを破棄することです。だから、automapあなたが抱えている問題を本当に解決するわけではありません。いくつかのオプションが表示されます:

  • 重複を破棄します。
  • 重複の座標をわずかに乱して、正確に同じ場所にならないようにします。
  • を使用して時空間クリギングを実行しgstatます。

特定の問題に関しては、例を再現可能にしてください。私が推測できるのはrbind、あなたのfishオブジェクトがあなたが期待していることをしていないということです...

于 2016-02-05T12:45:11.320 に答える
0

別の方法として、geoR パッケージのitterDupCoords 関数を使用することもできます。 https://cran.r-project.org/web/packages/geoR/geoR.pdf

于 2016-03-02T13:35:27.013 に答える