Dado um objeto espacial em R, como recorte todos os seus elementos para ficarem dentro de uma caixa delimitadora?
Há duas coisas que eu gostaria de fazer (idealmente, eu sei como fazer as duas coisas, mas também é uma solução aceitável para o meu problema atual - restringir um arquivo de forma de polígono aos EUA continentais).
Solte cada elemento não totalmente dentro da caixa delimitadora. Parece que esse
bbox()<-
seria o caminho lógico, mas não existe esse método.Faça uma verdadeira operação de clipe, de modo que elementos não-infinitesimais (por exemplo, polígonos, linhas) sejam cortados no limite .
sp::bbox
como não possui um método de atribuição, a única maneira que eu inventei seria usarover
ougContains
/gCrosses
em conjunto com um objeto SpatialPolygons contendo uma caixa com as novas coordenadas da caixa delimitadora. Então, ao recortar um objeto de polígono, você terá que descobrir quais estão contidos versus cruzados e alterar as coordenadas desses polígonos para que não excedam a caixa. Ou algo assimgIntersection
. Mas certamente há uma maneira mais simples?
Embora eu saiba que existem muitos problemas com caixas delimitadoras e que uma sobreposição espacial de um polígono que define a região de interesse é geralmente preferível, em muitas situações, as caixas delimitadoras funcionam bem e são mais simples.
gIntersection
e criei Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : TopologyException: no outgoing dirEdge found at 3 2.5
Sem tempo para depurar hoje; escreveu uma versão desleixada e será corrigida no futuro.