Временной интервал файла netcdf в нескольких диапазонах дат - PullRequest
0 голосов
/ 01 мая 2020

У меня есть 3-мерный файл netcdf (время, широта, долгота), в котором я хотел бы выделить временной интервал для нескольких диапазонов дат. Нарезка на один непрерывный диапазон возможна, например так.

start_date = dt.datetime(2017,6,1,0)
end_date = dt.datetime(2017,8,31,0)

yyyy = dt.datetime.strftime(start_date,'%Y')
data_g = xr.open_dataset("/cfsr/data/"+yyyy+"/g."+yyyy+".0p5.anl.nc")

g = data_g['g'].isel(lev=15)
g = g.sel(time=slice(start_date1,end_date1))

Это сохраняет мой файл netcdf трехмерным, но теперь включает только данные с июня 2017 года по август 2017 года. Теперь, например, скажем, что я хотел включить с октября 2017 года по ноябрь 2017 года. Возможно ли это? Конечная цель - взять среднее значение всех данных, которые будут охватывать разные временные интервалы за разные годы. Я знаю, что мог бы сделать это вручную, создав несколько отдельных массивов (g1, g2 и т. Д. c ..), но я подумал, что может быть более простой способ сделать это.

1 Ответ

1 голос
/ 02 мая 2020

Создайте еще один фрагмент и используйте xarray.concat для объединения двух подмножеств, например:

import xarray as xr

ds = xr.open_dataset('https://thredds.ucar.edu/thredds/dodsC/grib/NCEP/GFS/Global_onedeg/Best')
temp_var = ds.Temperature_isobaric.sel(isobaric6=100000)

g1 = temp_var.sel(time=slice('2020-04-28', '2020-04-30'))
g2 = temp_var.sel(time=slice('2020-05-06', '2020-05-07'))
combined = xr.concat([g1, g2], dim='time')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...