Esempio n. 1
0
 def _get_hdf5_str(imp, idxs, file_name, var_name):
     """Get rows with same string in var_name."""
     prev_str = ""
     for row in idxs:
         cur_str = u_hdf5.get_str_from_ref(file_name, imp[var_name][row][0])
         if prev_str == "":
             prev_str = cur_str
         elif prev_str != cur_str:
             LOGGER.error("Impact function with two different %s.", var_name)
             raise ValueError
     return prev_str
Esempio n. 2
0
 def _get_hdf5_funcs(imp, file_name, var_names):
     """Get rows that fill every impact function and its name."""
     func_pos = dict()
     for row, (fun_id, fun_type) in enumerate(
             zip(imp[var_names['var_name']['fun_id']].squeeze(),
                 imp[var_names['var_name']['peril']].squeeze())):
         type_str = u_hdf5.get_str_from_ref(file_name, fun_type)
         key = (type_str, int(fun_id))
         if key not in func_pos:
             func_pos[key] = list()
         func_pos[key].append(row)
     return func_pos
Esempio n. 3
0
def _read_mat_metadata(exposures, data, file_name, var_names):
    """ Fille metadata in DataFrame object """
    try:
        exposures.ref_year = int(np.squeeze(data[var_names['var_name']['ref']]))
    except KeyError:
        exposures.ref_year = DEF_REF_YEAR

    try:
        exposures.value_unit = hdf5.get_str_from_ref(file_name, \
            data[var_names['var_name']['uni']][0][0])
    except KeyError:
        exposures.value_unit = DEF_VALUE_UNIT

    exposures.tag = Tag(file_name)
Esempio n. 4
0
        def read_att_mat(measures, data, file_name, var_names):
            """Read MATLAB measures attributes"""
            num_mes = len(data[var_names['var_name']['name']])
            for idx in range(0, num_mes):
                meas = Measure()

                meas.name = hdf5.get_str_from_ref(
                    file_name, data[var_names['var_name']['name']][idx][0])

                color_str = hdf5.get_str_from_ref(
                    file_name, data[var_names['var_name']['color']][idx][0])
                meas.color_rgb = np.fromstring(color_str, dtype=float, sep=' ')
                meas.cost = data[var_names['var_name']['cost']][idx][0]
                meas.haz_type = hdf5.get_str_from_ref(
                    file_name, data[var_names['var_name']['haz']][idx][0])
                meas.hazard_freq_cutoff = data[var_names['var_name']
                                               ['haz_frq']][idx][0]
                meas.hazard_set = hdf5.get_str_from_ref(
                    file_name, data[var_names['var_name']['haz_set']][idx][0])
                try:
                    meas.hazard_inten_imp = (
                        data[var_names['var_name']['haz_int_a']][idx][0],
                        data[var_names['var_name']['haz_int_b']][0][idx])
                except KeyError:
                    meas.hazard_inten_imp = (
                        data[var_names['var_name']['haz_int_a'][:-2]][idx][0],
                        0)

                # different convention of signes followed in MATLAB!
                meas.mdd_impact = (
                    data[var_names['var_name']['mdd_a']][idx][0],
                    data[var_names['var_name']['mdd_b']][idx][0])
                meas.paa_impact = (
                    data[var_names['var_name']['paa_a']][idx][0],
                    data[var_names['var_name']['paa_b']][idx][0])
                meas.imp_fun_map = hdf5.get_str_from_ref(
                    file_name, data[var_names['var_name']['fun_map']][idx][0])

                meas.exposures_set = hdf5.get_str_from_ref(
                    file_name, data[var_names['var_name']['exp_set']][idx][0])
                exp_region_id = data[var_names['var_name']['exp_reg']][idx][0]
                if exp_region_id:
                    meas.exp_region_id = [exp_region_id]
                meas.risk_transf_attach = data[var_names['var_name']
                                               ['risk_att']][idx][0]
                meas.risk_transf_cover = data[var_names['var_name']
                                              ['risk_cov']][idx][0]

                measures.append(meas)
Esempio n. 5
0
 def test_get_str_from_ref(self):
     """ Check import string from a HDF5 object reference"""
     file = h5py.File(HAZ_TEST_MAT, 'r')
     var = file['hazard']['name'][0][0]
     res = hdf5.get_str_from_ref(HAZ_TEST_MAT, var)
     self.assertEqual('NNN_1185101', res)