Я хотел бы обобщить SpatialPolygonsDataFrame
в R, чтобы сделать построение графиков более эффективным. Полигоны, которые я имею, приводят к огромным pdf-графикам, которые медленно загружаются и трудно интегрируются в документ.
Я попытался использовать gSimplify
функцию из rgeos
пакета, но, к сожалению, она не сохраняет топологию полигонов.
Есть ли альтернатива, которую я могу использовать?
r
topology
generalization
yellowcap
источник
источник
gSimplify()
имеет необязательный параметр,topologyPreserve
который по умолчанию равенFALSE
. Вы пытались установить этоTRUE
?Ответы:
Об этом идет дискуссия на r-sig-geo . Для окончательного ответа вы должны спросить там, потому что есть люди, которые знают идеи пространственного R.
Но вы также можете сделать это в настольных ГИС-приложениях (экспортируйте фигуру с помощью команды writeOGR из rgdal или writePolyShape () из maptools), например, QuantumGIS, GRASS или SAGA.
Для QuantumGIS используйте Vector / Geometry Tools / Упростить геометрию (я протестировал и не сохраняю топологию, но применительно к шейп-файлу admin1 в Румынии, отлично смотрится с 2000 узлами).
Для GRASS используйте v.generalize (см. Руководство для получения информации об алгоритмах, некоторые из них).
Для SAGA вы должны сначала преобразовать полигон в линию (Shapes - Lines / Convert Polygons to Lines), затем упростить линии (Shapes Lines / Line Simplification) и, наконец, преобразовать линии в полигоны (Shapes - Polygons / Convert Lines в Polygons). Я проверил это, и результаты сохранили топологию.
Ура и удачи,
источник
Теперь есть замечательный
rmapshaper
пакет от Andy Teucher, который включает в себя функцию упрощения, которая «выполняет топологически-упрощенное многоугольное упрощение».Из их репозитория github, пример использования:
где
states_sp
являетсяspatialPolygons*
объектом.См. Пакет README для получения дополнительной информации: https://github.com/ateucher/rmapshaper
источник
это должно помочь:
gSimplify(..., topologyPreserve=T)
изGEOS
пакетаисточник
gSimplify
действительности не сохраняет топологию для нескольких полигонов. Я думаю, что это больше относится к топологии одиночных или мультиполигонов. Для шейп-файла со многими полигонами топология не сохраняется.