xarray 上缺少条件语句的输出
Missing output of a conditional statement on an 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])
它returns
(1,3,2,1)
相反,我喜欢 return 0
年份以及未满足条件的年份(因此输出应如下所示 1,3,0,2,1
)。有任何关于获得所有块输出的建议,即使其中任何一个为零吗?
试试这个:
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.))]
我已经弄明白了 -- 不简洁但有效。
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
我有 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])
它returns
(1,3,2,1)
相反,我喜欢 return 0
年份以及未满足条件的年份(因此输出应如下所示 1,3,0,2,1
)。有任何关于获得所有块输出的建议,即使其中任何一个为零吗?
试试这个:
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.))]
我已经弄明白了 -- 不简洁但有效。
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