Skip to content

Commit f4d92c3

Browse files
committed
Better computation and interpretation of risk contributions
1 parent c9b1ad3 commit f4d92c3

File tree

1 file changed

+66
-9
lines changed

1 file changed

+66
-9
lines changed

climada/trajectories/riskperiod.py

Lines changed: 66 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,27 @@ def imp_mats_H1V1(self) -> list:
663663
self.E0H1V1.imp_mat, self.E1H1V1.imp_mat, self.time_points
664664
)
665665

666+
@property
667+
def imp_mats_E0H0V0(self) -> list:
668+
"""List of `time_points` impact matrices with base exposure, base hazard and base vulnerability."""
669+
return self.interpolation_strategy.interp_over_exposure_dim(
670+
self.E0H0V0.imp_mat, self.E0H0V0.imp_mat, self.time_points
671+
)
672+
673+
@property
674+
def imp_mats_E0H1V0(self) -> list:
675+
"""List of `time_points` impact matrices with base exposure, future hazard and base vulnerability."""
676+
return self.interpolation_strategy.interp_over_exposure_dim(
677+
self.E0H1V0.imp_mat, self.E0H1V0.imp_mat, self.time_points
678+
)
679+
680+
@property
681+
def imp_mats_E0H0V1(self) -> list:
682+
"""List of `time_points` impact matrices with base exposure, future hazard and base vulnerability."""
683+
return self.interpolation_strategy.interp_over_exposure_dim(
684+
self.E0H0V1.imp_mat, self.E0H0V1.imp_mat, self.time_points
685+
)
686+
666687
###############################
667688

668689
########## Core EAI ###########
@@ -695,6 +716,27 @@ def per_date_eai_H1V1(self) -> np.ndarray:
695716
self.imp_mats_H1V1, self.snapshot_end.hazard.frequency
696717
)
697718

719+
@property
720+
def per_date_eai_E0H0V0(self) -> np.ndarray:
721+
"""Expected annual impacts for base exposure, base hazard and base vulnerability."""
722+
return calc_per_date_eais(
723+
self.imp_mats_E0H0V0, self.snapshot_end.hazard.frequency
724+
)
725+
726+
@property
727+
def per_date_eai_E0H1V0(self) -> np.ndarray:
728+
"""Expected annual impacts for base exposure, future hazard and base vulnerability."""
729+
return calc_per_date_eais(
730+
self.imp_mats_E0H1V0, self.snapshot_end.hazard.frequency
731+
)
732+
733+
@property
734+
def per_date_eai_E0H0V1(self) -> np.ndarray:
735+
"""Expected annual impacts for base exposure, future hazard and base vulnerability."""
736+
return calc_per_date_eais(
737+
self.imp_mats_E0H0V1, self.snapshot_end.hazard.frequency
738+
)
739+
698740
##################################
699741

700742
######### Core AAIs ##########
@@ -719,6 +761,21 @@ def per_date_aai_H1V1(self) -> np.ndarray:
719761
"""Average annual impacts for changing exposure, future hazard and future vulnerability."""
720762
return calc_per_date_aais(self.per_date_eai_H1V1)
721763

764+
@property
765+
def per_date_aai_E0H0V0(self) -> np.ndarray:
766+
"""Average annual impacts for base exposure, base hazard and base vulnerability."""
767+
return calc_per_date_aais(self.per_date_eai_E0H0V0)
768+
769+
@property
770+
def per_date_aai_E0H1V0(self) -> np.ndarray:
771+
"""Average annual impacts for base exposure, base hazard and base vulnerability."""
772+
return calc_per_date_aais(self.per_date_eai_E0H1V0)
773+
774+
@property
775+
def per_date_aai_E0H0V1(self) -> np.ndarray:
776+
"""Average annual impacts for base exposure, base hazard and base vulnerability."""
777+
return calc_per_date_aais(self.per_date_eai_E0H0V1)
778+
722779
#################################
723780

724781
######### Core RPs #########
@@ -948,24 +1005,24 @@ def calc_risk_contributions_metric(self) -> pd.DataFrame:
9481005
hazard and vulnerability).
9491006
9501007
"""
951-
per_date_aai_V0 = self.interpolation_strategy.interp_over_hazard_dim(
952-
self.per_date_aai_H0V0, self.per_date_aai_H1V0
1008+
per_date_aai_E0V0 = self.interpolation_strategy.interp_over_hazard_dim(
1009+
self.per_date_aai_E0H0V0, self.per_date_aai_E0H1V0
9531010
)
954-
per_date_aai_H0 = self.interpolation_strategy.interp_over_vulnerability_dim(
955-
self.per_date_aai_H0V0, self.per_date_aai_H0V1
1011+
per_date_aai_E0H0 = self.interpolation_strategy.interp_over_vulnerability_dim(
1012+
self.per_date_aai_E0H0V0, self.per_date_aai_E0H0V1
9561013
)
9571014
df = pd.DataFrame(
9581015
{
9591016
CONTRIBUTION_TOTAL_RISK_NAME: self.per_date_aai,
9601017
CONTRIBUTION_BASE_RISK_NAME: self.per_date_aai[0],
9611018
CONTRIBUTION_EXPOSURE_NAME: self.per_date_aai_H0V0
9621019
- self.per_date_aai[0],
963-
CONTRIBUTION_HAZARD_NAME: per_date_aai_V0
964-
- (self.per_date_aai_H0V0 - self.per_date_aai[0])
1020+
CONTRIBUTION_HAZARD_NAME: per_date_aai_E0V0
1021+
# - (self.per_date_aai_H0V0 - self.per_date_aai[0])
1022+
- self.per_date_aai[0],
1023+
CONTRIBUTION_VULNERABILITY_NAME: per_date_aai_E0H0
9651024
- self.per_date_aai[0],
966-
CONTRIBUTION_VULNERABILITY_NAME: per_date_aai_H0
967-
- self.per_date_aai[0]
968-
- (self.per_date_aai_H0V0 - self.per_date_aai[0]),
1025+
# - (self.per_date_aai_H0V0 - self.per_date_aai[0]),
9691026
},
9701027
index=self.date_idx,
9711028
)

0 commit comments

Comments
 (0)