如何使用字符串变量定义添加至xarray Dataset的DataArray名称?
解决xarray.assign中用字符串变量指定DataArray名称的问题
你遇到的问题是因为Python会把assign方法里的varname直接当作关键字参数的名称,而不是读取你定义的varname变量的值。要解决这个问题,用字典解包的方式传递参数即可:
import xarray as xr varname = "myvar" vals = [1,2,3] coords = [4,5,6] ds = xr.Dataset(data_vars={}, coords={'xcoord': coords}) # 通过字典解包,将varname的值作为新变量的名称 ds = ds.assign(**{varname: (['xcoord'], vals)}) ds.to_netcdf("test.nc") ds.close()
原理说明
**操作符会把字典的键值对转换成assign方法的关键字参数,这样字典里的键(也就是varname变量的值"myvar")就会成为新DataArray的名称,对应的值则是你定义的变量内容。
执行这段代码后,生成的test.nc文件里的变量名就会是myvar,而不是原来的varname。
内容的提问来源于stack exchange,提问作者ClimateUnboxed
相关产品推荐
相关产品推荐

