【问题标题】:vector shp point to ppp spatstat with polygon windows矢量 shp 指向具有多边形窗口的 ppp spatstat
【发布时间】:2020-10-03 16:29:14
【问题描述】:

我总是会出错

# polygon that to be window
neighborhoods <- st_read("neighborhoods/neighborhoods.shp")

# convert CRS to planar projection as recommended by (https://stackoverflow.com/questions/59597078/use-sf-polygon-object-as-window-in-spatstat)
neighborhoods_3857 <- st_transform(neighborhoods, crs = 3857)

# point that to be PPP spatstat
trees <- st_read("trees/trees.shp")

# convert to planar projection
trees_3857 <- st_transform(trees, crs = 3857)

问题是,“trees_3857”没有表示 EPSG3857 坐标的数据框列,因此“trees_3857”的特征列没有与 EPSG 3857 相关的 x 和 y 列

q <- ppp(x=?, y=?, win=neighborhoods_3857)

我做了什么但错误

z <- as.ppp(trees_3857, win=neighborhoods_3857)
Error in as.ppp.sf(trees_3857, win = neighborhoods_3857): unused argument (win = neighborhoods_3857)
Traceback:

您可以从datacamp免费获取数据。

https://assets.datacamp.com/production/repositories/738/datasets/96a72364e69d872645038b3a6dc7c0dbcb1114d6/neighborhoods.zip

https://assets.datacamp.com/production/repositories/738/datasets/08a3684dc4d538d59ba051a64a834166883ab5d1/trees.zip

【问题讨论】:

标签: polygon spatial point spatstat


【解决方案1】:

虽然您希望将数据转换为 spatstat 包中的 "ppp" 类的对象,但错误消息表明问题源于函数 as.ppp.sf,它是 sf 包的一部分.

错误消息显示unused argument: win,这意味着该函数无法识别或接受参数win

只是为了让它更具挑战性,函数as.ppp.sf 没有记录并且不可见......通过输入sf:::as.ppp.sf,我们可以看到函数体并发现该函数只有一个参数,所以它确实不接受任何窗口信息。

这不是泛型函数as.ppp 设计为在spatstat 包中工作的方式,因此如果您在spatstat 中查找help(as.ppp),您会感到困惑也就不足为奇了。

最好的解决方案是(正如 Ege Rubak 建议的那样)转换点坐标,然后添加窗口信息:

z <- as.ppp(trees_3857)
Window(z) <- as.owin(neighborhoods_3857)

转换as.pppas.owin 将使用sf 中的代码执行,所以我不能保证它们会起作用。赋值Window(z) &lt;- 将在spatstat 代码中执行,参见help("Window&lt;-.ppp")

【讨论】:

  • 我可以给你投票两次吗?你的代码运行良好。 z
猜你喜欢
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 2022-07-26
相关资源
最近更新 更多