- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 combine_by_coords 组合两个空间 xarray 数据集。这两个数据集是彼此相邻的两个图块。所以有重叠的坐标。在重叠区域中,其中一个数据集的变量值为 nan。
我使用了带有 compat='no_conflicts' 选项的“combine_by_coords”。但是,它返回沿维度 y 错误的单调全局索引。看起来以前是一个问题,但已修复( here )。所以我真的不知道为什么我会收到这个错误。这是一个示例(netcdf 磁贴是 here ):
import xarray as xr
print(xr.__version__)
>>>0.15.1
ds1=xr.open_dataset('Tile1.nc')
ds2=xr.open_dataset('Tile2.nc')
ds = xr.combine_by_coords([ds1,ds2], compat='no_conflicts')
>>>...
ValueError: Resulting object does not have monotonic global indexes along dimension y
谢谢
最佳答案
这不是错误,它抛出了根据您的输入应该抛出的错误。但是我可以看到文档并没有很清楚为什么会发生这种情况!combine_by_coords
和 combine_nested
做两件事:它们连接(使用 xr.concat
),它们合并(使用 xr.merge
)。 merge
将相同大小的变量分组,concat
将不同大小的变量连接到彼此的末端。连接步骤永远不应该处理部分重叠的坐标,而 combine
因此,函数具有相同的限制。
这个错误是明确拒绝你给它的输入:“你给了我重叠的坐标,我不知道如何连接这些,所以我会拒绝它们。”通常这是有道理的 - 当重叠坐标不是 NaN 时,选择哪个值是不明确的。
在您的情况下,您要求它执行明确定义的操作,以及文档中关于合并重叠坐标的讨论 here意味着 compat='no_conflicts'
会处理这种情况。不幸的是,这仅适用于 xr.merge
,不是 xr.concat
,因此它不适用于 combine_by_coords
任何一个。这绝对是令人困惑的。
或许可以概括 combine
函数来处理您所描述的场景(坐标的重叠部分完全由非 NaN 值指定)。如果您想看到它,请打开一个建议此功能的问题。
(问题 #3150 是关于其他问题的,这是处理“在每个数据集之间没有变化的坐标维度”的实际错误。)
相反,您需要先剪掉重叠部分。这应该不难 - 大概您知道(或可以确定)您的重叠有多大,并且您的所有 NaN 都在一个数据集上。您只需要使用 .isel()
切片的方法。一旦你摆脱了重叠的 NaN,那么你应该能够很好地组合它(你也不应该指定 compat
)。如果您使用的是 combine_by_coords
作为使用 open_mfdataset
打开许多文件的一部分那么使用 preprocess
编写首先应用的修剪函数可能会更容易。论据 open_mfdataset
.
关于python - Xarray combine_by_coords 返回单调全局索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62806175/
假设我有以下二维数组 >>> import numpy as np >>> budgets = np.array([ [np.nan, 450.], [500. , 10
我正在尝试读取单个 WRF 的时间序列输出变量。时间序列是分布式的,每个文件一个时间戳,跨越 5000 多个 netCDF 文件。每个文件包含大约 200 个变量。 有没有办法只为我感兴趣的变量调用
我有一个相当大的 xr.Dataset,其中包含大约 20 个数据变量。我只对保留其中两个感兴趣。我看到 xr.Dataset.drop带有数据集的删除变量。 我正在寻找保留变量的语法。我尝试了 f[
我正在尝试计算 xarray 数据集中时间维度子集的每月气候。时间是使用 datetime64 定义的。 如果我想使用整个时间序列,这很好用: monthly_avr=ds_clm.groupby('
我有一个空间数据的 pandas 数据框,我想将其转换为 netCDF。我找到了 xarray 并将我的数据帧转换为 xarray 数据集的方法: # create xray Dataset from
我有一个名为 rio 的 DataArray 对象。 In [59]: rio Out[59]: array([[[0, 0, ..., 0, 0], [0, 0, ..., 0,
我目前正在尝试将一个大的多维数组 (>5 GB) 加载到 python 脚本中。由于我将数组用作机器学习模型的训练数据,因此以小批量高效加载数据非常重要,但要避免将整个数据集加载到内存中一次。 我的想
假设我有一个 dataset类型 xarray.Dataset .我有一个名为 name 的维度,(由 DataArray 中的所有 Dataset 共享,但我认为这对这个问题并不重要,)我想选择一个
我想读入 https://hrrrzarr.s3.amazonaws.com/index.html#sfc/20210208/20210208_00z_anl.zarr/ 的远程 zarr 存储。 z
我想获取栅格(卫星图像)数据,并构建一个Dataset 或DataArray,以加快我的图像处理速度(我必须处理多-波段,多日期卫星图像很多)。 数据来自每个图像日期的单独波段,我了解如何将每个波段日
所以我有 3 个 netcdf4 文件(每个大约 90 MB),我想使用包 xarray 将它们连接起来。每个文件都有一个变量 (dis),以 0.5 度分辨率(纬度、经度)表示 365 天(时间)。
对于我的数据数组,我有坐标经度、纬度和时间。我只想沿纬度反转数组,以便 [90, 85, ..., -85, -90]变成 [-90, -80, ..., 85, 90] . 最佳答案 同意@jham
完成 MetPy 横截面示例后,我尝试将该示例推广到 NCEP NAM-12km GRIB2 文件,但未成功。通过将我的文件的 DataArray 与示例文件(netCDF 文件)进行比较,我发现 x
我正在使用 xarray.apply_ufunc() 将函数应用于 xarray.DataArray .它适用于某些 NetCDF,但在尺寸、坐标等方面似乎具有可比性的其他 NetCDF 会失败。但是
是否也可以创建一个核外 DataArray,并使用 xarray 将其逐块写入 NetCDF4 文件? 例如,当维度更大时,我希望能够以核外方式执行此操作,因此我无法将整个数组存储在内存中: num_
我有一个数据数组arr,坐标为“时间”。到达: array([244.40161, 244.39998, ..., 244.40936, 244.40549], dtype=float32)
我有一个数据数组arr,坐标为“时间”。到达: array([244.40161, 244.39998, ..., 244.40936, 244.40549], dtype=float32)
我是新手,我使用的是XARRAY。我的netcdf文件包含时间为‘天数自0001-01-01 00:00:00’的数据,日历类型为Julian。有谁知道将时间转换成标准日历的简单方法吗?。提前感谢:)
我是新手,我使用的是XARRAY。我的netcdf文件包含时间为‘天数自0001-01-01 00:00:00’的数据,日历类型为Julian。有谁知道将时间转换成标准日历的简单方法吗?。提前感谢:)
我是新手,我使用的是XARRAY。我的netcdf文件包含时间为‘天数自0001-01-01 00:00:00’的数据,日历类型为Julian。有谁知道将时间转换成标准日历的简单方法吗?。提前感谢:)
我是一名优秀的程序员,十分优秀!