Exemplo n.º 1
0
 def test_equal_same(self):
     """Append the same hazard. Obtain initial hazard."""
     haz1 = Hazard('TC')
     haz1.read_excel(HAZ_TEMPLATE_XLS)
     haz2 = Hazard('TC')
     haz2.read_excel(HAZ_TEMPLATE_XLS)
     haz1.append(haz2)
     haz1.remove_duplicates()
     haz1.check()
     self.assertEqual(haz1.event_name, haz2.event_name)
     self.assertTrue(np.array_equal(haz1.event_id, haz2.event_id))
     self.assertTrue(np.array_equal(haz1.frequency, haz2.frequency))
     self.assertTrue(np.array_equal(haz1.date, haz2.date))
     self.assertTrue(np.array_equal(haz1.orig, haz2.orig))
     self.assertTrue(
         np.array_equal(haz1.intensity.todense(), haz2.intensity.todense()))
     self.assertTrue(
         np.array_equal(haz1.fraction.todense(), haz2.fraction.todense()))
     self.assertTrue((haz1.intensity != haz2.intensity).nnz == 0)
     self.assertTrue((haz1.fraction != haz2.fraction).nnz == 0)
     self.assertEqual(haz1.units, haz2.units)
     self.assertEqual(haz1.tag.file_name,
                      [haz2.tag.file_name, haz2.tag.file_name])
     self.assertEqual(haz1.tag.haz_type, haz2.tag.haz_type)
     self.assertEqual(haz1.tag.description,
                      [haz2.tag.description, haz2.tag.description])
Exemplo n.º 2
0
 def test_event_id_to_name_fail(self):
     """ Test event_id_to_name function."""
     haz = Hazard('TC')
     haz.read_excel(HAZ_TEMPLATE_XLS)
     with self.assertLogs('climada.hazard.base', level='ERROR') as cm:
         with self.assertRaises(ValueError):
             haz.get_event_name(1050)
     self.assertIn('No event with id: 1050', cm.output[0])
Exemplo n.º 3
0
    def test_hazard_pass(self):
        ''' Read an hazard excel file correctly.'''

        # Read demo excel file
        hazard = Hazard('TC')
        description = 'One single file.'
        hazard.read_excel(HAZ_TEMPLATE_XLS, description)

        # Check results
        n_events = 100
        n_centroids = 45

        self.assertEqual(hazard.units, '')

        self.assertEqual(hazard.centroids.coord.shape, (n_centroids, 2))
        self.assertEqual(hazard.centroids.coord[0][0], -25.95)
        self.assertEqual(hazard.centroids.coord[0][1], 32.57)
        self.assertEqual(hazard.centroids.coord[n_centroids-1][0], -24.7)
        self.assertEqual(hazard.centroids.coord[n_centroids-1][1], 33.88)

        self.assertEqual(len(hazard.event_name), 100)
        self.assertEqual(hazard.event_name[12], 'event013')

        self.assertEqual(hazard.event_id.dtype, int)
        self.assertEqual(hazard.event_id.shape, (n_events,))
        self.assertEqual(hazard.event_id[0], 1)
        self.assertEqual(hazard.event_id[n_events-1], 100)

        self.assertEqual(hazard.date.dtype, int)
        self.assertEqual(hazard.date.shape, (n_events,))
        self.assertEqual(hazard.date[0], 675874)
        self.assertEqual(hazard.date[n_events-1], 676329)

        self.assertEqual(hazard.event_name[0], 'event001')
        self.assertEqual(hazard.event_name[50], 'event051')
        self.assertEqual(hazard.event_name[-1], 'event100')

        self.assertEqual(hazard.frequency.dtype, np.float)
        self.assertEqual(hazard.frequency.shape, (n_events,))
        self.assertEqual(hazard.frequency[0], 0.01)
        self.assertEqual(hazard.frequency[n_events-2], 0.001)

        self.assertEqual(hazard.intensity.dtype, np.float)
        self.assertEqual(hazard.intensity.shape, (n_events, n_centroids))

        self.assertEqual(hazard.fraction.dtype, np.float)
        self.assertEqual(hazard.fraction.shape, (n_events, n_centroids))
        self.assertEqual(hazard.fraction[0, 0], 1)
        self.assertEqual(hazard.fraction[10, 19], 1)
        self.assertEqual(hazard.fraction[n_events-1, n_centroids-1], 1)

        self.assertTrue(np.all(hazard.orig))

        # tag hazard
        self.assertEqual(hazard.tag.file_name, HAZ_TEMPLATE_XLS)
        self.assertEqual(hazard.tag.description, description)
        self.assertEqual(hazard.tag.haz_type, 'TC')
