【问题标题】:How to convert annual netCDF data to daily from the command line?如何从命令行将年度 netCDF 数据转换为每日数据?
【发布时间】:2025-12-29 10:10:07
【问题描述】:

在我求助于使用 Python 之前,我想知道是否有一种简单的方法可以从命令行将年度 netCDF 文件简单地通过复制(包括跳跃年),即每个年值重复 365 (366) 次,并带有相应的日期戳。

在文件中,每个数据值都标有每年第一天的日期:

cdo showdate population_ssp2soc_0p5deg_annual_2006-2100_density.nc4
2006-01-01  2007-01-01  2008-01-01  2009-01-01  2010-01-01  ...etc

我知道这似乎是一件奇怪的事情(文件大小将大 365.25 倍!),但我想将数据读入一个使用每日时间步长的 Fortran 程序,并且不想搞乱日期在 Fortran 代码中。

【问题讨论】:

    标签: netcdf netcdf4 nco cdo-climate


    【解决方案1】:

    可能有一种更有效的方法来做到这一点。但是您可以先合并原始文件,然后再合并第一个文件,但时间会转移到一年中的最后一天。然后进行时间插值:

    cdo -mergetime population_ssp2soc_0p5deg_annual_2006-2100_density.nc4 -shifttime,-1day -shifttime,1year population_ssp2soc_0p5deg_annual_2006-2100_density.nc4 temp.nc
    
    cdo inttime,2006-01-01,12:00:00,1day temp.nc outfile.nc
    

    【讨论】:

    • 呃,为什么我没有想到以这种方式使用 inttime?超级回答谢谢。