【问题标题】:How to convert daily to monthly netcdf files如何将每天的 netcdf 文件转换为每月的 netcdf 文件
【发布时间】:2014-12-02 03:50:18
【问题描述】:

我已经下载了 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只是为了整理一些数据:(

【问题讨论】:

  • 详细介绍输入的netCDF每日数据。是每天一个文件吗?还是全部在一个文件中?不同的日历是什么意思?
  • 每个文件中有几年,每个气候模型的整个时间序列都在几个文件中(但如果你能告诉我如何为每个文件做这已经很有帮助)。我需要考虑日历类型,因为一旦我知道该怎么做,我将为不同气候模型的输出运行代码,并且它们有不同的日历(标准,360 天......)

标签: python netcdf nco cdo-climate


【解决方案1】:

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

ncrcat day*.nc month.nc

瞧。查看更多 ncrcat 示例here

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

【讨论】:

  • 问你一个小问题,我做了你发布的内容,但它只是合并了我的每日 NetCDF,但没有做每月平均......你能建议一些吗?
【解决方案2】:

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

cdo monmean input_yyyy.nc output_yyyy.nc

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

合并
cdo mergetime file_*.nc timeseries.nc 

其中 * 是年份的通配符。

【讨论】:

    猜你喜欢
    • 2019-06-19
    • 1970-01-01
    • 2021-06-02
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多