Подстановка полигонов из объекта Пространственные полигоны по слотам - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть объект 'SpatialPolygons', и я хочу установить под полигоны, где @hole == FALSE, и создать новый объект.

str (my_object) возвращает это: structure output of my SpatialPolygons object

Используя приведенный ниже код, можно получить 1 многоугольник за раз (или ни одного, если @hole == TRUE),но я не могу подгруппировать несколько полигонов из моего объекта.

newSP <- aDis[aDis@polygons[[1]]@Polygons[[1]]@hole == FALSE]

Я думаю, что моя проблема заключается в том, что я не знаю, как ссылаться на второй список "в целом", то есть брать элементы из списка (Polygon), где @hole == FALSE.Оставление второго пробела [[]] не работает.

PS извините, что нет воспроизводимого примера;Я не уверен, как именно воссоздать эту проблему простым способом.

1 Ответ

0 голосов
/ 17 декабря 2018

Самый простой способ сделать это с помощью sapply:

hasHole <- sapply(
  aDis@polygons[[1]]@Polygons,
  slot,
  "hole"
)
aDis@polygons[[1]]@Polygons[!hasHole]

Хотя, как конечный пользователь, приходится прибегать к подобным вещам необычно.Я не знаком с этим конкретным пакетом - нет ли в нем других функций, определяющих доступ к этим слотам?

...