簡體   English   中英

Python xarray.DataArray:調整坐標大小

[英]Python xarray.DataArray: resize coordinates

對於我的 Python 包numericmodel ,它應該有助於對簡單的數值模型進行原型設計,我為自描述數據集編寫了類。 我最近偶然發現了很棒的xarray 庫,現在正在考慮使用xarray.Datasetxarray.DataArray而不是我自己的類進行數據管理。

我搜索了xarray 文檔,但沒有找到我的問題的答案。 對不起,如果我忽略了什么。

據我了解xarray ,它的結構最適合用於不改變其形狀的靜態數據。 但是對於我的numericalmodel包,我需要用新的時間值不斷擴展數組,即在每個新的時間步長。 我事先不知道時間點,因為可以為每個求解的方程自適應地確定時間步長。

所以我的問題:

如何擴展xarray.DataArray的坐標?

這通常可以歸結為“如何擴展xarray.DataArray

一種可能的方法應該是:

  • 沒有太多的開銷(例如不依賴於創建新的DataArray s,然后重新分配坐標,然后刪除舊的)
  • 可能處理依賴於該坐標的其他數據變量

我的猜測是不可能像這樣。 通常,如果您在某個問題上沒有找到任何內容,這要么意味着答案顯而易見,要么非常重要 ;-)

謝謝!

沒有人

簡短的回答是,使用 xarray 的當前數據模型(建立在 numpy 數組上)無法有效地做到這一點。 Xarray 不支持 append,因為 numpy 中的 append 需要一個完整的副本。

有關詳細信息,請參閱最近的郵件列表討論,但基本上目前推薦的方法是將結果累積在列表中並僅在最后調用concat一次: https : //groups.google.com/forum/m/#!topic/ xarray/BAN7WobAfyw

也就是說,如果我們構建了一個替代存儲層來使用而不是 numpy 數組,那么有一些方法可以有效地完成此操作(在攤銷的恆定時間內沿一維追加)。 Xarray 實際上已經有了其中的一些,所以這並不像看起來那么難。 無論如何,如果您有興趣在此方面開展工作,我很樂意在 GitHub 問題中討論后續步驟。

暫無
暫無

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

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