问题标签 [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 访问 netCDF 变量值
我正在使用 xarray 打开一个 netCDF 文件,并希望访问上面给出的层。netCDF 文件的形状是(25 * 360 * 720 * 5)
.
有没有办法重写hndl_nc['name_variable'][:, :, :, var]
,所以我不必指定:, :, :, var
?如果可能的话,我想让变量访问独立于 netCDF 的结构。
基于这个答案,我还希望解决方案能够在以下情况下工作hndl_nc['name_variable'][:, :, :, var]
python - 如何使用 python xarray 使用多维坐标对数据进行子集化?
我有一个使用多维坐标的 netcdf 文件。我的 xarray 数据集看起来像这样
我希望通过物理坐标(XLAT & XLONG)获得数据的一个子集。例如,对 TK 进行子集化以获得 49 到 55N 和 -125 到 -115W 之间的网格点。
切片数据不起作用,例如 TK[782:898,179:409] 因为切片的网格点不遵循我需要的恒定的经纬度线。
有一个使用 groupby.bins 的示例,但是我根本无法弄清楚。我还尝试使用 where 来掩盖我的域之外的值,但没有成功。
如果有人有任何建议,将不胜感激!
python - 从 xarray 数据集中的某些变量中删除维度
我有一个 xarray 数据集,其中一些变量的维度比必要的多(例如,“纬度”和“经度”变量也随时间变化的 3D 数据集)。如何删除多余的尺寸?
例如,在下面的数据集中,“bar”是沿x
和y
轴的二维变量,沿轴具有恒定值x
。如何x
从“bar”而不是“foo”中删除维度?
python - 使用 xarray 基于初始 netcdf 创建和修改新的 netcdf
我有一个带有 fol 的 xarray 数据集。结构体:
我想复制一个句柄到这个数据集并删除名为“N”的协调。
当我这样做时:
随后,当我尝试将数据分配给 new_nc 中的新变量时,它不起作用:
我该如何解决?
python - 尝试将 xarray 写入 netcdf 时出现“ValueError:chunksize 不能超过维度大小”
在尝试将 xarray 写入 netcdf 时,根据“ValueError:chunksize 不能超过维度大小”,将引擎设置为 scipy 应该可以解决此错误。但是,这不适用于编码中的 zlib=True 。我如何仍然压缩 netCDF,目前我使用 scipy 引擎收到此错误:
python - 什么是“未索引的维度”,为什么坐标*为空*?
我正在阅读一个 NetCDF 文件,我得到了Unindexed dimensions
. 这是什么意思,我应该担心吗?它与坐标有关*empty*
吗?这是否意味着源文件中有一些不整洁的东西?
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。
python - 在未索引的坐标上索引,尺寸对应于索引坐标?
假设我有几个具有相同尺寸的坐标,如下例所示:
坐标a
被识别为索引(我猜是名称),但坐标c
不是。我可以使用坐标索引a
:
但我不能使用坐标索引c
:
当然,我可以在 from c
to上传递一个布尔数组a
,
或使用该方法(尽管这对变大(?)where
有副作用,ds['y']
但两种情况都适用于任何数据变量。未索引的坐标和数据变量之间有实际区别吗?我可以使用c
s status 作为索引的坐标,还是需要像对待数据变量一样采用迂回的方式?
python - 将日常 Excel 数据组织成 xarray 数据集
假设我想使用 xarray 处理一些日常天气数据,其组织方式类似于 xarray 文档中的这个示例:
但是,数据以多个 Excel 文件的形式提供给我,其中每个文件包含一天的数据。文件名包含日期信息,文件看起来像里面的这个玩具示例:
我能够将文件读入熊猫数据框:
我可以用所有数据()制作一个大数据框,dfAll.append(df)
并在数据框和数据集之间进行转换(xr.Dataset.from_dataframe(df)
)。但是,我无法按照图像所示重新索引和组织我的数据集。我的数据集最终如下所示:
如何像示例一样重新组织我的数据?哪些操作应该在 pandas 中进行,哪些在 xarray 中?基本上我希望将日期、X 和 Y 作为标签,并将 Temp & Prec 数据作为我的变量。
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 中排除年份的方法,但包括其他所有内容。