Rotate data along longitude
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.
Usage
# S4 method for class 'SpatRaster'
rotate(x, left=TRUE, filename="", ...)
# S4 method for class 'SpatVector'
rotate(x, longitude=0, split=FALSE, left=TRUE, normalize=FALSE)
Arguments
- x
SpatRaster or SpatVector
- left
logical. If
TRUE
, rotate to the left, else to the right- filename
character. Output filename
- ...
additional arguments for writing files as in
writeRaster
- longitude
numeric. The longitude around which to rotate
- split
logical. Should geometries be split at
longitude
?- normalize
logical. Should the output be normalized to longitudes between -180 and 180? See
normalize.longitude
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)
if (FALSE) { # \dontrun{
#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)