Моя цель - изменить существующий шейп-файл путем объединения определенных полигонов.
После импорта шейп-файла и использования команды UnionSpatialPolygons я получаю желаемый контур многоугольника.
Однако теперь это объект SpatialPolygons, а не SpatialPolygonsDataFrame, поэтому я не могу экспортировать его в шейп-файл с помощью writeOGR.
Как я могу обойти эту проблему?
shapefile
cartography
r
ogr
Иоанн
источник
источник
Ответы:
Как следует из названия, SpatialPolygonsDataFrame - это просто объект SpatialPolygons с прикрепленными данными (таблица атрибутов). Данные должны содержать как минимум столько строк, сколько имеется объектов
----РЕДАКТИРОВАТЬ----
Если вы хотите преобразовать свою
SpatialPolygonsDataFrame
спину вSpatialPolygons
объект, вам просто нужно обратиться к структуре объекта в Rисточник
IDs
аргумент при выполненииUnionSpatialPolygons
. В противном случае у вас могут возникнуть проблемы при указанииdata
аргумента при обратном преобразовании вSpatialPolygonsDataFrame
.data=as.data.frame("yourData")
? После растворения внутренних полигоновunionSpatialPolygons(...)
, я хотел бы написать результат в виде нового шейп-union
проблемы ..Проблемы:
1: результат UnionSpatialPolygons - это пространственный многоугольник
2: преобразование результата обратно во фрейм данных пространственного многоугольника - реальная боль
-a. вам нужен очень точный фрейм данных для присоединения к пространственному многоугольнику
-b. Данные, которые вы использовали для UnionSpatialPolygons, имеют больше строк, чем выходные данные, и не отформатированы так, как нужно.
Мое (некрасивое) решение:
источник