[矢量shp指向带有多边形窗口的ppp spatstat

问题描述 投票:0回答:1

我总是对此有误

# 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个回答
0
投票

尽管您希望将数据从"ppp"包转换为类spatstat的对象,但错误消息表明该问题源自函数as.ppp.sf,该函数是sf包的一部分。

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

只是使其更具挑战性,函数as.ppp.sf未记录且不可见...通过键入sf:::as.ppp.sf,我们可以看到函数主体并发现该函数只有一个参数,因此它没有接受任何窗口信息。

这不是通用函数as.ppp设计为在spatstat程序包中工作的方式,因此,如果您在help(as.ppp)中寻找spatstat,就不会感到困惑。

最佳解决方案是(按照Ege Rubak的建议)转换点坐标,然后添加窗口信息:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.