问题标签 [python-xarray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1940 浏览

multidimensional-array - 按坐标选择,python-xarray

我有一个小的 python-xarray ,DataArrayTINY用维度xyt. TINY表示一个较大的DataSetI 调用HUGE的具有维度x'y't'和 变量的已处理子集foobar并且baz

我正在寻找一种从使用坐标中选择数据集的方法。(所有坐标和坐标对都存在于巨大的空间中) HUGETINY

我匆匆草拟了下图

在此处输入图像描述

选择返回HUGE共享 的子coordsTINY。返回的是一个DataSet. 是否有一些速记 x-array 方法来处理这个?

0 投票
2 回答
1504 浏览

python-xarray - groupby_bins 两个变量?

nl假设我有一个包含 4124 个测量值的数组。每个都与指定测量发生位置的 ( lat, ) 对相关联。lon这些位置没有网格化,即它们没有与规则间隔的值对齐。

我创建一个 DataArray nl,指定latlon作为坐标:

我知道我可以将这些值分组到经度或纬度的箱中以对它们进行操作,例如

我想做的是在经度 x 纬度的 2D 箱中对值进行分组,因此我可以将结果显示为地图。我不认为 groupby_bins 可以做到这一点,还有其他解决方案吗?

更新示例:

这就是我如何使用 numpy 来做我想做的事情:

我想避免使用 numpy 来保持 xarray 与 dash 的集成。

0 投票
2 回答
1445 浏览

python - 如何反转坐标向量并将转换应用于所有数据变量?

我在 xarray 中有以下数据集(见下文)。我正在寻找翻转“纬度”坐标并将其应用于所有数据变量。自然,纬度应该从最大值到最小值(90 到 -90),当我尝试使用 latitude[::-1] 之类的东西时,它不会将该反转函数应用于数据变量本身。我通过在反转纬度向量之前和之后从 TMP_2maboveground[0,50,50] 中获取值来测试这一点。这些值返回相同,这是不可能的,因为它们在反转纬度矢量之前和之后应该是地球上的两个不同位置。

简而言之,如何反转纬度向量并将其应用于所有数据变量?

谢谢

安吉

0 投票
1 回答
1410 浏览

python - 如何将 xarray 数据集转换为 dask 数据帧内的 pandas 数据帧

我有一个需要熊猫数据框作为输入的计算。我想对存储在扩展至 51GB 的 netCDF 文件中的数据运行此计算 - 目前我一直在xarray.open_dataset使用块打开文件(我的理解是这个打开的文件实际上是一个 dask 数组,所以只加载块一次将数据存入内存)。但是,我似乎无法利用这种延迟加载,因为我必须将 xarray 数据转换为 pandas 数据帧才能运行我的计算 - 我的理解是,此时所有数据都已加载进入内存(这很糟糕)。

所以我想长话短说,我的问题是:如何在没有任何中间步骤将我的整个数据加载到内存中的情况下从 xarray 数据集到 pandas 数据帧?我已经看到 dask 使用pandas.read_csv,并且我看到它使用 xarray,但我不确定如何将已经打开的 netCDF xarray 数据集转换为块中的 pandas 数据帧。

感谢和抱歉这个模糊的问题!

0 投票
0 回答
767 浏览

python - xarray DataArray - 如何使用 ffill 填充?

如果有一个 Panel.ffill(axis=None, inplace=False, limit=None, downcast=None)Panel.fillna(value=None, method=None, ...)对于具有三个维度的 DataArray ,什么是等价的?

DataArray 有一个 fillna 方法,但只接受一个值作为参数。DataArray.fillna(value).

示例:如何使用 xarray 的现有方法使用先前的非 nan 值填充 nan 值?

0 投票
1 回答
281 浏览

python - 使用 xray.DataArray.groupby 后如何选择特定组?

例如,我想使用以下方法选择DJF降水值:

我不想在整个时间段内取平均值(不需要.mean('time')部分),只是为了得到DJF那个时期的值。

0 投票
2 回答
643 浏览

python - 获取一维结果列表并将其转换为 ND xarray.DataArray

这就是我获取 ND 数据func的方式(IRL 不可矢量化):

我有一种感觉,我所做的事情可以被简化。我想把它放在一个xarray.DataArray不改变数据的地方。但是,这就是我现在的做法:

这是一个简单的示例,但通常我使用通过映射 a itertools.product(并行)获得的 ~10D 数据。

我的问题:如何在不重塑数据以及使用和不使用、和vals的长度的情况下做到这一点?xsyszs

与您的处理方式类似:

编辑: 这就是我解决它的方法,受到@hpaulj 回答的启发,谢谢!

编辑 2 看到这个问题:https ://github.com/pydata/xarray/issues/1914

0 投票
1 回答
5854 浏览

python - 具有多个条件的 xarray.where()

我有一个带有土地覆盖类型的 dataArray。我想掩盖列表中的某些值。是否可以在多个条件下使用 xr.where() 函数?

这使:

以上适用于两种土地覆盖值,但对 30 种类型执行此操作很乏味。有没有更好的办法?

0 投票
3 回答
2758 浏览

python-2.7 - 使用 xarray 读取多个坐标

我正在使用 xarray 从 openDAP 服务器读取单点数据,然后将 xarray 对象转换为数据框。这工作正常。我想在一次通话中阅读多个点,但我不知道这是最好的方法。

这是我用于单点的代码:

为了阅读多个点,我这样做:

这是输出data.coords

当我转换为数据框时,生成的对象在时间戳中包含时间和坐标的混合。这是它的外观:

包含多个点的数据框

我的问题是:

  • 这是使用 xarray 检索多个点的最佳方法吗?
  • 如何从结果数据帧的单个点中提取数据?

提前致谢!

0 投票
1 回答
5108 浏览

numpy - 获取 xarray 数据集的非 nan 值的坐标

我有这个包含全球气温的样本数据集,更重要的是,一个面具land,标记陆地/非水域。

我现在可以掩盖海洋并绘制它

仅绘制土地区域 dry_areas看起来像这样

我现在如何获取所有非 nan 值的坐标?

dry_areas.coords给了我边界框,我无法将 lat 和 lon 放入(55, 143)形状中,所以我可以在上面应用蒙版。

我能找到的唯一可行的解​​决方法是 dry_areas.to_dataframe().dropna().reset_index()[['lat', 'lon']].values,感觉不是很精简和干净。

我觉得这很简单,但是我显然不是一个 numpy/matrix ninja。

迄今为止最好的解决方案

这是迄今为止我能想到的最短的: