dataset.assign_attrs() 例子?

dataset.assign_attrs() example?

我今天才开始使用 xarray,到目前为止,它的易用性给我留下了深刻的印象。我确实有一个关于数据集的 assign_attrs() 函数的问题。

我有一个从 pandas 数据框创建的数据集。我试图在它创建后为其分配元数据属性,但是当我在 运行 之后查看 ds.attrs 或 ds.attrs.items() 时,我似乎没有得到任何东西脚本。

我正在向它传递一本字典,但也许我做得不对?我尝试了多种传递 dict 的方法,但似乎没有任何效果。任何帮助或示例将不胜感激。示例代码和输出如下:

输入:

df = pd.read_csv(readstr)
md = pr.plot_results.get_metadata(fp)

refdata = {'refLat': md['refLat'], 
           'refLon': md['refLon'], 
           'refAlt': md['refAlt'],
               'fw': md['FWversion']}

for k,v in refdata.items():
   print(k, v, "refdata kv")

ds = xr.Dataset.from_dataframe(df)
ds.assign_attrs(refdata)


print(ds.attrs, 'attributes')
print(ds.attrs.items(), 'items')
print(ds.attrs['refLon'])

输出:

python_gnss_plot git:master ❯ ./start_plots.py                              
✹ ✭

refLat 37.77101988 refdata kv
refLon -122.40315123 refdata kv
refAlt -5.6120 refdata kv
fw v140-develop-2018060121-7 refdata kv
OrderedDict() attributes
odict_items([]) items
Exception in Tkinter callback
Traceback (most recent call last):
  Fil
  "/Library/Frameworks/Python.framework/Versions/3.6/
lib/python3.6/tkinter/__init__.py", 
line 1699, in __call__
return self.func(*args)
File "./start_plots.py", line 109, in execute_calc
    print(ds.attrs['refLon'])
KeyError: 'refLon'

assign_attrs returns 具有给定属性的 new xarray.Dataset。它旨在促进对不改变现有对象的 xarray 对象的链式操作。

如果你想就地更新数据集的属性,直接分配给ds.attrs,或者使用ds.attrs.update(),例如

ds.attrs = refdata