Я пытаюсь пересечь два SpatialPolygonsDataFrames и получить SpatialPolygonsDataFrame в результате. К сожалению, используя gIntersection
функцию from rgeos
(которая работает впечатляюще быстро для пересечения полигонов), я не могу извлечь соответствующие кадры данных. Рассмотрим следующий пример:
> fracPoly <- gIntersection( toSingle, fromSingle )
> class(toSingle)
[1] "SpatialPolygonsDataFrame"
> class(fromSingle)
[1] "SpatialPolygonsDataFrame"
> class(fracPoly)
[1] "SpatialPolygons"
Я могу написать функцию-обертку, которая обрабатывает передачу data.frames
, но это будет небольшая боль, чтобы сделать всю проверку правильной, и до того, как я это сделал, я надеялся, что кто-то может подтвердить, что нет лучшего способа или указать мне на другую функцию (или вариант за gIntersection
) который позволил бы мне сохранить связанный data.frames
.
Обновить
При дальнейшем размышлении, это может быть очень преднамеренным поведением gIntersection
. В конце концов, из двух SPDF, чей data.frame вы передаете? Поэтому мне, возможно, придется написать обертку, которая объединит их.
источник
Ответы:
Для какого-то проекта у меня была такая же потребность. Намного больше, чем сохранение
data.frame
, нам пришлось добавить дополнительный код для управления типом выходной геометрии и перейти к некоторой очистке (например, очистить коллекции геометрии), чтобы получить некоторый полный геообработка пересечения. Если вам все еще нужно выполнить такую задачу в R, вы можете попробовать пакет RFigisGeo :источник
Поведение gIntersection не состоит в том, чтобы передавать какие-либо пересеченные данные по проекту:
К моему удивлению, растровый пакет имеет функцию пересечения , которая просто пересекает и передает данные.
Полная информация, которую я получил по этому адресу : http://r-sig-geo.2731867.n2.nabble.com/Intended-usage-of-gIntersection-td7587120.html
источник
Для тех (как я), для которых вышеупомянутые ответы не работали, ссылка здесь объясняет, что вы можете сделать эту точную вещь с пересечением растра.
Как сохранить все данные атрибутов при обрезке двух полигонов в R?
Я использовал это, чтобы обрезать SpatialPointsDataFrame с шейп-файлом SpatialPolygons; он создает обрезанную / обрезанную версию SpatialPointsDataFrame, сохраняя исходные данные.
источник