我有一个很大的2D域,它在几个xarray DataArrays中分解成大小相等的2D补丁。因此,例如,对我所拥有的进行模拟:
a=xr.DataArray(np.random.rand(4,4)+0, dims=("x", "y"), coords=dict(x=range(4), y=range(4)))
b=xr.DataArray(np.random.rand(4,4)+1, dims=("x", "y"), coords=dict(x=range(4,8), y=range(4)))
c=xr.DataArray(np.random.rand(4,4)+2, dims=("x", "y"), coords=dict(x=range(4,8), y=range(4,8)))
我正在尝试将所有这些修补程序放在一起以重新创建域。因此,在上面的示例中,如果要连接所有内容,则最后将有一个8 x 8的矩阵(其中一个“补丁”为np.nan
),另外三个补丁分别对应于它们各自的DataArrays 。
我一直在尝试使用xarray将其自动化,但是到目前为止,我还没有成功。我最接近的尝试是使用xr.concat
:
d=xr.concat([a,b,c], dim="x")
d.plot.imshow(x="x")
请注意,在我的情况下,所有补丁都是加扰的,因此我不能真正依靠特定顺序进行连接。例如,在这里,我可以做d=xr.concat([xr.concat([a,b], dim="x"), c], dim="y")
,但这仅仅是因为我知道顺序。
PS:这可能与this question有关,尽管我不清楚这个问题实际上在问什么。