예제 #1
0
    def from_mat(cls, file_name, description=''):
        """Read MATLAB file of climada.

        Parameters
        ----------
        file_name : str, optional
            file name(s) or folder name
            containing the files to read
        description : str or list(str), optional
            one description of the
            data or a description of each data file

        Returns
        -------
        ent : climada.entity.Entity
            The entity from matlab file
        """
        return cls(exposures=Exposures.from_mat(file_name),
                   disc_rates=DiscRates.from_mat(file_name, description),
                   impact_func_set=ImpactFuncSet.from_mat(
                       file_name, description),
                   measure_set=MeasureSet.from_mat(file_name, description))
예제 #2
0
    def test_demo_file_pass(self):
        """Read demo mat file"""
        # Read demo excel file

        description = 'One single file.'
        disc_rate = DiscRates.from_mat(file_name=ENT_TEST_MAT,
                                       description=description)

        # Check results
        n_rates = 51

        self.assertIn('int', str(disc_rate.years.dtype))
        self.assertEqual(len(disc_rate.years), n_rates)
        self.assertEqual(disc_rate.years[0], 2000)
        self.assertEqual(disc_rate.years[n_rates - 1], 2050)

        self.assertIn('float', str(disc_rate.rates.dtype))
        self.assertEqual(len(disc_rate.rates), n_rates)
        self.assertEqual(disc_rate.rates.min(), 0.02)
        self.assertEqual(disc_rate.rates.max(), 0.02)

        self.assertEqual(disc_rate.tag.file_name, str(ENT_TEST_MAT))
        self.assertEqual(disc_rate.tag.description, description)