问题标签 [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 groupby:将不同的减速器应用于变量
我正在使用xarray
's groupby
+ reducer 对空间栅格执行空间叠加/聚合。我想知道是否有办法为某些数据变量使用不同的减速器。例如,在下面的代码中,我想categorical_variable
减少first()
(或mode
但似乎没有实现),并continuous_variable
减少mean()
python - 如何将月份乘以天数
我需要将每个月的数据乘以相应月份的天数。数据为月平均降水量,乘以天数即为累计降水量。我想要一种pythonic的方式来做到这一点(也许是xarray或pandas)。我的代码如下:
例如:
数据的前三个月是:1979-01-01、1979-02-01、1979-03-01,所以:
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 多分钟才能完成。帮助表示赞赏。谢谢你
python - xarray:如何将数组添加到特定维度?
一个简单的示例如下所示:
如何使用标签添加to_add
到坐标x
中? arr
a_plus
所以结果看起来像:
python - python-xarray:open_mfdataset,其中一个 .nc 文件没有填充时间轴
我正在尝试打开一系列 netcdf4 数据集。使用类似的东西:
布尔值为我提供了与我想要加载到数据集中的文件匹配的文件列表。只要目录中的所有匹配文件在(无限)时间轴上至少有一个条目,此方法就可以工作。但是,如果一个文件没有,xarray 决定只给我一个错误。
是否有一种简洁的 Pythonic 方法可以让 xarray 传递时间轴长度为零的匹配文件并仍然给我数据集,或者我是否将被迫运行 bash 脚本以事先消除异常?
python-xarray - 跨年的 xarray 年度分组
我正在计算我的数据的年度平均值:
这肯定很优雅。现在我想做同样的事情,除了计算后一年从六月到五月的年平均值,而不是日历年。会有类似的单线来做到这一点吗?
python - 直接将 tiff 文件读取到 numpy 数组而不保存到磁盘
我经常下载 (geo) tiff 文件,将它们保存到临时磁盘空间,然后使用rasterio读入数据以获得numpy.ndarray
我可以分析的数据。
例如,将这个 url 用于 NAIP 图像:
对于其他(netcdf)地理网格数据,我可能会使用xarray从该 url 获取数据以获取 Gridmet 数据:
所以得到一个 xarray 对象作为一个流工作并且很容易进入一个ndarray
,但我只知道这个在 netcdf 数据集上工作。有没有办法将 tif 数据“流式传输”到ndarray
对象?理想情况下,可以这样做
asrasterio
返回一个不错的元数据对象以及ndarray
,尽管我还没有让它与 url 资源一起使用。谢谢。
netcdf - Python xarray 的 open_mfdataset 以一种意想不到的方式工作
我有 1980 年的 365 个每日 netCDF 文件。这些文件位于包含多年(1979-2013)数据的文件夹中。
当我使用打开 1980 文件时,
时间戳似乎不正确。当我打印出时间时,我得到以下信息:
为了检查文件夹中的其他文件是否正在被读取,我更改了文件夹的内容(即我删除了 2012 文件),但我仍然得到与以前相同的时间序列。我不确定出了什么问题!
NetCDF 数据的元数据如下(使用 ncdump -h):
时间属性说
我不确定这意味着什么,这可能是问题吗?
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'
对替代解决方案持开放态度或使其中一项发挥作用。
python - xarray:从每月重新采样的平均值计算每日异常(不是气候学)
xarray 的文档解释了如何计算每月climatology的异常。在这里,我试图做一些稍微不同的事情:从每日时间序列,我想计算每日异常到本月的平均值(而不是从每月的气候学)。
我设法使用 groupby 和手动创建的每月邮票(下面的代码)来做到这一点。有没有更好、更简单的方法来获得相同的结果?