З огляду на просторовий об’єкт у 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 немає часу для налагодження сьогодні; написав неохайну версію і виправить це в майбутньому.
