R - береговая линия не вписывается в карту - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть этот набор данных это данные об осадках GPCC 1x1: И для построения графика я сделал это:

library(RNetCDF)
library(raster)
library(pracma)
library(rasterVis)
library(colorRamps)
library(rgdal)


file <- open.nc("C:/Users/Ann/Downloads/precipitacion_mensual.nc")
var <- var.get.nc(file,"precip")
ro <- var[ , ,80]

ro_2 <- pracma::circshift(ro, c(180,2))

A <- raster(t(ro_2))

extent(A) <- c(-180, 180, -90, 90)

mex <- getData("GADM", country="MEX", level=0)

B <- crop(A,mex)
plot(B,main="Tit", xlab = "lon", ylab ="lat",col=matlab.like(n = 10),zlim = c(0, 500))

plot(mex, add =TRUE)

Но когда я строю график, он получается так enter image description here Как вы можете видеть, береговая линия не перекрывается должным образом на карте.Как я могу это исправить?

1 Ответ

0 голосов
/ 25 февраля 2019

Оказывается, проблема была в функции circshift, которую, как я думал, при наборе circshift(variable,c(180,2)), она выполнит круговое смещение на 180 градусов вдоль второго измерения.Однако для этого необходимо сместить на 180 градусов первое измерение и на 2 градуса второе измерение.Мне нужно только поставить circshift(var, c(179.5,0.5)), и карта получается идеальной.

...