如何计算一段时间内的气候指标tn10p <一年365天



目标是计算气候指标tn10p (Tmin <第10个百分位数)基于icclim包(链接)。或者,我尝试了xclim包中的相同指示器。(在这里)。我想计算特定时间段的预测因子,例如:'>

1 -打开xarray数据集(每3小时)

t2m = xa.open_dataset('filepath.nc', decode_cf = True, decode_coords = "all").sel(time=slice('1960-12-01', '1961-01-31'))

2 -计算最低日温度值

t2m_min = t2m.t2m.resample(time='1D').min(keep_attrs = True)

3.1 - With Icclim:

icclim_tn10p = icclim._generated_api.tn10p(in_files=t2m_min, slice_mode=['season',([12,1])])

3.2 -使用xClim:

t2m_min_q10 = percentile_doy(arr = t2m_min, window=5, per=10).sel(percentiles=10)
xclim_tn10p = xclim.indicators.atmos.tn10p(tasmin = t2m_min, t10 = t2m_min_q10)

在3.1和3.2两种情况下,我得到以下ValueError:

ValueError: conflicting sizes for dimension 'dayofyear': length 61 on <this-array> and length 365 on {'longitude': 'longitude', 'latitude': 'latitude', 'dayofyear': 'dayofyear', 'percentiles': 'percentiles'}

我认为问题是percentile_doy函数(链接)似乎只适用于365或366个日历天。对于如何解决这个问题有什么建议吗?

似乎与这个xclim问题有关。

icclim库的工作方式如下:

  • 使用slice_mode='month'计算每年的tn10p
  • 从输出数组中选择时间范围

但是,这个过程会降低性能。

最新更新