2

我正在使用 R-INLA 创建物种分布模型,并且我想使用我在 ArcPro 中创建的 shapefile(.shp) 作为空间网格中的障碍。为此,我认为 shapefile 必须采用“SpatialPolygons”格式。

当我使用 st_read() 读取 shapefile(由 6 个多边形组成)时,它被导入为 SpatialPolygonsDataFrame(参见附图)。

此外,我尝试使用 worldhire 获取 shapefile,对其进行细化并尝试删除所有额外的小岛,但网格无法在 INLA 上运行。

长话短说,有没有:a)我可以将 .shp 文件作为 SpatialPolygons 对象导入的方法(它是否需要为每个多边形提供单独的 shapefile,还是需要不同的函数)?b) 我可以将 SpatialPolygonsDataFrame 对象转换为 SpatialPolygons 对象的方法吗?c) 在 R-INLA 中构建空间自相关网格时使用 SpatialPolygonsDataFrame 对象?

感谢您提供的任何建议,如果我可以提供更多信息,请告诉我

链接到使用 plot() 函数绘制的 shapefile 图像

链接到 SpatialPolygonsDataFrame 的图像

4

1 回答 1

1

我不确定这是否有助于解决您的潜在问题,但是要从 Spatial*DataFrame 创建 Spatial* 对象,您可以使用以下geometry()函数:

library(sp)
library(rgdal)
seas = readOGR("il_seas.shp")

class(seas)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"
> seas_geom = geometry(seas)
> class(seas_geom)
[1] "SpatialPolygons"
attr(,"package")
[1] "sp"

这只是从 SPDF 中剥离了所有属性列。

于 2021-06-03T12:42:39.300 回答