2

我已经以 netcdf 文件的形式下载了气候模型输出,该文件具有一个变量 (pr),适用于全世界,具有每日时间步长。我的最终目标是获得欧洲的月度数据。

我以前从未使用过 netcdf 文件,而且我能找到的所有 netcdf 特定软件似乎都不适用于 Windows。由于我在 R 中编程,我尝试使用 ncdf4 包,但遇到了内存大小问题(我的文件大约 2Gb)......我现在正在 python 中尝试 netCDF4 模块(我第一次使用 python - 所以对我来说轻松一点)。

我已经设法安装了所有东西,并在网上找到了一些代码来导入数据集:

nc_fid = Dataset(nc_f, 'r')  
# Extract data from NetCDF file
lats = nc_fid.variables['lat'][:]
lons = nc_fid.variables['lon'][:]
time = nc_fid.variables['time'][:]
pp  = nc_fid.variables['pr'][:]  

然而,我找到的所有教程都是关于如何制作 netcdf 文件......我不知道如何将这个每日降雨量(变量 pr)汇总到每月。另外,我在不同的文件中有不同类型的日历,但我什至不知道如何访问这些信息:

time.calendar
AttributeError: 'numpy.ndarray' object has no attribute 'calendar'

请帮忙,我不想为了整理一些数据而学习 Linux :(

4

2 回答 2

3

为什么不完全避免编程并使用提供ncrcat命令的NCO ,从而聚合数据:

ncrcat day*.nc month.nc

瞧。在此处查看更多ncrcat示例。

添加了 20160628:如果您想要每月平均值而不是一个月的时间序列,则仅对ncra而不是ncrcat使用相同的命令。手册解释了这样的事情。

于 2015-02-13T00:09:49.310 回答
2

如果您有每日时间步长并且想要计算每月平均值,那么您可以这样做

cdo monmean input_yyyy.nc output_yyyy.nc

听起来好像你有几个这样的文件,所以你需要将它们与

cdo mergetime file_*.nc timeseries.nc 

其中 * 是年份的通配符。

于 2017-08-14T14:39:52.210 回答