Преобразование пространственного полигона в обычный фрейм данных без использования инструментов gpclib

Я работаю с пространственными данными в R для коммерческого приложения и хотел бы использовать ggplot2 для визуализации данных. Если вы запустите пример Хэдли по адресу https://github.com/hadley/ggplot2/wiki/plotting-polygon-shapefiles вы обнаружите, что для запуска команды fortify вам необходимо разрешить использование инструментов gpclib с помощью gpclibPermit().

Я ищу эффективный способ (который не требует ручного взлома объекта S4) для выполнения той же операции, что и fortify здесь, т.е. взять объект пространственного полигона и превратить его в обычный фрейм данных, где записи строк содержат широту и продольные координаты вместе с идентификатором полигона.

Кто-нибудь еще решил это?


person aaron    schedule 14.01.2014    source источник
comment
Я, вероятно, не понимаю вашего вопроса, но я все время использую fortify(...), и мне никогда не приходилось использовать gpclibPermot(...).   -  person jlhoward    schedule 15.01.2014
comment
Вы проверили пример, который я разместил? когда я запускаю его, вылетает ошибка Error: isTRUE(gpclibPermitStatus()) is not TRUE. возможно, для одних sp-объектов fortify работает нормально, а для других - нет...   -  person aaron    schedule 15.01.2014


Ответы (1)


Вам также необходимо установить пакет rgeos. Когда maptools загружен, а rgeos не установлен, отображается следующее сообщение:

> require("maptools")
Loading required package: maptools
Checking rgeos availability: FALSE
    Note: when rgeos is not available, polygon geometry
    computations in maptools depend on gpclib,
    which has a restricted licence. It is disabled by default;
    to enable gpclib, type gpclibPermit()

Когда fortify вызывается с аргументом region (как в примере, на который вы ссылаетесь), необходимо выполнить некоторые «вычисления геометрии многоугольника». Если rgeos недоступен, а gpclib не разрешен, произойдет сбой.

person Brian Diggs    schedule 14.01.2014
comment
Я вижу то же сообщение, когда впервые пытаюсь использовать maptools. Правильно ли я понимаю, что мне нужен ЛИБО (1) rgeos или (2) включенный gpclib? Последний поставляется с некоммерческой лицензией или что-то в этом роде? Что лучше между rgeos и gpclib (быстрее, лучше результаты и т. д.)? - person stackoverflowuser2010; 19.02.2014
comment
@stackoverflowuser2010 Правильно; вам нужен тот или иной, а поскольку gpclib имел лицензию , которая не позволяет коммерческое использование, существует дополнительный шаг безопасности, требующий явного вызова функции для его включения. - person Brian Diggs; 19.02.2014
comment
@BrianDiggs: есть ли разница между ними с точки зрения результатов или производительности? - person stackoverflowuser2010; 19.02.2014
comment
@ stackoverflowuser2010 У меня нет никакой информации о результатах или производительности. - person Brian Diggs; 20.02.2014
comment
то же самое здесь, в 2016 году ... получив это сообщение и не внедряя коммерческое программное обеспечение, какой из двух пакетов лучше поддерживается / чаще используется? - person Antonello; 08.07.2016