我有许多tif
格式的每小时温度文件。我可以将它们全部读取为xarray datase:
import glob
import pandas as pd
import xarray as xr
import os
def time_index_from_filenames(filenames):
return pd.to_datetime([f[5:18] for f in filenames], format='%Y-%m-%d_%H').sort_values()
filenames = [os.path.basename(x) for x in glob.glob('/Temp/*.tif')]
time = xr.Variable('time', time_index_from_filenames(filenames))
chunks = {'x': 35, 'y': 28} # x is longitude and y is latitude
filenames = [x for x in glob.glob('/Temp/*_temp.tif')]
da_temp = xr.concat([xr.open_rasterio(f, chunks=chunks).load() for f in filenames], dim=time)
当我调用da_temp
时,没有任何变量。为什么?如何将温度定义为3个维度(x,y,时间)的变量?
我的问题是何时要使用cartopy
绘制此数据:
import cartopy.crs as ccrs
air = da_temp.band
ax = plt.axes(projection=ccrs.Orthographic(49, 30))
air.isel(time=0).plot.contourf(ax=ax, transform=ccrs.PlateCarree());
ax.set_global(); ax.coastlines();
它显示ValueError: dimensions ['time'] do not exist
错误。