How about just using high-level maptools? Following on directly from your code, the function elide can rotate the grid polygons:
library(maptools) plot(elide(grdp, rotate = -45), add = TRUE) On Thu, Nov 14, 2013 at 3:00 PM, Waichler, Scott R <scott.waich...@pnnl.gov> wrote: > I have an environmental process model whose domain is a regular grid that is > not oriented in the cardinal directions. I want to show an outline of the > active part of the domain, as well as other subgroupings of cells within the > domain, on a map figure. These will be "blocky" polygons oriented at an > angle to E-W, N-S. I assume I should do the rotation on (x,y,z) with > rotate3d() of rgl. If there is a way to rotate sp objects directly, do tell. > > library(rgl) > library(sp) > x <- y <- seq(0.5, 9.5, by=1) # cell centers of a toy grid > xy <- expand.grid(x, y) > xyz <- matrix(data = 0, nrow=nrow(xy), ncol=3) > xyz[,1] <- xy[,1] > xyz[,2] <- xy[,2] > # rotate the grid 45 degrees counterclockwise > xyz.r <- rotate3d(obj=xyz, angle=-pi/4, x=0, y=0, z=1) > # plot the cell centers (not vertices) of the original and rotated grids > plot(xyz[,1], xyz[,2], col="blue", type="p", asp=1, xlim=c(-6, 10), ylim=c(0, > 15), main="grid cell centers") > points(xyz.r[,1], xyz.r[,2], col="red", type="p") > > # I have learned this for defining polygons based on the original grid: > grd <- GridTopology(cellcentre.offset=c(0.5,0.5), cellsize=c(1,1), > cells.dim=c(10,10)) > grdp <- as.SpatialPolygons.GridTopology(grd) > > How can I efficiently extract the vertices of all the grdp polygons (each one > a square) so that I can rotate them? I think str() and slot() are needed but > I don't understand them. Once I have the rotated vertex coordinates, how do > I use them to define the new SpatialPolygons? Once I have SpatialPolygons, I > want to use unionSpatialPolygons(), so I also need to understand how to carry > through an attribute for classifying grid cells. > > I could easily rotate vertices instead of cell centers, but I wouldn't know > how to make grid cell polygons from the matrix of coordinates. > > Scott Waichler > Pacific Northwest National Laboratory, Washington, USA > scott.waich...@pnnl.gov > > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-geo -- Michael Sumner Hobart, Australia e-mail: mdsum...@gmail.com _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo