rotate.Rd
Rotate a SpatRaster that has longitude coordinates from 0 to 360, to standard coordinates between -180 and 180 degrees (or vice-versa). Longitude between 0 and 360 is frequently used in global climate models.
Rotate a SpatVector as for a SpatRaster split=TRUE
, or to correct for coordinates that are connected across the date line (and end up at the "other side" of the longitude scale) are reconnected.
# S4 method for SpatRaster
rotate(x, left=TRUE, filename="", ...)
# S4 method for SpatVector
rotate(x, longitude=0, split=FALSE, left=TRUE, normalize=FALSE)
SpatRaster or SpatVector
logical. If TRUE
, rotate to the left, else to the right
character. Output filename
additional arguments for writing files as in writeRaster
numeric. The longitude around which to rotate
logical. Should geometries be split at longitude
?
logical. Should the output be normalized to longitudes between -180 and 180? See normalize.longitude
SpatRaster
x <- rast(nrows=9, ncols=18, nl=3, xmin=0, xmax=360)
v <- rep(as.vector(t(matrix(1:ncell(x), nrow=9, ncol=18))), 3)
values(x) <- v
z <- rotate(x)
#SpatVector
p <- rbind(c(3847903, 1983584 ), c(3847903, 5801864), c(8301883, 5801864), c(8301883, 1983584 ))
p <- vect(p, "polygons", crs="+init=EPSG:3347")
d <- densify(p, 100000)
g <- project(d, "+proj=longlat")
x <- rotate(g, 50)
plot(g)
lines(x, col="red")
## rotate countries to 0-360 longitude
#w <- geodata::world(path=".")
#x <- rotate(w, long=0, split=TRUE, left=FALSE)