#time-series #ncdf4
#временные ряды #ncdf4
Вопрос:
Я хотел бы обновить следующие коды для извлечения ежедневных климатических временных рядов из базы данных E-OBS в несколько (определяемых пользователем) ближайших точек:
Я использую пакет ncdf4 для чтения данных E-OBS:
library(ncdf4)
obsdata <- nc_open("tg_ens_mean_0.1deg_reg_v19.0e.nc")
Создайте фрейм данных с местоположениями и координатами WGS84:
df <- data.frame(locality=c(1,2,3), lat=c(48,48,48), lon=c(17,18,19))
Теперь запустите эти коды, чтобы извлечь данные из ближайшей точки и сохранить в отдельных CSV-файлах по идентификатору местоположения:
for (i in 1:nrow(df)) {
lat <- df[i,2] # longitude of location
lon <- df[i,3] # latitude of location
# get dates
obsdatadates <- as.Date(obsdata$dim$time$vals, origin = '1950-01-01')
# get values at location lonlat
obsoutput <- ncvar_get(obsdata, varid = "tg",
start= c(which.min(abs(obsdata$dim$longitude$vals - lon)), # look for closest long
which.min(abs(obsdata$dim$latitude$vals - lat)), # look for closest lat
1),
count = c(1,1,-1)) #count '-1' means 'all values along that dimension'that dimension'
# create dataframe
datafinal <- data.frame(date= obsdatadates, value = obsoutput, latitude=lat, longitude=lon, variable="Tday")
fn1<-paste0(df[i,1],"_","Tday",".csv")
write.table(datafinal,fn1,sep=",", row.names=FALSE)
}
Любая помощь приветствуется!
Спасибо!