【问题标题】:How to import 3 hourly data in daily basis into xarray for a whole year如何将全年每天 3 小时的数据导入 xarray
【发布时间】:2020-01-13 19:48:11
【问题描述】:

我试图将 3 小时 netCDF 数据导入 xarray 并找到其每日平均值。我可以简单地选择特定的日子并获得每日平均值,但是如何在一整年中执行此过程?如何做到这一点?

import xarray as xr

fname='/home/atmosphere/GRIDSAT-B1.2010.12.01.*.v02r01.nc'         
ds=xr.open_mfdataset(fname))
varlist=list(ds.variables)
imr=ds.sel(lat=slice(0,30),lon=slice(25,45)) #subsetting dataset
bt=imr['irwin_cdr']                          #making into a data array  
dailymean1=imrbt.mean('time')

在上面的代码中,我可以获得 2010 年 12 月 1 日的每日平均值,但我如何才能找到全年的每日平均值?我们将不胜感激。

【问题讨论】:

    标签: python import netcdf python-xarray


    【解决方案1】:

    我想你可能想使用一个叫做resample的方法:

    daily_mean = ds.resample(time='D').mean()
    

    它的一个主要用例是将时间序列下采样到更粗略的常规频率(例如,从三小时数据到每日平均数据)。确保 ds 包含您要重新采样的所有数据(您可能需要更改 glob 字符串)。

    【讨论】:

    • 谢谢。但如果我使用 resample fname='/home/atmosphere/GRIDSAT-B1.2010.12.01.*.v02r01.nc' ds=xr.open_mfdataset(fname)) bt=imr['irwin_cdr'] daily_mean = ds.resample(time='3H').mean()' 编写代码
    • 你能澄清一下吗?
    • 没错——如果你愿意,你也可以一次做多年(如果你有不止一个)。
    • 实际上我的回答中有一个错字——您需要指定 time='D' 以重新采样到每日频率。
    • 当然——如果ds 是一个数据集,daily_mean 将是一个数据集;如果ds 是一个DataArray,daily_mean 将是一个DataArray。
    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多