Exemplo n.º 4
0
    def test_append_to_empty_fill(self):
        """Append to an empty hazard a filled one. Obtain filled one."""
        haz1 = Hazard('TC')
        haz2 = Hazard('TC')
        haz2.read_excel(HAZ_TEMPLATE_XLS)
        haz1.append(haz2)
        haz1.check()

        # expected values
        haz1_orig = Hazard('TC')
        haz1_orig.read_excel(HAZ_TEMPLATE_XLS)
        self.assertEqual(haz1.event_name, haz1_orig.event_name)
        self.assertTrue(np.array_equal(haz1.event_id, haz1_orig.event_id))
        self.assertTrue(np.array_equal(haz1.frequency, haz1_orig.frequency))
        self.assertTrue(np.array_equal(haz1.date, haz1_orig.date))
        self.assertTrue(np.array_equal(haz1.orig, haz1_orig.orig))
        self.assertTrue((haz1.intensity != haz1_orig.intensity).nnz == 0)
        self.assertTrue((haz1.fraction != haz1_orig.fraction).nnz == 0)
        self.assertEqual(haz1.units, haz1_orig.units)
        self.assertEqual(haz1.tag.file_name, haz1_orig.tag.file_name)
        self.assertEqual(haz1.tag.haz_type, haz1_orig.tag.haz_type)
        self.assertEqual(haz1.tag.description, haz1_orig.tag.description)
Exemplo n.º 5
0
    def test_append_empty_fill(self):
        """Append an empty. Obtain initial hazard."""
        haz1 = Hazard('TC')
        haz1.read_excel(HAZ_TEMPLATE_XLS)
        haz2 = Hazard('TC')
        haz2.centroids.geometry.crs = {'init':'epsg:4326'}
        haz1.append(haz2)
        haz1.check()

        # expected values
        haz1_orig = Hazard('TC')
        haz1_orig.read_excel(HAZ_TEMPLATE_XLS)
        self.assertEqual(haz1.event_name, haz1_orig.event_name)
        self.assertTrue(np.array_equal(haz1.event_id, haz1_orig.event_id))
        self.assertTrue(np.array_equal(haz1.date, haz1_orig.date))
        self.assertTrue(np.array_equal(haz1.orig, haz1_orig.orig))
        self.assertTrue(np.array_equal(haz1.frequency, haz1_orig.frequency))
        self.assertTrue((haz1.intensity != haz1_orig.intensity).nnz == 0)
        self.assertTrue((haz1.fraction != haz1_orig.fraction).nnz == 0)
        self.assertEqual(haz1.units, haz1_orig.units)
        self.assertEqual(haz1.tag.file_name, haz1_orig.tag.file_name)
        self.assertEqual(haz1.tag.haz_type, haz1_orig.tag.haz_type)
        self.assertEqual(haz1.tag.description, haz1_orig.tag.description)
Exemplo n.º 6
0
 def test_event_id_to_name_pass(self):
     """ Test event_id_to_name function."""
     haz = Hazard('TC')
     haz.read_excel(HAZ_TEMPLATE_XLS)
     self.assertEqual(haz.get_event_name(2), 'event002')
     self.assertEqual(haz.get_event_name(48), 'event048')
Exemplo n.º 7
0
 def test_event_name_to_id_pass(self):
     """ Test event_name_to_id function."""
     haz = Hazard('TC')
     haz.read_excel(HAZ_TEMPLATE_XLS)
     self.assertEqual(haz.get_event_id('event001')[0], 1)
     self.assertEqual(haz.get_event_id('event084')[0], 84)