Вопрос:

Отсутствует вывод условного оператора на xarray

python numpy python-xarray

46 просмотра

2 ответа

1074 Репутация автора

У меня есть файлы NetCDF за 5 лет с ежедневным шагом по времени и с условным оператором для объединенного отдельного файла, как показано ниже:

ds = xr.open_mfdataset('D:/*.nc', concat_dim='day')
da = ds.var.sel(lon=-79.1833333, lat=42.4, method='nearest')
con = da[(da >= 40.0) & (da <= 60.4)]
val = con.chunks
print(val[0])

Возвращается

(1,3,2,1)

Вместо этого мне нравится возвращаться 0на год, где условие не было выполнено (поэтому результат должен выглядеть следующим образом 1,3,0,2,1). Любое предложение для получения всех выходных данных блока, даже если любой из них равен нулю?

Автор: Ibe Источник Размещён: 08.06.2019 09:58

Ответы (2)


0 плюса

385 Репутация автора

Попробуй это:

ds = xr.open_mfdataset('D:/*.nc', concat_dim='day')
da = ds.var.sel(lon=-79.1833333, lat=42.4, method='nearest')
da[~(da >= 40.0) & (da <= 60.4)] == 0 # if the assignment here doesn't work 
# then try using da.where()
con = da[((da >= 40.0) & (da <= 60.4) | (da = 0.))]

Автор: Light_B Размещён: 10.06.2019 10:38

0 плюса

1074 Репутация автора

Решение

Я понял это - не аккуратно, но работает.

ds = xr.open_mfdataset('D:/*.nc', concat_dim='day')
da = ds.var.sel(lon=-79.1833333, lat=42.4, method='nearest')
con = da[(da >= 40.0) | (da <= 60.4)]
da_cnt = np.asarray(da.chunks[0]) - np.asarray(con.chunks[0]) # it returns years with zero values as well
Автор: Ibe Размещён: 12.06.2019 06:41
Вопросы из категории :
32x32