Как определить переменную xarray в растровом чтении? - PullRequest
0 голосов
/ 07 июня 2019

У меня много часовых температурных файлов в формате 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 ошибка.

...