我有一系列CSV格式的月度网格化数据集.我想阅读它们,添加几个维度,然后写入netcdf.我以前在使用xarray(xray)方面有很棒的经验,所以我想在这个任务中使用它.
我可以很容易地将它们变成2D DataArray,例如:
data = np.ones((360,720))
lats = np.arange(-89.75, 90, 0.5) * -1
lngs = np.arange(-179.75, 180, 0.5)
coords = {'lat': lats, 'lng':lngs}
da = xr.DataArray(data, coords=coords)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试添加另一个维度时,它将传达有关时间的信息(所有数据来自同一年/月),事情开始变得糟糕.
我试过两种破解方法:
1)将我的输入数据扩展为mxnx 1,类似于:
data = np.ones((360,720))
lats = np.arange(-89.75, 90, 0.5) * -1
lngs = np.arange(-179.75, 180, 0.5)
coords = {'lat': lats, 'lng':lngs}
data = data[:,:,np.newaxis]
Run Code Online (Sandbox Code Playgroud)
然后我按照上面的相同步骤,更新coords以包含第三个维度.
lats = np.arange(-89.75, 90, 0.5) * -1
lngs = np.arange(-179.75, 180, 0.5)
coords = {'lat': lats, 'lng':lngs}
coords['time'] = pd.datetime(year, month, day))
da = xr.DataArray(data, …Run Code Online (Sandbox Code Playgroud)