I'm calculating return period impacts for a single line of exposure in CLIMADA. I got the below output. enter image description here
For the same data set, I tried to output the Exceedanc frequency curve ,which should normaly match the return period data. But there is no match.
I tried to manipulate the return period inputs by changing the range. But nothing happened. I tried to go over codes used to output the return period showb below;
def local_exceedance_imp(self, return_periods=(25, 50, 100, 250)): """Compute exceedance impact map for given return periods. Requires attribute imp_mat.
Parameters
----------
return_periods : Any, optional
return periods to consider
Dafault is (25, 50, 100, 250)
Returns
-------
np.array
"""
LOGGER.info('Computing exceedance impact map for return periods: %s',
return_periods)
if self.imp_mat.size == 0:
raise ValueError('Attribute imp_mat is empty. Recalculate Impact'
'instance with parameter save_mat=True')
num_cen = self.imp_mat.shape[1]
imp_stats = np.zeros((len(return_periods), num_cen))
cen_step = CONFIG.max_matrix_size.int() // self.imp_mat.shape[0]
if not cen_step:
raise ValueError('Increase max_matrix_size configuration parameter to > '
f'{self.imp_mat.shape[0]}')
# separte in chunks
chk = -1
for chk in range(int(num_cen / cen_step)):
self._loc_return_imp(np.array(return_periods),
self.imp_mat[:, chk * cen_step:(chk + 1) * cen_step].toarray(),
imp_stats[:, chk * cen_step:(chk + 1) * cen_step])
self._loc_return_imp(np.array(return_periods),
self.imp_mat[:, (chk + 1) * cen_step:].toarray(),
imp_stats[:, (chk + 1) * cen_step:])
return imp_stats
In the second picture you did recompute the return period curve for the default values of
(25, 50, 100, 250). This is different from your first picture with values of(100, 200, 300, 500).