从 xarray 的教程数据中,我想提取一个DataArray
包含月份温暖天数的数据,定义为 22 到 30 摄氏度:
airtemps = xr.tutorial.load_dataset('air_temperature')
airtemps = airtemps.sel(time=slice('2013-01-01', '2013-12-31'))
airtemps['air'] = airtemps.air - 273.15
air_day = airtemps.resample('1D', 'time', how='mean')
# Define multiple conditions - How can this be done programatically?
我现在正在寻找一种以编程方式在下面创建此地图的方法,还可以添加更多条件
meets_condition = (air_day.air > 22) & (air_day.air < 30)
warm_days = meets_condition.resample('M', dim='time', how='sum')
条件可以这样定义:
not_cold = ('air', operator.ge, 22)
not_hot = ('air', operator.le, 30)
我可以在一个条件下简单地做到这一点:
variable, operator_fn, value = not_cold
meets_condition = operator_fn(air_day[variable], value)
warm_but_possibly_hot_days = meets_condition.resample('M', dim='time', how='sum')
但我正在努力动态添加多个。我可以做这个
comfy_warm = [not_cold, not_hot]
all_maps = [fn(air_day[var], val) for var, fn, val in comfy_warm]
(all_maps[0] & all_maps[1]).resample('M', dim='time', how='sum')
但我想做某事。像这样
np.all(all_maps).resample('M', dim='time', how='sum')
为了方便起见,这里有一个要点。与往常一样,我提前感谢