这是我第一次使用 netCDF,我正试图全神贯注地使用它。
我有多个版本 3 netcdf 文件(NOAA NARR air.2m 全年平均每天)。每个文件跨越 1979 年至 2012 年之间的一年。它们是 349 x 277 网格,分辨率约为 32 公里。数据是从这里下载的。
维度是时间(自 1800 年 1 月 1 日以来的小时数),我感兴趣的变量是空气。我需要计算温度 < 0 的累积天数。例如
Day 1 = +4 degrees, accumulated days = 0
Day 2 = -1 degrees, accumulated days = 1
Day 3 = -2 degrees, accumulated days = 2
Day 4 = -4 degrees, accumulated days = 3
Day 5 = +2 degrees, accumulated days = 0
Day 6 = -3 degrees, accumulated days = 1
我需要将此数据存储在一个新的 netcdf 文件中。我对 Python 很熟悉,对 R 也有一些了解。每天循环的最佳方式是什么,检查前几天的值,并在此基础上将值输出到具有完全相同维度和变量的新 netcdf 文件... . 或者也许只是将另一个变量添加到原始 netcdf 文件中,其中包含我正在寻找的输出。
最好将所有文件分开还是合并?我将它们与 ncrcat 结合使用,效果很好,但文件为 2.3gb。
感谢您的输入。
我目前在 python 方面的进展:
import numpy
import netCDF4
#Change my working DIR
f = netCDF4.Dataset('air7912.nc', 'r')
for a in f.variables:
print(a)
#output =
lat
long
x
y
Lambert_Conformal
time
time_bnds
air
f.variables['air'][1, 1, 1]
#Output
298.37473
为了帮助我更好地理解这一点,我正在使用哪种类型的数据结构?['air'] 是上面示例中的键,而 [1,1,1] 也是键吗?得到 298.37473 的值。然后我怎样才能循环通过[1,1,1]?