У меня много часовых температурных файлов в формате 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();
Itпоказывает ValueError: dimensions ['time'] do not exist
ошибка.