在 Xarray 中修改纬度和经度数组

问题描述

我正在尝试匹配目标数据集变量的维度和坐标:

Target Dataset

来自当前看起来像这样的源数据集:

Source Dataset

  1. 如何将“时间”添加为维度以及作为源数据集中“时间”本身的坐标?
  2. 我无法理解如何生成具有坐标“east_west”和“north_south”的“lat”或“lon”变量? 'lat' 理想情况下只包含 'north_south' 值,而 'lon' 应该只包含 'east_west'。但是,我需要将其与来源相匹配。

我能够匹配其余变量的坐标,但我无法匹配纬度、经度和时间。

解决方法

您可以使用 .squeeze(dim="time") 去除时间维度,这应该会将其转换为目标数据集中的标量坐标。 https://xarray.pydata.org/en/v0.7.2/generated/xarray.Dataset.squeeze.html

您的纬度和经度坐标似乎格式不正确:您可能想要摆脱所有这些 nan,例如:

ds = ds.where(ds["lat"].notnull())

“与来源匹配”是什么意思?如果您想让数据处于相同的坐标,则可能需要进行插值。您的目标数据集比源数据集大很多,我猜单元格大小也不同。

您可以尝试使用 reindex_like,并使用 method="nearest"https://xarray.pydata.org/en/stable/generated/xarray.Dataset.reindex_like.html