Biorąc pod uwagę obiekt przestrzenny w R, w jaki sposób mogę przyciąć wszystkie jego elementy, aby leżały w obwiedni?
Są dwie rzeczy, które chciałbym zrobić (najlepiej wiedziałbym, jak to zrobić, ale jedno lub drugie jest akceptowalnym rozwiązaniem mojego obecnego problemu - ograniczenie kształtu pliku wielokąta do kontynentalnych Stanów Zjednoczonych).
Upuść każdy element nie do końca w obwiedni. Wydaje się, że
bbox()<-
byłby to logiczny sposób, ale taka metoda nie istnieje.Wykonaj prawdziwą operację przycinania, tak aby elementy nieskończenie małe (np. Wielokąty, linie) zostały odcięte na granicy .
sp::bbox
nie ma metody przypisania, więc jedynym sposobem, jaki wymyśliłem, byłoby użycieover
lubgContains
/gCrosses
w połączeniu z obiektem SpatialPolygons zawierającym pole ze współrzędnymi nowego obwiedni. Następnie, gdy wycinasz obiekt wielokąta, musisz dowiedzieć się, które są zawarte w stosunku do krzyża, i zmienić współrzędne tych wielokątów, aby nie przekraczały pola. Lub coś w tym rodzajugIntersection
. Ale z pewnością istnieje prostszy sposób?
Chociaż wiem, że istnieje wiele problemów z ramkami ograniczającymi i że przestrzenna nakładka na wielokąt, który określa region będący przedmiotem zainteresowania, jest zwykle lepsza, w wielu sytuacjach ramki ograniczające działają dobrze i są prostsze.
gIntersection
i wymyśliłem Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : TopologyException: no outgoing dirEdge found at 3 2.5
Nie ma czasu na debugowanie dzisiaj; napisałem niechlujną wersję i naprawię ją w przyszłości.