Я хочу получить график Ховмоллера, который вычисляет продольное среднее значение по всей Африке и отображает общее месячное количество осадков для каждого месяца и каждой широты.
У меня есть следующий файл netcdf:
afr = readOGR("F:/Africultures/shps/TM_WORLD_BORDERS-0.3.shp")
#
model1= stack("F:/Africultures/cordex/pr/model1.nc")
r2 = crop(model1, extent(afr))
r3 = mask(r2, afr)
model1= stack(r3)
#
> model1
class : RasterStack
dimensions : 168, 148, 24864, 12 (nrow, ncol, ncell, nlayers)
resolution : 0.5, 0.5 (x, y)
extent : -17.5, 56.5, -46.5, 37.5 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
names : X2008.01.16, X2008.02.15, X2008.03.16, X2008.04.16, X2008.05.16, X2008.06.16, X2008.07.16, X2008.08.16, X2008.09.16, X2008.10.16, X2008.11.16, X2008.12.16
min values : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
max values : 1202.7720, 988.6817, 1112.4779, 1798.5912, 2003.0107, 1738.6660, 1509.1978, 1570.9318, 1471.7200, 1593.1401, 657.7618, 774.1619
Итак, я вычисляю зональное среднее значение следующим образом (месячные значения):
#
idx <- seq(as.Date('2008-01-01'), as.Date('2008-12-31'), 'month')
#
SISmm <- setZ(rca4, idx)
dirLayer <- init(SISmm, v='y')
#
z <- zonal(SISmm, dirLayer, FUN='mean', digits=2)
dat <- expand.grid(y=z[,1], x=idx)
dat$z <- as.vector(z[,-1], mode='numeric')
levelplot(z ~ x*y, data=dat, col.regions=cr2,
xlab='Time', ylab='Latitude',
panel=panel.levelplot.raster,
interpolate=TRUE,
par.settings=RdBuTheme(), main="Model Precipitation", at=seq(0,260,10))
В результате я получаю следующее.Как видите, это очень размыто, и я бы хотел это исправить.Я провел много испытаний (играя с цветовыми ограничениями, цветовыми приращениями и т. Д.) На случай, если речь шла о цветовой шкале, но это не так.
введите описание изображения здесь