0

パッケージのR関数を使用していautokrigeますautomapが、エラーが発生し、解決方法がわかりません。ヒントはありますか?

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

sp.poidf <- SpatialPointsDataFrame(sp.poi,thresh.df)
proj4string(sp.poidf) <- CRS("+proj=longlat +datum=WGS84")
pro.df=spTransform(sp.poidf, CRS("+proj=merc +zone=32s +datum=WGS84"))
sp.new <- SpatialPoints(new.poi)
proj4string(sp.new) <- CRS("+proj=longlat +datum=WGS84")
pro.new <- spTransform(sp.new, CRS("+proj=merc +zone=32s +datum=WGS84"))
mykri <- autoKrige(mythresh~1,pro.df,newdata=pro.new)

Error in function (classes, fdef, mtable)  : 
unable to find an inherited method for function "proj4string", for signature "NULL"
4

1 に答える 1

5

次のコードは問題を再現します。

require(automap)
require(rgdal)
loadMeuse()

proj4string(meuse) = CRS("+init=epsg:28992")
proj4string(meuse.grid) = CRS("+init=epsg:28992")
meuse = spTransform(meuse, CRS("+proj=merc +zone=32s +datum=WGS84"))
# Note that meuse.grid no longer is a grid due to the reprojection
meuse.grid = spTransform(meuse.grid, CRS("+proj=merc +zone=32s +datum=WGS84"))

kr = autoKrige(zinc~1, meuse, newdata = meuse.grid)
Error in function (classes, fdef, mtable)  : 
  unable to find an inherited method for function "proj4string", for signature "NULL"

問題は、を使用するnewdata =必要があるのに、を使用することですnew_data =(アンダースコアに注意してください)。次のコードは正常に実行されます。

kr = autoKrige(zinc~1, meuse, new_data = meuse.grid)

のドキュメントautoKrigeはこれを示していますが、krige(gstatから)はを使用newdataしているので、混乱を理解しています。

何が悪いのかというと、それnewdata =はによって認識されず、引数リストautoKrigeの一部に入れられます。呼び出し...時に、によって提供されるものと、を介して提供されるものとの間に競合があります。他のユーザーがやや漠然としたエラーメッセージで終わるのを防ぐために、自動マップにチェックを追加しました。誤ったコードは例外につながります:autoKrigekrigenew_dataautoKrigenewdata...

> kr = autoKrige(zinc~1, meuse, newdata = meuse.grid)
Error in autoKrige(zinc ~ 1, meuse, newdata = meuse.grid) : 
  The argument name for the prediction object is not 'newdata', but 'new_data'.
于 2012-08-30T05:28:07.493 に答える