在XArray上缺少条件语句的输出

时间:2019-06-08 09:58:07

标签: python numpy python-xarray

我有5年的NetCDF文件,并且每天都有时间步长,并且在连接的单个文件上运行条件语句,如下所示:

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)。有没有建议获得所有块输出,即使其中任何一个为零?

2 个答案:

答案 0 :(得分:0)

尝试一下:

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.))]

答案 1 :(得分:0)

我已经弄清楚了-并非整齐,但可以。

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