0

パッケージ Automap について質問があります。

私は自分のデータで問題なく通常のクリギングを試し、うまくいきました。しかし、Universal Kriging を試したところ、理解できないエラー メッセージが表示されました。

単純かもしれませんが、関数が「silt_clay」を見つけられなかった理由がわかりません。

ありがとうございました。

私のコードの上:

library(automap)
data_interpol<-read.table("merge_guaiba_ceco2.txt", header=T)
head(data_interpol)
   long     lat depth silt_clay    avgran pcsand    om
1 471699 6680184   1.9    51.626 0.6683944 48.313 11.50
2 473777 6679430   1.8    57.810 0.6669483 42.186  8.80
3 471931 6679087   2.4    54.625 0.6718675 45.370  9.30
4 471337 6678456   1.9     2.887 0.4128039 97.113  0.00
5 472936 6678421   2.5    49.136 0.6344626 50.864  9.90
6 473945 6678482   1.9    99.614 0.9984355  0.386  9.45

coordinates(data_interpol)<- ~long+lat
kriging_om = autoKrige(om~ 1, data_interpol, grid4)# works fine
kriging_om_Universal= autoKrige(om~ silt_clay + avgran + pcsand, data_interpol, grid4)
Error in eval(expr, envir, enclos) : object 'silt_clay' not found # my error

####code to obtain grid4:
    grid <- raster( )
    grid <- raster(ncol=1544, nrow=1056, xmn=468318.3, xmx=499998.3, ymn=6634918, ymx=6681238) projection (grid) <- '+proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs ‘
    res(grid) <- 30
    grid4 <- as(grid, ‘SpatialPoints’)

エラーについて議論するための編集。グリッドを変更した後、エラーが持続します:

d_margin_xyz私の新しいグリッドです。

str(d_margin_xyz)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame': 1628352 obs. of  1 variable:
  .. ..$ DIST_MARGIN: num [1:1628352] 0 0 0 0 0 0 0 0 0 0 ...
  ..@ coords.nrs : int [1:2] 1 2
  ..@ coords     : num [1:1628352, 1:2] 468333 468363 468393 468423 468453 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : NULL
  .. .. ..$ : chr [1:2] "x" "y"
  ..@ bbox       : num [1:2, 1:2] 468333 6634963 499983 6681193
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:2] "x" "y"
  .. .. ..$ : chr [1:2] "min" "max"
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
  .. .. ..@ projargs: chr NA

Universal Kriging の予測子を含む新しいグリッドで再試行すると、エラーが再び表示されます。どんな手掛かり?

kriging_om_Universal= autoKrige(om~ DIST_MARGIN, data_interpol, d_margin_xyz)
Error in eval(expr, envir, enclos) : object 'DIST_MARGIN' not found
4

1 に答える 1

0

問題は、予測オブジェクト が属性を持たないgrid4単なるオブジェクトであることです。SpatialGridユニバーサル クリギングを使用して予測できるようにするには、予測位置のすべての予測子 ( 、 など) の値が必要です。つまりsilt_clayavgranへの属性としてですgrid4silt_clayあなたのエラーは、属性ではないという事実によって引き起こされます。

この問題を修正するには、属性を に追加する必要がありますgrid4silt_clayこのためには、マップとその他の予測変数をカバーするある種のエリアが必要です。このマップを属性を持つオブジェクトに変換するか、このマップからSpatialGrid場所の値を抽出することができますgrid4

于 2014-06-24T12:41:44.733 に答える