如何有效地校正Xarray数据集的偏度

问题描述

我正在研究CDS API,我有兴趣实现最好的方法,在该方法中,我可以首先找出Xarray DataSet的特定DataArray的偏斜度。然后在同一DataArray上应用任何合适的转换(例如Box Cox)。请注意,DataArray为2D格式(经度和纬度)

问题是:

  1. scipy偏斜方法提供2D数组中每个元素的偏斜度。我了解理想情况下它应该像这样工作,但是我正在寻找的是整个2D DataArray的偏斜值。

  2. 我想应用Box Cox以及Xarray DataArray上可用的任何其他转换,但是它们似乎只接受一维数组。如何以最有效的方式对2D或更高维数组实现相同的功能

我目前正在尝试做的是这样:

import xarray as xr
import scipy.stats as stats

ds = xr.open_dataset("datasets.nc")
tp = ds['tp']

tp = stats.Boxcox(tp)

我期望的是转换后没有扭曲的数据。 是否有直接的方法,例如我要尝试的方法?如果没有,我在这里想念什么?

如果我尝试直接在数据数组'tp'上使用Boxcox,则会收到此错误(参考上面第二点):

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-8-bbb0bad8d4d5> in <module>()
----> 1 tp_Boxcox = stats.Boxcox(tp)
      2 tp_Boxcox

/usr/local/lib/python3.6/dist-packages/scipy/stats/morestats.py in Boxcox(x,lmbda,alpha)
   1034     x = np.asarray(x)
   1035     if x.ndim != 1:
-> 1036         raise ValueError("Data must be 1-dimensional.")
   1037 
   1038     if x.size == 0:

ValueError: Data must be 1-dimensional.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)