З огляду на просторовий об’єкт у R, як я вирізаю, що всі його елементи лежать у обмежувальній коробці?
Я хотів би зробити дві речі (в ідеалі я б знав, як це зробити і те, і інше є прийнятним рішенням моєї нинішньої проблеми - обмеження форми профілю багатокутника до континентальних США).
Закиньте кожен елемент не повністю в обмежувальний ящик. Здається, це
bbox()<-
було б логічним шляхом, але такого методу не існує.Зробіть справжню операцію із затисканням, щоб неінфінітимальні елементи (наприклад, багатокутники, лінії) були відрізані на межі .
sp::bbox
не вистачає методу присвоєння, тому єдиний спосіб, який я придумав, - це використовуватиover
абоgContains
/gCrosses
в поєднанні з об'єктом SpatialPolygons, що містить поле з новими координатами обмежувального поля. Тоді під час відсікання об’єкта багатокутника вам доведеться з’ясувати, які містяться проти хреста, та змінити координати цих многокутників, щоб вони не перевищували поле. Або щось подібнеgIntersection
. Але напевно є простіший спосіб?
Хоча я знаю, що існує багато проблем з обмежувальними коробками , і що просто переважання просторового накладання на багатокутник, який визначає область, яка цікавить, в багатьох ситуаціях обмежувальні коробки працюють добре і простіше.
gIntersection
і придумав Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : TopologyException: no outgoing dirEdge found at 3 2.5
немає часу для налагодження сьогодні; написав неохайну версію і виправить це в майбутньому.