问题标签 [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 回答
164 浏览

python - xarray groupby:将不同的减速器应用于变量

我正在使用xarray's groupby+ reducer 对空间栅格执行空间叠加/聚合。我想知道是否有办法为某些数据变量使用不同的减速器。例如,在下面的代码中,我想categorical_variable减少first()(或mode但似乎没有实现),并continuous_variable减少mean()

0 投票
1 回答
266 浏览

python - 如何将月份乘以天数

我需要将每个月的数据乘以相应月份的天数。数据为月平均降水量,乘以天数即为累计降水量。我想要一种pythonic的方式来做到这一点(也许是xarray或pandas)。我的代码如下:

例如:

数据的前三个月是:1979-01-01、1979-02-01、1979-03-01,所以:

0 投票
1 回答
851 浏览

python - 使用 Xarray 绘制 2D 数据需要很长时间?

我正在使用 xarray 读取 NetCDF 文件。每个变量有 4 个维度(Times, lev, y, x)。读取变量后,我沿 ( Times,lev ) 维度计算变量QVAPOR的平均值。计算后,我得到变量QVAPOR_mean,它是一个具有形状(y: 699, x: 639)的二维变量。

Xarray 只需 10 微秒即可读取形状数据(Times:2918, lev:36, y:699, x:639);但是花了 60 多分钟来绘制形状数据的填充轮廓(y: 699, x: 639)。

我想知道 Xarray 怎么会花费很长时间(超过 60 分钟)来绘制大小为(y: 699, x: 639)的数组的轮廓。

我使用以下代码来读取文件并执行计算。

最后一个命令需要 60 多分钟才能完成。帮助表示赞赏。谢谢你

0 投票
1 回答
59 浏览

python - xarray:如何将数组添加到特定维度?

一个简单的示例如下所示:

如何使用标签添加to_add到坐标x中? arra_plus

所以结果看起来像:

0 投票
0 回答
445 浏览

python - python-xarray:open_mfdataset,其中一个 .nc 文件没有填充时间轴

我正在尝试打开一系列 netcdf4 数据集。使用类似的东西:

布尔值为我提供了与我想要加载到数据集中的文件匹配的文件列表。只要目录中的所有匹配文件在(无限)时间轴上至少有一个条目,此方法就可以工作。但是,如果一个文件没有,xarray 决定只给我一个错误。

是否有一种简洁的 Pythonic 方法可以让 xarray 传递时间轴长度为零的匹配文件并仍然给我数据集,或者我是否将被迫运行 bash 脚本以事先消除异常?

0 投票
1 回答
327 浏览

python-xarray - 跨年的 xarray 年度分组

我正在计算我的数据的年度平均值:

这肯定很优雅。现在我想做同样的事情,除了计算后一年从六月到五月的年平均值,而不是日历年。会有类似的单线来做到这一点吗?

0 投票
1 回答
855 浏览

python - 直接将 tiff 文件读取到 numpy 数组而不保存到磁盘

我经常下载 (geo) tiff 文件,将它们保存到临时磁盘空间,然后使用rasterio读入数据以获得numpy.ndarray我可以分析的数据。

例如,将这个 url 用于 NAIP 图像

对于其他(netcdf)地理网格数据,我可能会使用xarray该 url 获取数据以获取 Gridmet 数据

所以得到一个 xarray 对象作为一个流工作并且很容易进入一个ndarray,但我只知道这个在 netcdf 数据集上工作。有没有办法将 tif 数据“流式传输”到ndarray对象?理想情况下,可以这样做

asrasterio返回一个不错的元数据对象以及ndarray,尽管我还没有让它与 url 资源一起使用。谢谢。

0 投票
2 回答
542 浏览

netcdf - Python xarray 的 open_mfdataset 以一种意想不到的方式工作

我有 1980 年的 365 个每日 netCDF 文件。这些文件位于包含多年(1979-2013)数据的文件夹中。

当我使用打开 1980 文件时,

时间戳似乎不正确。当我打印出时间时,我得到以下信息:

为了检查文件夹中的其他文件是否正在被读取,我更改了文件夹的内容(即我删除了 2012 文件),但我仍然得到与以前相同的时间序列。我不确定出了什么问题!

NetCDF 数据的元数据如下(使用 ncdump -h):

时间属性说

我不确定这意味着什么,这可能是问题吗?

0 投票
1 回答
11194 浏览

python - 如何替换 xarray 变量中的值?

我有一个 xarray 数据集ds

我想mean_elev用这些值替换[0.1, 0.2, 0.3, 0.4]导致这个错误的值:

试验 1

错误 2

MissingDimensionsError: cannot set variable 'mean_elev' with 3-dimensional data without explicit dimension names. Pass a tuple of (dims, data) instead.

试验 2

所以,到目前为止,我已经尝试创建一个单独的 dataArray 用于合并:

错误 2

ValueError: conflicting sizes for dimension 'latitude': length 4 on the data but length 1 on coordinate 'latitude'

对替代解决方案持开放态度或使其中一项发挥作用。

0 投票
1 回答
909 浏览

python - xarray:从每月重新采样的平均值计算每日异常(不是气候学)

xarray 的文档解释了如何计算每月climatology的异常。在这里,我试图做一些稍微不同的事情:从每日时间序列,我想计算每日异常到本月的平均值(而不是从每月的气候学)。

我设法使用 groupby 和手动创建的每月邮票(下面的代码)来做到这一点。有没有更好、更简单的方法来获得相同的结果?

绘图输出