Skip to content

Commit 4ea685d

Browse files
committed
fixes some bugs
1 parent 389787e commit 4ea685d

File tree

3 files changed

+156
-106
lines changed

3 files changed

+156
-106
lines changed

climada/trajectories/risk_trajectory.py

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -282,21 +282,13 @@ def risk_components_metrics(self, npv=True):
282282

283283
def all_risk_metrics(self, return_periods=[50, 100, 500], npv=True):
284284
if not self._metrics_up_to_date:
285-
aai = self.aai_metrics
285+
aai = self.aai_metrics()
286286
rp = self.return_periods_metrics(return_periods)
287-
aai_per_group = self.aai_per_group_metrics
288-
risk_components = self.risk_components_metrics
289-
tmp = pd.concat([aai, rp, aai_per_group, risk_components])
290-
columns_to_front = ["group", "date", "measure", "metric"]
291-
self._all_risk_metrics = tmp[
292-
columns_to_front
293-
+ [
294-
col
295-
for col in tmp.columns
296-
if col not in columns_to_front + ["group", "risk", "rp"]
297-
]
298-
+ ["risk"]
299-
]
287+
aai_per_group = self.aai_per_group_metrics()
288+
risk_components = self.risk_components_metrics()
289+
self._all_risk_metrics = pd.concat(
290+
[aai, rp, aai_per_group, risk_components]
291+
)
300292
self._metrics_up_to_date = True
301293

302294
return self._all_risk_metrics

climada/trajectories/riskperiod.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -485,21 +485,27 @@ def calc_aai_metric(self):
485485

486486
def calc_aai_per_group_metric(self):
487487
aai_per_group_df = []
488-
for group in np.unique(np.concatenate(self._group_id_E0, self._group_id_E1)):
488+
for group in np.unique(np.concatenate([self._group_id_E0, self._group_id_E1])):
489489
group_idx_E0 = np.where(self._group_id_E0 != group)
490490
group_idx_E1 = np.where(self._group_id_E1 != group)
491491
per_date_aai_H0, per_date_aai_H1 = (
492-
self.per_date_eai_H0[group_idx_E0].sum(),
493-
self.per_date_eai_H1[group_idx_E1].sum(),
492+
self.per_date_eai_H0[:, group_idx_E0].sum(),
493+
self.per_date_eai_H1[:, group_idx_E1].sum(),
494494
)
495495
per_date_aai = (
496496
self._prop_H0 * per_date_aai_H0 + self._prop_H1 * per_date_aai_H1
497497
)
498498
df = pd.DataFrame(index=self.date_idx, columns=["risk"], data=per_date_aai)
499-
df["group"] = pd.NA
500-
aai_per_group_df += df
499+
df["group"] = group
500+
aai_per_group_df.append(df)
501501

502-
return pd.concat(aai_per_group_df)
502+
aai_per_group_df = pd.concat(aai_per_group_df)
503+
aai_per_group_df["metric"] = "aai"
504+
aai_per_group_df["measure"] = (
505+
self.measure.name if self.measure else "no_measure"
506+
)
507+
aai_per_group_df.reset_index(inplace=True)
508+
return aai_per_group_df
503509

504510
def calc_return_periods_metric(self, return_periods):
505511
rp_0, rp_1 = self.per_date_return_periods_H0(

doc/tutorial/climada_trajectories.ipynb

Lines changed: 138 additions & 86 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)