【问题标题】:Create spatial objects in R useful for coordinates() and spsample()在 R 中创建对坐标()和 spsample()有用的空间对象
【发布时间】:2015-02-13 17:36:56
【问题描述】:

我正在尝试使用此代码,改编自数据集meuse

data<-list(var1,var2,x,y)

coordinates(data)=~x+y

grid = spsample(data, type = "regular", cellsize = c(0.05,0.05))

vt <- variogram(var1 ~ var2,data=data)

vt.fit <- fit.variogram(vt, vgm(0.2, "Sph", 800, 0.05))

gstatobj <- gstat(id = 'var1', formula = var1 ~ var2, model=vt.fit, set = list(gls=1))

我的目标是创建一个网格,例如 meuse.grid。但是coordinates 不起作用... list 不是正确的命令。

我该用什么? 我用来创建网格的方式是否正确?

【问题讨论】:

  • 你创建它的方式,data 不是一个命名列表,它只是一个包含 4 个元素的列表。试试data &lt;- data.frame(var1,var2,x,y); coordinates(data) &lt;- ~x+y
  • 我也试过这个,但它说data.frame 不是coordinates 的正确类型。它需要类似空间对象的东西......

标签: r statistics spatial gstat


【解决方案1】:

以下可重现的示例表明 jlhoward 的评论是正确的,而 Darko 的回复是错误的:

library(gstat)
var1 = 1:3; var2 = 1:3; x = 1:3; y = 1:3
data<-list(var1,var2,x,y)
coordinates(data) = ~x+y
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘coordinates<-’ for signature ‘"list"’
data<-data.frame(var1,var2,x,y)
coordinates(data) = ~x+y
class(data)
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"

你可能会因为再次这样做而感到困惑,这会给出:

coordinates(data) = ~x+y
Error in `coordinates<-`(`*tmp*`, value = ~x + y) : 
  setting coordinates cannot be done on Spatial objects, where they have already been set

但保留现有的(和正确的)data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2010-10-04
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多