3d 如何在xarray中创建标量维度?

3d 如何在xarray中创建标量维度?,3d,netcdf,python-xarray,3d,Netcdf,Python Xarray,我试图在xarray中创建一个数据集,我计划稍后将其写入netcdf,但由于我的时间维度是标量,所以出现了一个错误 df=xr.Dataset( 数据变量={'latentheat':(('time','level','lation','longitude'),lh), ‘表面精度’:(‘时间’、‘纬度’、‘经度’、spr), ‘地层分数’:(‘时间’、‘纬度’、‘经度’、地层分数)}, coords={'time':time, “级别”:lev, “经度”:long, “纬度”:纬度, })

我试图在xarray中创建一个数据集,我计划稍后将其写入netcdf,但由于我的时间维度是标量,所以出现了一个错误

df=xr.Dataset(
数据变量={'latentheat':(('time','level','lation','longitude'),lh),
‘表面精度’:(‘时间’、‘纬度’、‘经度’、spr),
‘地层分数’:(‘时间’、‘纬度’、‘经度’、地层分数)},
coords={'time':time,
“级别”:lev,
“经度”:long,
“纬度”:纬度,
})
ValueError回溯(最近一次调用上次)
ValueError:维度“time”已作为标量变量存在

这是xarray中的一个已知问题 你可以查一下

作为一种改进,您至少可以使用numpy函数在xarray中创建标量维度

你可以试试下面的方法

df = xr.Dataset(
        data_vars={'latentHeating':    (('time', 'level', 'latitude', 'longitude' ), lh),
                   'surfacePrecipRate':    (('time', 'latitude', 'longitude' ), spr),
                   'stratiformFraction':    (('time', 'latitude', 'longitude'), stratfrac)},
        coords={ 'time':np.atleast_1d(time_),
                'level': lev,
                'longitude': lon,
                'latitude': lat,
            })