簡體   English   中英

沿2維同時連接xarray DataArrays

[英]Concatenate xarray DataArrays simultaneously along 2 dimensions

我有一個很大的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:這可能與這個問題有些相關,盡管我不清楚這個問題的實際含義。

發現我們可以使用combine_first順序應用程序執行此combine_first 這不是理想的,因為在給定龐大的DataArray列表的情況下,我必須迭代應用它,但它足夠好:

d=a.combine_first(c).combine_first(b)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM