пакет растра обеспечивает функцию, называемую rotate
, чтокак выполнить обратную растра :: поворачивать
«вращается растровый * объект, который имеет координаты х (широта, долгота) от 0 до 360 , к стандартным координатам между -180 и 180 градусов. Долгота между 0 и 360 часто используется в глобальном климате моделей. "
Но если мы хотим, чтобы выполнить обратную функцию, чтобы это преобразование -180 до 180 долготы в 0 до 360 один, то функция не работает, потому что все это делает, чтобы отказаться от каких-либо данных, которые произошли от долготы меньше нуля:
library(maps)
library(maptools)
library(raster)
world = map("world", fill=TRUE, col="transparent", plot=FALSE)
world = map2SpatialPolygons(world, world$names, CRS("+proj=longlat +ellps=WGS84"))
world = rasterize(world, raster(nrows=100,ncols=200, ext=extent(-180,180,-90,90)))
plot(world)
plot(rotate(world))
Как выполнить инверсию rotate
для преобразования «стандартных координат» в диапазоне от -180 до 180 в 0 до 360 координат?
Это его собственный обратный, или, по крайней мере, он имел обыкновение быть – mdsumner
@mdsumner конечно, это то, что можно было бы ожидать. Но, как показывает мой пример, это не сейчас, хотя вы можете быть правы, что это было когда-то. Документация предполагает, что она предназначена только для работы в одном направлении, поэтому я не думаю, что это ошибка, как недостающая функция. – dww
Да, жаль, что это был просто комментарий :) FWIW Я сохранил прежнее поведение здесь, потому что это было намного проще, чем обновление всех его применений: https://github.com/AustralianAntarcticDivision/raadtools/blob/3c92c6a6873a550773ff9e583e009bc1b62020be/R/utils .Р – mdsumner