问题标签 [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.
multidimensional-array - 按坐标选择,python-xarray
我有一个小的 python-xarray ,DataArray
我TINY
用维度x
、y
和t
. TINY
表示一个较大的DataSet
I 调用HUGE
的具有维度x'
、y'
和t'
和 变量的已处理子集foo
,bar
并且baz
我正在寻找一种从使用坐标中选择数据集的方法。(所有坐标和坐标对都存在于巨大的空间中) HUGE
TINY
我匆匆草拟了下图
选择返回HUGE
共享 的子coords
集TINY
。返回的是一个DataSet
. 是否有一些速记 x-array 方法来处理这个?
python-xarray - groupby_bins 两个变量?
nl
假设我有一个包含 4124 个测量值的数组。每个都与指定测量发生位置的 ( lat
, ) 对相关联。lon
这些位置没有网格化,即它们没有与规则间隔的值对齐。
我创建一个 DataArray nl
,指定lat
和lon
作为坐标:
我知道我可以将这些值分组到经度或纬度的箱中以对它们进行操作,例如
我想做的是在经度 x 纬度的 2D 箱中对值进行分组,因此我可以将结果显示为地图。我不认为 groupby_bins 可以做到这一点,还有其他解决方案吗?
更新示例:
这就是我如何使用 numpy 来做我想做的事情:
我想避免使用 numpy 来保持 xarray 与 dash 的集成。
python - 如何反转坐标向量并将转换应用于所有数据变量?
我在 xarray 中有以下数据集(见下文)。我正在寻找翻转“纬度”坐标并将其应用于所有数据变量。自然,纬度应该从最大值到最小值(90 到 -90),当我尝试使用 latitude[::-1] 之类的东西时,它不会将该反转函数应用于数据变量本身。我通过在反转纬度向量之前和之后从 TMP_2maboveground[0,50,50] 中获取值来测试这一点。这些值返回相同,这是不可能的,因为它们在反转纬度矢量之前和之后应该是地球上的两个不同位置。
简而言之,如何反转纬度向量并将其应用于所有数据变量?
谢谢
安吉
python - 如何将 xarray 数据集转换为 dask 数据帧内的 pandas 数据帧
我有一个需要熊猫数据框作为输入的计算。我想对存储在扩展至 51GB 的 netCDF 文件中的数据运行此计算 - 目前我一直在xarray.open_dataset
使用块打开文件(我的理解是这个打开的文件实际上是一个 dask 数组,所以只加载块一次将数据存入内存)。但是,我似乎无法利用这种延迟加载,因为我必须将 xarray 数据转换为 pandas 数据帧才能运行我的计算 - 我的理解是,此时所有数据都已加载进入内存(这很糟糕)。
所以我想长话短说,我的问题是:如何在没有任何中间步骤将我的整个数据加载到内存中的情况下从 xarray 数据集到 pandas 数据帧?我已经看到 dask 使用pandas.read_csv
,并且我看到它使用 xarray,但我不确定如何将已经打开的 netCDF xarray 数据集转换为块中的 pandas 数据帧。
感谢和抱歉这个模糊的问题!
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 值?
python - 使用 xray.DataArray.groupby 后如何选择特定组?
例如,我想使用以下方法选择DJF降水值:
我不想在整个时间段内取平均值(不需要.mean('time')
部分),只是为了得到DJF
那个时期的值。
python - 获取一维结果列表并将其转换为 ND xarray.DataArray
这就是我获取 ND 数据func
的方式(IRL 不可矢量化):
我有一种感觉,我所做的事情可以被简化。我想把它放在一个xarray.DataArray
不改变数据的地方。但是,这就是我现在的做法:
这是一个简单的示例,但通常我使用通过映射 a itertools.product
(并行)获得的 ~10D 数据。
我的问题:如何在不重塑数据以及使用和不使用、和vals
的长度的情况下做到这一点?xs
ys
zs
与您的处理方式类似:
编辑: 这就是我解决它的方法,受到@hpaulj 回答的启发,谢谢!
编辑 2 看到这个问题:https ://github.com/pydata/xarray/issues/1914
python - 具有多个条件的 xarray.where()
我有一个带有土地覆盖类型的 dataArray。我想掩盖列表中的某些值。是否可以在多个条件下使用 xr.where() 函数?
这使:
以上适用于两种土地覆盖值,但对 30 种类型执行此操作很乏味。有没有更好的办法?
numpy - 获取 xarray 数据集的非 nan 值的坐标
我有这个包含全球气温的样本数据集,更重要的是,一个面具land
,标记陆地/非水域。
我现在可以掩盖海洋并绘制它
我现在如何获取所有非 nan 值的坐标?
dry_areas.coords
给了我边界框,我无法将 lat 和 lon 放入(55, 143)
形状中,所以我可以在上面应用蒙版。
我能找到的唯一可行的解决方法是
dry_areas.to_dataframe().dropna().reset_index()[['lat', 'lon']].values
,感觉不是很精简和干净。
我觉得这很简单,但是我显然不是一个 numpy/matrix ninja。
迄今为止最好的解决方案
这是迄今为止我能想到的最短的: