Skip to content

Commit 35cb0fa

Browse files
committed
Remove accidentally doubled members
1 parent b9524d6 commit 35cb0fa

File tree

2 files changed

+2
-241
lines changed

2 files changed

+2
-241
lines changed

climada/engine/impact_forecast.py

Lines changed: 1 addition & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -355,123 +355,6 @@ def select(
355355
reset_frequency=reset_frequency,
356356
)
357357

358-
def _reduce_attrs(self, event_name: str):
359-
"""
360-
Reduce the attributes of an ImpactForecast to a single value.
361-
362-
Attributes are modified as follows:
363-
- lead_time: set to NaT
364-
- member: set to -1
365-
- event_id: set to 0
366-
- event_name: set to the name of the reduction method (default)
367-
- date: set to 0
368-
- frequency: set to 1
369-
370-
Parameters
371-
----------
372-
event_name : str
373-
The event name given to the reduced data.
374-
"""
375-
reduced_attrs = {
376-
"lead_time": np.array([np.timedelta64("NaT")]),
377-
"member": np.array([-1]),
378-
"event_id": np.array([0]),
379-
"event_name": np.array([event_name]),
380-
"date": np.array([0]),
381-
"frequency": np.array([1]),
382-
}
383-
384-
return reduced_attrs
385-
386-
def min(self):
387-
"""
388-
Reduce the impact matrix and at_event of an ImpactForecast to the minimum
389-
value.
390-
391-
Parameters
392-
----------
393-
None
394-
395-
Returns
396-
-------
397-
ImpactForecast
398-
An ImpactForecast object with the min impact matrix and at_event.
399-
"""
400-
red_imp_mat = self.imp_mat.min(axis=0).tocsr()
401-
red_at_event = np.array([red_imp_mat.sum()])
402-
return ImpactForecast(
403-
frequency_unit=self.frequency_unit,
404-
coord_exp=self.coord_exp,
405-
crs=self.crs,
406-
eai_exp=self.eai_exp,
407-
at_event=red_at_event,
408-
tot_value=self.tot_value,
409-
aai_agg=self.aai_agg,
410-
unit=self.unit,
411-
imp_mat=red_imp_mat,
412-
haz_type=self.haz_type,
413-
**self._reduce_attrs("min"),
414-
)
415-
416-
def max(self):
417-
"""
418-
Reduce the impact matrix and at_event of an ImpactForecast to the maximum
419-
value.
420-
421-
Parameters
422-
----------
423-
None
424-
425-
Returns
426-
-------
427-
ImpactForecast
428-
An ImpactForecast object with the max impact matrix and at_event.
429-
"""
430-
red_imp_mat = self.imp_mat.max(axis=0).tocsr()
431-
red_at_event = np.array([red_imp_mat.sum()])
432-
return ImpactForecast(
433-
frequency_unit=self.frequency_unit,
434-
coord_exp=self.coord_exp,
435-
crs=self.crs,
436-
eai_exp=self.eai_exp,
437-
at_event=red_at_event,
438-
tot_value=self.tot_value,
439-
aai_agg=self.aai_agg,
440-
unit=self.unit,
441-
imp_mat=red_imp_mat,
442-
haz_type=self.haz_type,
443-
**self._reduce_attrs("max"),
444-
)
445-
446-
def mean(self):
447-
"""
448-
Reduce the impact matrix and at_event of an ImpactForecast to the mean value.
449-
450-
Parameters
451-
----------
452-
None
453-
454-
Returns
455-
-------
456-
ImpactForecast
457-
An ImpactForecast object with the mean impact matrix and at_event.
458-
"""
459-
red_imp_mat = sparse.csr_matrix(self.imp_mat.mean(axis=0))
460-
red_at_event = np.array([red_imp_mat.sum()])
461-
return ImpactForecast(
462-
frequency_unit=self.frequency_unit,
463-
coord_exp=self.coord_exp,
464-
crs=self.crs,
465-
eai_exp=self.eai_exp,
466-
at_event=red_at_event,
467-
tot_value=self.tot_value,
468-
aai_agg=self.aai_agg,
469-
unit=self.unit,
470-
imp_mat=red_imp_mat,
471-
haz_type=self.haz_type,
472-
**self._reduce_attrs("mean"),
473-
)
474-
475358
def quantile(self, q: float):
476359
"""
477360
Reduce the impact matrix and at_event of an ImpactForecast to the quantile value.
@@ -488,14 +371,7 @@ def quantile(self, q: float):
488371
"""
489372
red_imp_mat = sparse.csr_matrix(np.quantile(self.imp_mat.toarray(), q, axis=0))
490373
red_at_event = np.array([red_imp_mat.sum()])
491-
reduced_attrs = self._reduce_attrs(f"quantile_{q}")
492374
return ImpactForecast(
493-
lead_time=reduced_attrs["lead_time"],
494-
member=reduced_attrs["member"],
495-
event_id=reduced_attrs["event_id"],
496-
event_name=reduced_attrs["event_name"],
497-
date=reduced_attrs["date"],
498-
frequency=reduced_attrs["frequency"],
499375
frequency_unit=self.frequency_unit,
500376
coord_exp=self.coord_exp,
501377
crs=self.crs,
@@ -506,6 +382,7 @@ def quantile(self, q: float):
506382
unit=self.unit,
507383
imp_mat=red_imp_mat,
508384
haz_type=self.haz_type,
385+
**self._reduce_attrs(f"quantile_{q}"),
509386
)
510387

