Esempio n. 1
0
    def test_centroids_att_two_pass(self):
        """ Test set all attributes centroids """
        centr_bang = Centroids()
        centr_bang.set_raster_from_pnt_bounds((89, 21.5, 90, 23), 0.01)
        _set_centroids_att(centr_bang,
                           dist_coast_decay=True,
                           dem_product='SRTM3',
                           as_pixel=True)
        self.assertEqual(centr_bang.dist_coast.size, centr_bang.size)
        self.assertEqual(centr_bang.elevation.size, centr_bang.size)
        self.assertAlmostEqual(centr_bang.elevation.max(), 22.743055555555557)

        centr_bang.elevation = np.array([])
        centr_bang.dist_coast = np.array([])
        _set_centroids_att(centr_bang,
                           dist_coast_decay=True,
                           dem_product='SRTM3',
                           as_pixel=False)
        self.assertEqual(centr_bang.dist_coast.size, centr_bang.size)
        self.assertEqual(centr_bang.elevation.size, centr_bang.size)
        self.assertAlmostEqual(centr_bang.elevation.max(), 28.0)

        centr_bang.set_meta_to_lat_lon()
        centr_bang.meta = dict()
        centr_bang.elevation = np.array([])
        centr_bang.dist_coast = np.array([])
        _set_centroids_att(centr_bang,
                           dist_coast_decay=True,
                           dem_product='SRTM3')
        self.assertEqual(centr_bang.dist_coast.size, centr_bang.size)
        self.assertEqual(centr_bang.elevation.size, centr_bang.size)
        self.assertAlmostEqual(centr_bang.elevation.max(), 28.0)
Esempio n. 2
0
 def test_centroids_att_one_pass(self):
     """ Test set one attribute centroids """
     centr_bang = Centroids()
     centr_bang.set_raster_from_pnt_bounds((89, 21.5, 90, 23), 0.01)
     _set_centroids_att(centr_bang, dist_coast_decay=False, dem_product='SRTM3')
     self.assertEqual(centr_bang.dist_coast.size, 0)
     self.assertEqual(centr_bang.elevation.size, centr_bang.size)
Esempio n. 3
0
 def test_set_raster_pnt_pass(self):
     """Test set_raster_from_pnt_bounds from point borders"""
     centr = Centroids()
     left, bottom, right, top = 5, 0, 10, 10
     centr.set_raster_from_pnt_bounds((left, bottom, right, top), 0.2)
     self.assertEqual(centr.meta['crs'], DEF_CRS)
     self.assertEqual(centr.meta['width'], 26)
     self.assertEqual(centr.meta['height'], 51)
     self.assertAlmostEqual(centr.meta['transform'][0], 0.2)
     self.assertAlmostEqual(centr.meta['transform'][1], 0.0)
     self.assertAlmostEqual(centr.meta['transform'][2], 5 - 0.2 / 2)
     self.assertAlmostEqual(centr.meta['transform'][3], 0.0)
     self.assertAlmostEqual(centr.meta['transform'][4], -0.2)
     self.assertAlmostEqual(centr.meta['transform'][5], 10 + 0.2 / 2)
     self.assertTrue('lat' in centr.__dict__.keys())
     self.assertTrue('lon' in centr.__dict__.keys())
    def test_union_meta(self):
        cent1 = Centroids()
        cent1.set_raster_from_pnt_bounds((-1, -1, 0, 0), res=1)

        cent2 = Centroids()
        cent2.set_raster_from_pnt_bounds((0, 0, 1, 1), res=1)

        cent3 = Centroids()
        cent3.lat, cent3.lon = np.array([1]), np.array([1])

        cent = cent1.union(cent2)
        np.testing.assert_array_equal(cent.lat, [0, 0, -1, -1, 1, 1, 0])
        np.testing.assert_array_equal(cent.lon, [-1, 0, -1, 0, 0, 1, 1])

        cent = cent3.union(cent1)
        np.testing.assert_array_equal(cent.lat, [1, 0, 0, -1, -1])
        np.testing.assert_array_equal(cent.lon, [1, -1, 0, -1, 0])
Esempio n. 5
0
    def _centroids_creation(firms, res_data, centr_res_factor):
        """ Get centroids from the firms dataset and refactor them.

        Parameters:
            firms (DataFrame): dataset obtained from FIRMS data
            res_data (float): FIRMS instrument resolution in degrees
            centr_res_factor (float): the factor applied to voluntarly decrease/increase
                the centroids resolution

        Returns:
            centroids (Centroids)
        """
        centroids = Centroids()
        centroids.set_raster_from_pnt_bounds((firms['longitude'].min(), \
            firms['latitude'].min(), firms['longitude'].max(), \
            firms['latitude'].max()), res=res_data/centr_res_factor)
        centroids.set_meta_to_lat_lon()
        centroids.set_area_approx()
        centroids.set_on_land()
        centroids.empty_geometry_points()

        return centroids