代码之家  ›  专栏  ›  技术社区  ›  ClimateUnboxed

添加到xarray数据集时,如何使用字符串变量定义dataarray名称?复制

  •  0
  • ClimateUnboxed  · 技术社区  · 2 年前

    我想添加一个 dataarray xarray dataset ,并通过使用 xarray.assign ,但我不知道如何使用字符串变量定义数据数组的名称(即调用新条目“myvar”:

    import xarray as xr
    
    varname="myvar"
    vals=[1,2,3]
    coords=[4,5,6]
    ds=xr.Dataset(data_vars={},coords={'xcoord':coords})
    ds=ds.assign(varname=(['xcoord'],vals))
    ds.to_netcdf("test.nc")
    
    ds.close()
    

    这给了我一个名为“varname”的变量——我如何在这里使用变量?

    1 回复  |  直到 2 年前
        1
  •  1
  •   John Gordon    2 年前

    构建一个字典,其中 varname 是关键:

    kwargs = {varname: (['xcoord'],vals)}
    

    然后将该字典作为参数传递给 ds.assign() ,使用 ** 语法:

    ds=ds.assign(**kwargs)
    

    如果您愿意,您可以一步完成所有操作,而无需创建中间字典:

    ds=ds.assign(**{varname: (['xcoord'],vals)})