@@ -194,18 +194,23 @@ def _reduce_attrs(self, reduce_method: str):
194194 - event_id: set to [0]
195195 - event_name: set to [reduce_method]
196196 - date: set to the minimum value
197- - frequency: set to 0
197+ - frequency: set to 1
198198
199199 Parameters
200200 ----------
201201 reduce_method : str
202202 The reduction method used to reduce the attributes.
203203 """
204- red_event_id = np .asarray ([0 ])
205- red_event_name = np .asarray ([reduce_method ])
206- red_date = np .array ([self .date .min ()])
207- red_frequency = np .array ([0 ])
208- return red_event_id , red_event_name , red_date , red_frequency
204+ reduced_attrs = {
205+ "lead_time" : np .array ([np .timedelta64 ("NaT" )]),
206+ "member" : np .array ([- 1 ]),
207+ "event_id" : np .array ([0 ]),
208+ "event_name" : np .array ([reduce_method ]),
209+ "date" : np .array ([self .date .min ()]),
210+ "frequency" : np .array ([1 ]),
211+ }
212+
213+ return reduced_attrs
209214
210215 def min (self ):
211216 """
@@ -222,16 +227,14 @@ def min(self):
222227 """
223228 red_imp_mat = sparse .csr_matrix (self .imp_mat .min (axis = 0 ))
224229 red_at_event = np .array ([red_imp_mat .sum ()])
225- red_event_id , red_event_name , red_date , red_frequency = self ._reduce_attrs (
226- "min"
227- )
230+ reduced_attrs = self ._reduce_attrs ("min" )
228231 return ImpactForecast (
229- lead_time = self . lead_time ,
230- member = self . member ,
231- event_id = red_event_id ,
232- event_name = red_event_name ,
233- date = red_date ,
234- frequency = red_frequency ,
232+ lead_time = reduced_attrs [ " lead_time" ] ,
233+ member = reduced_attrs [ " member" ] ,
234+ event_id = reduced_attrs [ "event_id" ] ,
235+ event_name = reduced_attrs [ "event_name" ] ,
236+ date = reduced_attrs [ "date" ] ,
237+ frequency = reduced_attrs [ "frequency" ] ,
235238 frequency_unit = self .frequency_unit ,
236239 coord_exp = self .coord_exp ,
237240 crs = self .crs ,
@@ -259,16 +262,14 @@ def max(self):
259262 """
260263 red_imp_mat = sparse .csr_matrix (self .imp_mat .max (axis = 0 ))
261264 red_at_event = np .array ([red_imp_mat .sum ()])
262- red_event_id , red_event_name , red_date , red_frequency = self ._reduce_attrs (
263- "max"
264- )
265+ reduced_attrs = self ._reduce_attrs ("max" )
265266 return ImpactForecast (
266- lead_time = self . lead_time ,
267- member = self . member ,
268- event_id = red_event_id ,
269- event_name = red_event_name ,
270- date = red_date ,
271- frequency = red_frequency ,
267+ lead_time = reduced_attrs [ " lead_time" ] ,
268+ member = reduced_attrs [ " member" ] ,
269+ event_id = reduced_attrs [ "event_id" ] ,
270+ event_name = reduced_attrs [ "event_name" ] ,
271+ date = reduced_attrs [ "date" ] ,
272+ frequency = reduced_attrs [ "frequency" ] ,
272273 frequency_unit = self .frequency_unit ,
273274 coord_exp = self .coord_exp ,
274275 crs = self .crs ,
@@ -298,16 +299,14 @@ def mean(self):
298299 """
299300 red_imp_mat = sparse .csr_matrix (self .imp_mat .mean (axis = 0 ))
300301 red_at_event = np .array ([red_imp_mat .sum ()])
301- red_event_id , red_event_name , red_date , red_frequency = self ._reduce_attrs (
302- "mean"
303- )
302+ reduced_attrs = self ._reduce_attrs ("mean" )
304303 return ImpactForecast (
305- lead_time = self . lead_time ,
306- member = self . member ,
307- event_id = red_event_id ,
308- event_name = red_event_name ,
309- date = red_date ,
310- frequency = red_frequency ,
304+ lead_time = reduced_attrs [ " lead_time" ] ,
305+ member = reduced_attrs [ " member" ] ,
306+ event_id = reduced_attrs [ "event_id" ] ,
307+ event_name = reduced_attrs [ "event_name" ] ,
308+ date = reduced_attrs [ "date" ] ,
309+ frequency = reduced_attrs [ "frequency" ] ,
311310 frequency_unit = self .frequency_unit ,
312311 coord_exp = self .coord_exp ,
313312 crs = self .crs ,
0 commit comments