Given a Spatial object in R, how do I clip all of its elements to lie within a bounding box?
There are two things I'd like to do (ideally I'd know how to do both, but either is an acceptable solution to my current problem--restricting a polygon shapefile to the continental U.S.).
Drop each element not fully within the bounding box. This seems like
bbox()<-
would be the logical way, but no such method exists.Do a true clip operation, such that non-infinitesimal elements (e.g. polygons, lines) are cut off at the boundary.
sp::bbox
lacks an assignment method, so the only way I've come up with would be to useover
orgContains
/gCrosses
in conjunction with a SpatialPolygons object containing a box with the new bounding box's coordinates. Then when clipping a polygon object, you'd have to figure out which are contained vs. cross, and alter the coordinates of those polygons so that they don't exceed the box. Or something likegIntersection
. But surely there's a simpler way?
While I know that there are many problems with bounding boxes, and that a spatial overlay to a polygon that defines the region of interest is typically preferable, in many situations, bounding boxes work fine and are simpler.
No comments:
Post a Comment