rotate {terra} | R Documentation |
Rotate data along longitude
Description
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.
Usage
## S4 method for signature 'SpatRaster'
rotate(x, left=TRUE, filename="", ...)
## S4 method for signature 'SpatVector'
rotate(x, longitude=0, split=FALSE, left=TRUE, normalize=FALSE)
Arguments
x |
SpatRaster or SpatVector |
left |
logical. If |
filename |
character. Output filename |
... |
additional arguments for writing files as in |
longitude |
numeric. The longitude around which to rotate |
split |
logical. Should geometries be split at |
normalize |
logical. Should the output be normalized to longitudes between -180 and 180? See |
Value
SpatRaster
See Also
Examples
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)
## Not run:
#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")
## End(Not run)
## rotate countries to 0-360 longitude
#w <- geodata::world(path=".")
#x <- rotate(w, long=0, split=TRUE, left=FALSE)