问题标签 [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 投票
2 回答
1081 浏览

python - 使用 xarray 访问 netCDF 变量值

我正在使用 xarray 打开一个 netCDF 文件,并希望访问上面给出的层。netCDF 文件的形状是(25 * 360 * 720 * 5).

有没有办法重写hndl_nc['name_variable'][:, :, :, var],所以我不必指定:, :, :, var?如果可能的话,我想让变量访问独立于 netCDF 的结构。

基于这个答案,我还希望解决方案能够在以下情况下工作hndl_nc['name_variable'][:, :, :, var]

0 投票
1 回答
1779 浏览

python - 如何使用 python xarray 使用多维坐标对数据进行子集化?

我有一个使用多维坐标的 netcdf 文件。我的 xarray 数据集看起来像这样

我希望通过物理坐标(XLAT & XLONG)获得数据的一个子集。例如,对 TK 进行子集化以获得 49 到 55N 和 -125 到 -115W 之间的网格点。

切片数据不起作用,例如 TK[782:898,179:409] 因为切片的网格点不遵循我需要的恒定的经纬度线。

有一个使用 groupby.bins 的示例,但是我根本无法弄清楚。我还尝试使用 where 来掩盖我的域之外的值,但没有成功。

如果有人有任何建议,将不胜感激!

0 投票
1 回答
8206 浏览

python - 从 xarray 数据集中的某些变量中删除维度

我有一个 xarray 数据集,其中一些变量的维度比必要的多(例如,“纬度”和“经度”变量也随时间变化的 3D 数据集)。如何删除多余的尺寸?

例如,在下面的数据集中,“bar”是沿xy轴的二维变量,沿轴具有恒定值x。如何x从“bar”而不是“foo”中删除维度?

0 投票
1 回答
216 浏览

python - 使用 xarray 基于初始 netcdf 创建和修改新的 netcdf

我有一个带有 fol 的 xarray 数据集。结构体:

我想复制一个句柄到这个数据集并删除名为“N”的协调。

当我这样做时:

随后,当我尝试将数据分配给 new_nc 中的新变量时,它不起作用:

我该如何解决?

0 投票
1 回答
153 浏览

python - 尝试将 xarray 写入 netcdf 时出现“ValueError:chunksize 不能超过维度大小”

在尝试将 xarray 写入 netcdf 时,根据“ValueError:chunksize 不能超过维度大小”,将引擎设置为 scipy 应该可以解决此错误。但是,这不适用于编码中的 zlib=True 。我如何仍然压缩 netCDF,目前我使用 scipy 引擎收到此错误:

0 投票
1 回答
518 浏览

python - 什么是“未索引的维度”,为什么坐标*为空*?

我正在阅读一个 NetCDF 文件,我得到了Unindexed dimensions. 这是什么意思,我应该担心吗?它与坐标有关*empty*吗?这是否意味着源文件中有一些不整洁的东西?

0 投票
1 回答
528 浏览

python - Xarray - DataArray 作为数据集打开

我正在使用 open_dataset 打开 MITgcm 生成的 netcdf 输出。但是,DataSet 中的坐标变量之一将作为整个 DataSet 而不是 DataArray 返回。

该过程似乎正常工作:

(我省略了输出的一些细节)。但是,当我检查 T 坐标的类型时,它会以 DataSet 的形式返回

当我检查任何其他坐标/变量的类型时,它们会返回为

ds.T 坐标似乎与 ds 是同一对象。例如,如果我将一个变量添加到 ds,它也会添加到 ds.T。它似乎也是无限递归的,例如 ds.TTT 就是同一个对象。

在底层的 netcdf 文件中,T 维度与其他维度的唯一区别是 T 具有无限维度。

但是,我创建了一个具有无限维度的虚拟 netcdf 文件,并且问题没有再次出现。

我已经用 decode_times、decode_cf 和 decision_coords=False 试过了,没有任何区别。

我正在使用 xarray 版本 0.8.2,运行 python 2.7.12。

0 投票
1 回答
1019 浏览

python - 在未索引的坐标上索引,尺寸对应于索引坐标?

假设我有几个具有相同尺寸的坐标,如下例所示:

坐标a被识别为索引(我猜是名称),但坐标c不是。我可以使用坐标索引a

但我不能使用坐标索引c

当然,我可以在 from cto上传递一个布尔数组a

或使用该方法(尽管这对变大(?)where有副作用,ds['y']

但两种情况都适用于任何数据变量。未索引的坐标和数据变量之间有实际区别吗?我可以使用cs status 作为索引的坐标,还是需要像对待数据变量一样采用迂回的方式?

0 投票
1 回答
796 浏览

python - 将日常 Excel 数据组织成 xarray 数据集

假设我想使用 xarray 处理一些日常天气数据,其组织方式类似于 xarray 文档中的这个示例:

但是,数据以多个 Excel 文件的形式提供给我,其中每个文件包含一天的数据。文件名包含日期信息,文件看起来像里面的这个玩具示例:

我能够将文件读入熊猫数据框:

我可以用所有数据()制作一个大数据框,dfAll.append(df)并在数据框和数据集之间进行转换(xr.Dataset.from_dataframe(df))。但是,我无法按照图像所示重新索引和组织我的数据集。我的数据集最终如下所示:

如何像示例一样重新组织我的数据?哪些操作应该在 pandas 中进行,哪些在 xarray 中?基本上我希望将日期、X 和 Y 作为标签,并将 Temp & Prec 数据作为我的变量。

0 投票
3 回答
1136 浏览

python - Pandas 数据框:跨年分组

在 Pandas 中,当时间戳的其余部分相同时,是否有一个 groupby 操作来对多年的值进行分组?

例如 12:00:00 01/01/2000、12:00:00 01/01/2001 和 12:00:00 01/01/2002 将形成一个组,就像 15:00:00 01/01/ 2000, 15:00:00 01/01/2001 和 15:00:00 01/01/2002... 等等。

我可以通过以下方式实现这一目标:

group = pd.groupby(timeseries, by=[timeseries.index.minute, timeseries.index.hour, timeseries.index.day, timeseries.index.month])

但它真的很难看,而且输入时间格式不灵活。我真正想要的是一种从 groupby 中排除年份的方法,但包括其他所有内容。