首页 > 解决方案 > dorps坐标的多维xarray?

问题描述

我有一个多维变量,我想使用多维掩码对其进行掩码。但是,使用xarray.where会丢弃变量的坐标。这是一个使用非常小的文件的示例(链接到此处下载 var 文件此处的掩码文件):

import xarray as xr
mask = xr.open_dataarray("mask.nc")
var = xr.open_dataarray("var.nc")

masked_var = var.where(mask,drop=False)

>>> print(mask.shape)
(3, 3, 101, 101)
>>> print(var.shape)
(3, 3, 101, 101)
>>> print(masked_var.shape)
(1, 3, 101, 101)  # Note expected dimension is (3, 3, 101, 101)

正如你所看到where的下降坐标。我的预期行为是:

var.isel(lat=0,lon=0).where(mask.isel(lat=0,lon=0))
var.isel(lat=1,lon=1).where(mask.isel(lat=1,lon=1))
.
.
.
#for all lat and lon, resulting in masked_var with (3, 3, 101, 101) shape.

标签: pythonwhere-clausepython-xarray

解决方案


推荐阅读