Skip to content

Commit 0ff7839

Browse files
committed
densify matrix only in insurance computations
1 parent 3df607b commit 0ff7839

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

climada/engine/impact.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,14 +254,15 @@ def _exp_impact(self, exp_iimp, exposures, hazard, imp_fun, insure_flag):
254254
icens = exposures[INDICATOR_CENTR + hazard.tag.haz_type].values[exp_iimp]
255255

256256
# get affected intensities
257-
inten_val = hazard.intensity[:, icens].todense()
257+
inten_val = hazard.intensity[:, icens]
258258
# get affected fractions
259259
fract = hazard.fraction[:, icens]
260260
# impact = fraction * mdr * value
261-
impact = fract.multiply(imp_fun.calc_mdr(inten_val)). \
262-
multiply(exposures.value.values[exp_iimp])
261+
inten_val.data = imp_fun.calc_mdr(inten_val.data)
262+
impact = fract.multiply(inten_val).multiply(exposures.value.values[exp_iimp])
263263

264264
if insure_flag and impact.nonzero()[0].size:
265+
inten_val = hazard.intensity[:, icens].todense()
265266
paa = np.interp(inten_val, imp_fun.intensity, imp_fun.paa)
266267
impact = np.minimum(np.maximum(impact - \
267268
exposures.deductible.values[exp_iimp] * paa, 0), \

climada/engine/test/test_impact.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import unittest
2323
import numpy as np
2424
from scipy import sparse
25-
import pandas as pd
2625

2726
from climada.entity.tag import Tag
2827
from climada.hazard.tag import Tag as TagHaz

0 commit comments

Comments
 (0)