问题标签 [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.
python - 从 Xarray 中的 `xr.Dataset` 获取值(点、向量、数组等)?(Python 3)
我不知道如何从xr.Dataset
对象中实际提取数据。我不知道如何访问单个值。如何像使用 DataArrays 一样从 Datasets 中提取值(点值、向量、数组等)?
python - python xarray 按纬度/经度选择并将点数据提取到数据框
我想选择纬度/经度范围内的所有网格单元格,对于每个网格单元格,将其导出为日期框,然后导出到 csv 文件(即df.to_csv
)。我的数据集如下。我可以xr.where(...)
用来屏蔽输入之外的网格单元,但不确定如何循环遍历未屏蔽的剩余网格。或者,我尝试使用这些xr.sel
函数,但它们似乎不接受像ds.sel(gridlat_0>45)
. xr.sel_points(...)
也可以工作,但我无法弄清楚在我的情况下使用的索引器的正确语法。提前谢谢你的帮助。
python - 将 xarray 数据集写入 netcdf 或数据帧的分段错误
使用从多个 grib2 文件创建的 xarray 数据集时出现分段错误。写入 netcdf 以及写入数据帧时会发生故障。任何关于出了什么问题的建议表示赞赏。
写出 netcdf
分段错误(核心转储)
python-2.7 - 使用 Basemap 在两个 xarray 数据集之间进行插值
我有两个不同的 xarray 数据集,它们具有不同的纬度/经度网格分辨率。我想将分辨率较低的一个 xarray 重新网格化为与分辨率较高的一个 xarray 相同的分辨率。我找到了一些示例(例如,http ://earthpy.org/interpolation_between_grids_with_basemap.html ),但它对我不起作用。这是我为测试而制作的一个示例:
我收到以下错误:
ValueError: xout 和 yout 必须具有相同的形状!
截屏:
basemap.interp() 是否要求 xout 和 yout 形状相同?那么 var2 需要是正方形吗?我的任何数据集几乎都不是这种情况!如何将 var1 重新设置为与 var2 相同的分辨率?
注意:重新网格化后,我想在给定与 var2 相关的一些条件下对 var1 进行子采样。例如:
所以我想在插值过程中尽量减少网格点的任何损失。
python - Python Xarray 将 DataArray 添加到数据集
很简单的问题,但我在网上找不到答案。我有一个Dataset
,我只想为其添加一个名称DataArray
。类似的东西dataset.add({"new_array": new_data_array})
。我知道merge
and update
,concatenate
但我的理解是merge
用于合并两个或多个Dataset
s 并且concatenate
用于连接两个或多个DataArray
s 以形成另一个DataArray
,我还没有完全理解update
。我已经尝试过dataset.update({"new_array": new_data_array})
,但出现以下错误。
我也试过dataset["new_array"] = new_data_array
了,我得到了同样的错误。
更新
我现在发现问题是我的一些坐标有重复的值,这是我不知道的。坐标用作索引,因此 Xarray 在尝试组合共享坐标时会感到困惑(可以理解)。下面是一个有效的例子。
输出:
上面的代码names
用作索引。如果我稍微更改一下代码,这样就会names
有一个重复的,比如说names = ["joaquin", "manolo", "joaquin"]
,然后我会得到一个InvalidIndexError
.
代码:
输出:
所以这不是 Xarray 中的错误。尽管如此,我还是浪费了很多时间试图找到这个错误,我希望错误消息能提供更多信息。我希望 Xarray 的合作者能尽快解决这个问题。(在尝试合并之前对坐标进行唯一性检查。)
无论如何,我在下面的答案提供的方法仍然有效。
python - `xarray.Dataset.groupby()` 可能存在错误?
我在 Mac OS X El Capitan 10.11.6 上使用 Xarray 版本 0.8.0、Python 3.5.1。
以下代码按预期工作。
输出:
但是,如果我只改变一点点,使所有元素id_data_array
都不同,那么就会出现错误。
代码:
输出:
对我来说,这似乎是错误的,因为如果这是所需的行为,那将非常奇怪。当然,我们应该包括DataArray
我们分组依据的所有元素都不同的情况?
更新
我现在已经卸载并重新安装了 Xarray。新的 Xarray 是 0.8.1 版,它似乎工作正常。所以它可能确实是 Xarray 0.8.0 中的一个错误。
python-xarray - Python Xarray`Dataset.sel()`沿一维选择多个值
假设我有一个dataset
type xarray.Dataset
。我有一个名为 , 的维度(由s 中的所有 sname
共享,但我认为这对这个问题并不重要,)并且我想选择一个具有特定名称的条目。我会这样做如下。DataArray
Dataset
但是假设我现在想选择一个包含名称“lucifer”和“judas”的子数据集。我想做类似的事情:
因为这是我能想象到的最接近 Pandas 的语法。但这给了我一个错误。
(顺便说一句,我从 Xarray 得到的每一个错误似乎都是这个确切的错误,我很高兴看到 Xarray 提供更多信息错误。)所以我的问题是,如何从一个命名维度中选择多个命名值?假设命名值没有特定的顺序,所以我不能使用切片。
python - 在 xarray 中过滤数据的简洁方法
我需要对 xarray 数组中的值应用一个非常简单的“匹配语句”:
- 如果值 > 0,则取 2
- 如果值 == 0,则设为 0
- 值在哪里
NaN
,使NaN
这是我目前的解决方案。我使用NaN
s, .fillna
, & 类型强制来代替 2d 索引。
这改变了这一点:
...对此:
在熊猫中df[df>0] = 2
就足够了。当然,我正在做一些行人的事情,并且有更简洁的方法吗?
python - 沿现有轴合并/合并 xr.DataArray (Xarray | Python 3)
这是一个玩具示例,但我有 2 个数据框;(1) 行=样本,列=属性;(2) 行=样本,列=元数据字段。
我想concat
或merge
创建 3 维xr.DataArray
. 我已经多次这样做了,但我无法弄清楚为什么它在这种情况下不起作用?我想concat
沿着patient_id
轴有一个 3D xr.DataArray
。
为什么不xr.concat
构建3维DataArray
?我认为我错误地使用了该dim
参数,因为它应该concat
沿着新轴但是有没有办法沿着现有轴做到这一点?
我正在尝试使用Create DataArray from Dict of 2D DataFrames/Arrays 中的方法,但它不起作用。我开始merge
工作了,但它把它放入了一个DataSet
w/2 数据变量中