Как я могу создать объект SpatialPolygons из объекта SpatialPolygonsDataFrame в R?
Я работаю над созданием модели распределения видов с помощью R-INLA, и я хочу использовать шейп-файл (.shp), который я создал в ArcPro, в качестве барьера в пространственной сетке. Я считаю, что для этого шейп-файл должен быть в формате SpatialPolygons.
Когда я читаю шейп-файл (состоящий из 6 полигонов) с помощью st_read (), он импортируется как SpatialPolygonsDataFrame (см. Прикрепленные рисунки).
Кроме того, я попытался получить шейп-файлы с помощью worldhire, прореживал их и пытался удалить все лишние маленькие островки, но меш не работал на INLA.
Короче говоря, есть ли: а) Способ, которым я могу импортировать файл .shp как объект SpatialPolygons (должен ли он быть отдельным шейп-файлом для каждого многоугольника или другой функцией)? б) Как я могу преобразовать объект SpatialPolygonsDataFrame в объект SpatialPolygons? c) Использовать объект SpatialPolygonsDataFrame при построении пространственной автокорреляционной сетки в R-INLA?
Я благодарен за любой совет, который вы можете дать. Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию.
Ссылка на изображение шейп-файла, построенного с помощью функции plot ()
1 ответ
Я не уверен, что это поможет в решении вашей основной проблемы, но для создания объекта Spatial * из Spatial * DataFrame вы используете
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.