@@ -152,31 +152,32 @@ def compute_monthly_sums(self, date_time):
152152
153153 data_all .append (data_tile )
154154
155- # cross-mask over all experiments
156- is_cross_valid = ~ np .isnan (data_all [0 ]['obs_obs' ])
157- for data in data_all [1 :]:
158- mask = ~ np .isnan (data ['obs_obs' ])
159- is_cross_valid = np .logical_and (is_cross_valid ,mask )
160-
161- # reconstruct the output variable dictionary based on input options;
162- # obs_obs and obs_obsvar are from exp_list[obs_from], the rest are from exp_list[0]
163- data_tile = {}
164- for var in var_list :
165- if 'obs_obs' in var :
166- data_tile [var ] = data_all [obs_from ][var ]
167- else :
168- data_tile [var ] = data_all [0 ][var ]
155+ if len (data_all ) > 0 :
156+ # cross-mask over all experiments
157+ is_cross_valid = ~ np .isnan (data_all [0 ]['obs_obs' ])
158+ for data in data_all [1 :]:
159+ mask = ~ np .isnan (data ['obs_obs' ])
160+ is_cross_valid = np .logical_and (is_cross_valid ,mask )
161+
162+ # reconstruct the output variable dictionary based on input options;
163+ # obs_obs and obs_obsvar are from exp_list[obs_from], the rest are from exp_list[0]
164+ data_tile = {}
165+ for var in var_list :
166+ if 'obs_obs' in var :
167+ data_tile [var ] = data_all [obs_from ][var ]
168+ else :
169+ data_tile [var ] = data_all [0 ][var ]
169170
170- is_valid = is_cross_valid
171-
172- N_data [ is_valid ] += 1
173- oxf_sum [is_valid ] += data_tile ['obs_obs' ][is_valid ] * data_tile ['obs_fcst' ][is_valid ]
174- oxa_sum [is_valid ] += data_tile ['obs_obs' ][is_valid ] * data_tile ['obs_ana' ][is_valid ]
175- fxa_sum [is_valid ] += data_tile ['obs_fcst' ][is_valid ] * data_tile ['obs_ana' ][is_valid ]
171+ is_valid = is_cross_valid
172+
173+ N_data [ is_valid ] += 1
174+ oxf_sum [is_valid ] += data_tile ['obs_obs' ][is_valid ] * data_tile ['obs_fcst' ][is_valid ]
175+ oxa_sum [is_valid ] += data_tile ['obs_obs' ][is_valid ] * data_tile ['obs_ana' ][is_valid ]
176+ fxa_sum [is_valid ] += data_tile ['obs_fcst' ][is_valid ] * data_tile ['obs_ana' ][is_valid ]
176177
177- for var in var_list :
178- data_sum [ var ][is_valid ] += data_tile [var ][is_valid ]
179- data2_sum [var ][is_valid ] += data_tile [var ][is_valid ] ** 2
178+ for var in var_list :
179+ data_sum [ var ][is_valid ] += data_tile [var ][is_valid ]
180+ data2_sum [var ][is_valid ] += data_tile [var ][is_valid ] ** 2
180181
181182 date_time = date_time + timedelta (seconds = da_dt )
182183
0 commit comments