如何将经度从0 - 360转换为-180 - 180

use*_*676 6 r raster

CMIP5未来气候数据的经度为0 - 360度.如何使用光栅包将其转换为-180 - 180度?

我试过shift(r0,-180)shift(r0,-360).这是行不通的.任何帮助将不胜感激.r0这是一个栅格.

Jos*_*ien 13

试试rotate().它的帮助页面甚至提到了它与你正在处理的数据类型的效用:

将x坐标(经度)从0到360的Raster*对象旋转到-180到180度之间的标准坐标.全球气候模型的数据经常使用0到360之间的经度.

这是一个简单的可重现的例子来展示它的作用:

library(raster)
r <- raster(matrix(1:100, ncol=10), 0, 360, -90, 90, crs="+proj=merc")
r2 <- rotate(r)
r2
# class       : RasterLayer 
# dimensions  : 10, 10, 100  (nrow, ncol, ncell)
# resolution  : 36, 18  (x, y)
# extent      : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=merc 
# data source : in memory
# names       : layer 
# values      : 1, 100  (min, max)
Run Code Online (Sandbox Code Playgroud)


Señ*_*r O 5

这很简单:

ifelse(r0 > 180, -360 + r0, r0)
Run Code Online (Sandbox Code Playgroud)