У меня есть набор данных, состоящий из lon, lat и среднемесячной переменной (например, температуры или осадков), охватывающий период с 1961 по 1970 год. Набор данных имеет разрешение 0,5 на 0,5 степень долгота/широта и охватывает весь земной шар, и была загружена как файл .NC, который я распакованный данные в R с помощью:Как изменить данные разрешения (или регрессии) в R
library(ncdf)
f <- open.ncdf("D:/CRU/cru_ts3.21.1961.1970.tmp.dat.nc")
A <- get.var.ncdf(nc=f,varid="tmp")
B <- get.var.ncdf(nc=f,varid="lon")
C <- get.var.ncdf(nc=f,varid="lat")
D <- cbind(expand.grid(B, C))
E <- expand.grid(A)
Вспученных сетки (Е) представляет собой таблицу данных, состоящая из 31,104,000 строк переменная и расширенная сетка (D) представляют собой таблицу данных, состоящую из 259 200 строк lon/lat. Если вы умножаете 259 200 * 10 лет * 12 месяцев, вы получите 31,104,000. Следовательно, таблица Е может быть рубят в месячные значения с помощью:
Month <- 1
Start <- (Month-1)*(259200)+1
Finish <- (Month*259200)
G <- E[Start:Finish,]
H <- expand.grid(G)
I <- cbind(D,H)
Поэтому я теперь таблица данных первого месяца (т.е. январь 1961), состоящий из долготы, Lat и переменный. Пример данных приведен ниже:
lon lat tmp
49184 -68.25 -55.75 7.5
49185 -67.75 -55.75 7.6
49186 -67.25 -55.75 7.6
49899 -70.75 -55.25 6.8
49900 -70.25 -55.25 7.0
49901 -69.75 -55.25 6.9
49902 -69.25 -55.25 7.1
49903 -68.75 -55.25 6.8
49904 -68.25 -55.25 7.6
49905 -67.75 -55.25 8.2
Теперь на мой вопрос. Текущее разрешение сетки составляет 0,5 * 0,5 градуса, и я хотел бы «восстановить» данные, чтобы разрешение составляло 0,25 * 0,25 градуса. Я не хочу делать что-либо особенно умное с данными, поэтому я просто хочу, чтобы сетка 0,25 использовала значение сетки 0,5, в которой она сидит, т.е. каждая сетка 0,5 * 0,5 содержит 4 0,25 * 0,25 сетки, и я просто хочу, чтобы 4 0,25 * 0,25 сетки имеют то же значение, что и сетка 0,5 * 0,5.
Я посмотрел растровый, но, похоже, ничего не могу с этим поделать.