Try rotate()
. Его страница помощи даже упоминает его полезность, с типом данных, которые вы имеете дело с:
Поворот растровый * объект, который имеет координаты х (долгота) от 0 до 360, в стандартных координатах между -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)
1+ Это действительно RTM, но иногда когнитивная задача интересна. Когда появился ваш ответ, я держал большие пальцы и указательный палец по кругу, поочередно открывая их между большими пальцами, а затем между указательными пальцами и мысленно выясняя, какое переназначение необходимо было для правильного соединения противоположных «180-х». –
@BondedDust - Я думаю, что функция, необходимая для захвата этого переназначения, равна '((long + 180) %% 360) - 180'. Его единственная (в конечном счете несущественная) неправомерность заключается в том, что она переназначает значение от 180 до -180 ... –
Право, операции по модулю определяют математическое кольцо. –