【问题标题】:How to select an inter-year period with xarray?如何使用 xarray 选择跨年期间?
【发布时间】:2018-09-30 04:43:35
【问题描述】:

背景:我有一个包含 30 年(每日)数据的 netCDF。我想选择特定月份的年份数据,例如每年 5 月至 3 月期间。

我可以使用一个单独的函数来进行选择,但我希望有一种直接的方法来使用 xarray。我安装的版本是0.9.6

【问题讨论】:

  • “直截了当的方式”是什么意思?我在想xarray 不是 CDO 或 NCO,你可以只给一个操作员,然后得到你想要的结果。使用 Python 脚本,您必须为您的输出工作 - 使用所有必要的变量/维度初始化新文件,剪切您需要的数据,写入选定的数据。也许使用 cdo/nco,您可以用更少的努力得到您想要的。
  • "“直截了当的方式”是什么意思 - 一个例子是重采样方法 (xarray.pydata.org/en/stable/generated/…),它允许您在各种时间范围内跨时间序列选择样本 - 这是一种可用于简化常见任务的内置方法的示例。现在,对于我所追求的,我当然可以使用apply 和我自己的函数完成我所追求的 - 我在正文中说了这么多我的问题。如果您有任何其他建议而不是该方法,欢迎您写一个答案。

标签: python python-xarray


【解决方案1】:

如果您的时间维度是日期时间对象,您可以使用 DatetimeAccessor 对象仅选择您想要的月份:

# select only daily data from June, July, and August
da_jja_only = ds.sel(time=ds.time.dt.month.isin([6, 7, 8]))

【讨论】:

  • 我必须更新到最新版本的 xarray (0.10.9),但解决了我的问题。
  • da_jja_only = ds.sel(datetime=ds.datetime.dt.month.isin([6, 7, 8])) 为我工作。谢谢你的线索!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2020-07-28
  • 2019-03-28
相关资源
最近更新 更多