簡體   English   中英

30 年期間與相鄰天數的平均每日值

[英]Average daily values for 30 year period with adjacents days

我在 netcdf 文件中將每日平均溫度從 19610101 到 19901231 網格化(10 公里網格)。 我想計算 30 年的統計值(平均值等),例如 1 月 4 日應該有從 1 月 1 日到 1 月 7 日從每年 1961...1990 的值:每個網格點和天應該有 210 個值.

原始網格大小為 68(x) * 116 (y) * 10957(天),最終網格大小為 68 * 116 * 365。

下面的腳本有效,但速度很慢。 您能否告訴我一個更好的解決方案,這樣我也可以計算 1 公里網格的統計值。


days <- ncvar_get(nc_in,"Time")

days.px <- as.POSIXlt(days,formt="%d-%m-%")



for (year_day in 0:364) { 

  days_in_interest <- (year_day - 3):(year_day + 3)

  days_in_interest[which(days_in_interest < 0)] <- 365 + days[which(days_in_interest < 0)]

  days_in_interest[which(days_in_interest > 364)] <- days_in_interest[which(days_in_interest >364)] - 364

  t_values <- grid_values[,,which((days.px$yday%in%days_in_interest )&days.px$yday!=365)]
 
  t_mean <- apply(t_values , c(1,2), mean) # grid point mean 

}

這可以使用 CDO 輕松實現:

cdo runmean,7 infile outfile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM