Étant donné un objet spatial dans R, comment puis-je découper tous ses éléments pour qu'ils se trouvent dans un cadre de sélection?
Il y a deux choses que j'aimerais faire (idéalement, je saurais faire les deux, mais l'une ou l'autre est une solution acceptable à mon problème actuel - restreindre un fichier de formes polygonales aux États-Unis continentaux).
Déposez chaque élément pas complètement dans le cadre de sélection. Cela semble
bbox()<-
être la voie logique, mais aucune telle méthode n'existe.Effectuez une véritable opération de découpage, de sorte que les éléments non infinitésimaux (par exemple les polygones, les lignes) soient coupés à la frontière .
sp::bbox
ne dispose pas d'une méthode d'affectation, donc la seule façon dont je suis venu serait d'utiliserover
ougContains
/gCrosses
en conjonction avec un objet SpatialPolygons contenant une boîte avec les coordonnées de la nouvelle boîte englobante. Ensuite, lors de la découpe d'un objet polygone, vous devez déterminer ceux qui sont contenus par rapport à la croix et modifier les coordonnées de ces polygones afin qu'ils ne dépassent pas la zone. Ou quelque chose comme çagIntersection
. Mais il y a sûrement un moyen plus simple?
Bien que je sache qu'il existe de nombreux problèmes avec les boîtes englobantes et qu'une superposition spatiale à un polygone qui définit la région d'intérêt est généralement préférable, dans de nombreuses situations, les boîtes englobantes fonctionnent bien et sont plus simples.
gIntersection
et j'ai trouvé Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : TopologyException: no outgoing dirEdge found at 3 2.5
Pas de temps pour déboguer aujourd'hui; a écrit une version bâclée et corrigera dans le futur.