Как создать SpatialpolygonsDataFrame из SpatialLinesDataFrame - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь создать маску для проекта, используя пакеты sf и RGDAL.У меня есть шейп-файл, который является SpatiallinesDataFrame, и он должен быть SpatialpolygonsDataFrame, чтобы продолжить.

Я пробовал эти коды

    fence1 <- as(fence1 ,"SpatialPolygonsDataFrame")
    fence1 <- SpatialPolygonsDataFrame(fence1)
    fence1 <- SpatialPolygonsDataFrame(fence1, match.ID = TRUE)

fence1 - это SpatiallinesDataFrame, который я импортировал из shp.файл с кодом:

    fence1 <- readOGR('/SECR/', layer = 'building')

Цель этих данных - создать маску, чтобы я мог создать анализ SECR

1 Ответ

0 голосов
/ 26 сентября 2019

Если вы используете sf, вы можете читать с использованием:

fence1 <- st_read('/SECR/building.shp')

Затем вы можете создать буфер, чтобы сделать эти линии полигонами, выбрав ширину в единицах вашей проекции:

fence_buf <- st_buffer(fence1, 50) # buffer unit of 50 as example

Тогда, если вам нужны ваши полигоны как sp SpatialPolygonsDataFrame, вы можете конвертировать из sf в sp:

fence_buf <- as(fence_buf, 'Spatial')
...