Dado un objeto espacial en R, ¿cómo recorto todos sus elementos para que queden dentro de un cuadro delimitador?
Hay dos cosas que me gustaría hacer (idealmente, sabría cómo hacer ambas cosas, pero cualquiera de las dos es una solución aceptable para mi problema actual: restringir un archivo de forma poligonal a los Estados Unidos continentales).
Coloque cada elemento que no esté completamente dentro del cuadro delimitador. Esto parece
bbox()<-
ser la forma lógica, pero no existe tal método.Realice una operación de recorte verdadera, de modo que los elementos no infinitesimales (por ejemplo, polígonos, líneas) se corten en el límite .
sp::bbox
carece de un método de asignación, por lo que la única forma en que se me ocurre sería usarover
ogContains
/gCrosses
junto con un objeto SpatialPolygons que contiene un cuadro con las nuevas coordenadas del cuadro delimitador. Luego, al recortar un objeto de polígono, tendría que averiguar cuáles están contenidos frente a la cruz, y alterar las coordenadas de esos polígonos para que no excedan el cuadro. O algo asigIntersection
. ¿Pero seguramente hay una manera más simple?
Si bien sé que hay muchos problemas con los cuadros delimitadores , y que una superposición espacial a un polígono que define la región de interés suele ser preferible, en muchas situaciones, los cuadros delimitadores funcionan bien y son más simples.
gIntersection
y se me ocurrió Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : TopologyException: no outgoing dirEdge found at 3 2.5
No hay tiempo para depurar hoy; escribió una versión descuidada y la arreglará en el futuro.