【问题标题】:Extract monthly data from hourly resoluted netcdf file in nco从 nco 中每小时解析的 netcdf 文件中提取月度数据
【发布时间】:2017-05-31 07:07:05
【问题描述】:

如标题所示,我想从 .nc 文件中提取一个时间段,例如变量 wind_speed 的一月,该文件包含一年内以 3 小时为分辨率的风速。如果可能,我想在 nco 中执行此操作。

我尝试了以下方法:ncrcat -O -F -d time,1,248 -v wind_speed sfcWind.nc out.nc,它有效。对于这种方法,我需要计算所选月份的时间跨度。 nco中是否有其他方法可以指定月份并获取相应的数据?

另一件事是,如果想要 dec、jan、feb 的数据,则不能使用此方法,或者至少据我所知。这里有什么建议吗?

最佳邮件

【问题讨论】:

  • 我建议创建一个简单的脚本来生成指定的开始/结束索引(例如跨 DJF),然后构建一个 ncks(或其他函数)命令以根据这些开始/结束索引执行.如果您分享有问题的 netcdf 文件,我可以提供更多指导。
  • 尊敬的 N1B4,感谢您的回复。我想查看 netcdf 文件,但它大约 2GB,太大了。
  • 您能否提供有关其内容的更多详细信息,也许使用ncdump -h yourfile.nc
  • 我设法在我的 hotmail onedrive 上上传了一个文件。它的大小小于 1 GB。您可以通过此链接找到它:1drv.ms/f/s!AlJG9g1WlnmlhDC1WfgR1ljtI67E 很抱歉造成误解,但变量名为 sfcWind(与文件相同)。我的目标是学习如何提取 dec、jan、feb 的风速并将它们保存在一个文件中。
  • 我使用了查理·赞德(Charlie Zender)在下面提出的方法,它奏效了。谢谢

标签: hour extrapolation nco


【解决方案1】:

NCO 支持multislabs,即一个命令中的多个时间超切片。有了这个,您可以将任意月份组合在一起,并且 --msa 开关将使它们保持有序。手册是您的朋友。

【讨论】:

  • 亲爱的查理,我使用了你提出的方法,它奏效了。我想知道是否存在从特定月份选择数据的任何方法。例如,如果我写了某个命令,然后再写“3”,那么我会得到三月份包含的所有数据吗?
  • 您可以根据 hyperslab 下标或 hyperslab 值提取数据。该值可以是日期,假设时间变量具有 UDUnits 格式的“单位”属性。如果我理解你的问题,那可能就是你想要的。这在“hyperslabs”部分的手册中进行了解释。
  • 是的,这就是我使用的。我只是想象在所有精细操作中存在一个在月份上操作的操作,例如“1”代表一月,“2”代表二月等等。
  • 如果我回答了您的问题,请将问题标记为已回答。
  • cdo 允许您根据需要指定月份,例如1=1 月等,见下文。
【解决方案2】:

cdo 可以做到这一点,将索引设置为您选择的月份。

cdo selmon,1 sfcWind.nc sfcWind_jan.nc

如果你想选择你提到的几个月,你可以只提供一个逗号分隔的列表(当然,如果你有一年的数据,那么你的 12 月将不会与 1 月、2 月“相邻”)。

【讨论】:

    猜你喜欢
    • 2018-09-02
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多