511388
def median(self):

climada/hazard/forecast.py

Lines changed: 1 addition & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -282,115 +282,6 @@ def select(
282282
reset_frequency=reset_frequency,
283283
)
284284

285-
def _reduce_attrs(self, event_name: str):
286-
"""
287-
Reduce the attributes of a HazardForecast to a single value.
288-
289-
Attributes are modified as follows:
290-
- lead_time: set to NaT
291-
- member: set to -1
292-
- event_id: set to 0
293-
- event_name: set to the name of the reduction method (default)
294-
- date: set to 0
295-
- frequency: set to 1
296-
297-
Parameters
298-
----------
299-
event_name : str
300-
The event_name given to the reduced data.
301-
"""
302-
reduced_attrs = {
303-
"lead_time": np.array([np.timedelta64("NaT")]),
304-
"member": np.array([-1]),
305-
"event_id": np.array([0]),
306-
"event_name": np.array([event_name]),
307-
"date": np.array([0]),
308-
"frequency": np.array([1]),
309-
"orig": np.array([True]),
310-
}
311-
312-
return reduced_attrs
313-
314-
def min(self):
315-
"""
316-
Reduce the intensity and fraction of a HazardForecast to the minimum
317-
value.
318-
319-
Parameters
320-
----------
321-
None
322-
323-
Returns
324-
-------
325-
HazardForecast
326-
A HazardForecast object with the min intensity and fraction.
327-
"""
328-
red_intensity = self.intensity.min(axis=0).tocsr()
329-
red_fraction = self.fraction.min(axis=0).tocsr()
330-
return HazardForecast(
331-
haz_type=self.haz_type,
332-
pool=self.pool,
333-
units=self.units,
334-
centroids=self.centroids,
335-
frequency_unit=self.frequency_unit,
336-
intensity=red_intensity,
337-
fraction=red_fraction,
338-
**self._reduce_attrs("min"),
339-
)
340-
341-
def max(self):
342-
"""
343-
Reduce the intensity and fraction of a HazardForecast to the maximum
344-
value.
345-
346-
Parameters
347-
----------
348-
None
349-
350-
Returns
351-
-------
352-
HazardForecast
353-
A HazardForecast object with the min intensity and fraction.
354-
"""
355-
red_intensity = self.intensity.max(axis=0).tocsr()
356-
red_fraction = self.fraction.max(axis=0).tocsr()
357-
return HazardForecast(
358-
haz_type=self.haz_type,
359-
pool=self.pool,
360-
units=self.units,
361-
centroids=self.centroids,
362-
frequency_unit=self.frequency_unit,
363-
intensity=red_intensity,
364-
fraction=red_fraction,
365-
**self._reduce_attrs("max"),
366-
)
367-
368-
def mean(self):
369-
"""
370-
Reduce the intensity and fraction of a HazardForecast to the mean value.
371-
372-
Parameters
373-
----------
374-
None
375-
376-
Returns
377-
-------
378-
HazardForecast
379-
A HazardForecast object with the min intensity and fraction.
380-
"""
381-
red_intensity = sparse.csr_matrix(self.intensity.mean(axis=0))
382-
red_fraction = sparse.csr_matrix(self.fraction.mean(axis=0))
383-
return HazardForecast(
384-
haz_type=self.haz_type,
385-
pool=self.pool,
386-
units=self.units,
387-
centroids=self.centroids,
388-
frequency_unit=self.frequency_unit,
389-
intensity=red_intensity,
390-
fraction=red_fraction,
391-
**self._reduce_attrs("mean"),
392-
)
393-
394285
def quantile(self, q: float):
395286
"""
396287
Reduce the impact matrix and at_event of a HazardForecast to the quantile value.
@@ -415,22 +306,15 @@ def quantile(self, q: float):
415306
red_fraction = sparse.csr_matrix(
416307
np.quantile(self.fraction.toarray(), q, axis=0)
417308
)
418-
reduced_attrs = self._reduce_attrs(f"quantile_{q}")
419309
return HazardForecast(
420-
lead_time=reduced_attrs["lead_time"],
421-
member=reduced_attrs["member"],
422310
haz_type=self.haz_type,
423311
pool=self.pool,
424312
units=self.units,
425313
centroids=self.centroids,
426-
event_id=reduced_attrs["event_id"],
427-
frequency=reduced_attrs["frequency"],
428314
frequency_unit=self.frequency_unit,
429-
event_name=reduced_attrs["event_name"],
430-
date=reduced_attrs["date"],
431-
orig=reduced_attrs["orig"],
432315
intensity=red_intensity,
433316
fraction=red_fraction,
317+
**self._reduce_attrs(f"quantile_{q}"),
434318
)
435319

436320
def median(self):

0 commit comments

Comments
 (0)