rotate function

Rotate data along longitude

Rotate data along longitude

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 with, or with split=FALSE to correct for coordinates that are connected across the date line (and end up at the "other side" of the longitude scale). methods

## S4 method for signature 'SpatRaster' rotate(x, left=TRUE, filename="", ...) ## S4 method for signature 'SpatVector' rotate(x, longitude=0, split=TRUE, 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

Returns

SpatRaster

See Also

shift and spin

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)
  • Maintainer: Robert J. Hijmans
  • License: GPL (>= 3)
  • Last published: 2025-02-26