autokrige和proj4string

0 r automap spatial-interpolation

我使用R功能autokrigeautomap包,但我得到了一个错误,我不知道如何解决它.你有什么提示吗?

谢谢!

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"
Run Code Online (Sandbox Code Playgroud)

Pau*_*tra 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"
Run Code Online (Sandbox Code Playgroud)

问题是newdata =你应该使用,而你应该使用new_data =(注意下划线).以下代码运行正常:

kr = autoKrige(zinc~1, meuse, new_data = meuse.grid)
Run Code Online (Sandbox Code Playgroud)

文档autoKrige显示了这个,但是krige(来自gstat)使用newdata,所以我理解了这个混乱.

出了什么问题是newdata =不被认可的autoKrige,并放在...参数列表的一部分.当autoKrige调用时krige,new_data提供者autoKrigenewdata提供者之间存在冲突....为了防止其他用户得到相当模糊的错误消息,我添加了一个检查自动化.错误的代码现在导致异常:

> 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'.
Run Code Online (Sandbox Code Playgroud)