Example #1
0
    def test_write_read_raster_h5(self):
        """Write and read hdf5 format"""
        file_name = str(DATA_DIR.joinpath('test_centr.h5'))

        xf_lat, xo_lon, d_lat, d_lon, n_lat, n_lon = 10, 5, -0.5, 0.2, 20, 25
        centr = Centroids.from_pix_bounds(xf_lat, xo_lon, d_lat, d_lon, n_lat,
                                          n_lon)
        centr.write_hdf5(file_name)

        centr_read = Centroids.from_hdf5(file_name)
        self.assertTrue(centr_read.meta)
        self.assertFalse(centr_read.lat.size)
        self.assertFalse(centr_read.lon.size)
        self.assertEqual(centr_read.meta['width'], centr.meta['width'])
        self.assertEqual(centr_read.meta['height'], centr.meta['height'])
        self.assertAlmostEqual(centr_read.meta['transform'].a,
                               centr.meta['transform'].a)
        self.assertAlmostEqual(centr_read.meta['transform'].b,
                               centr.meta['transform'].b)
        self.assertAlmostEqual(centr_read.meta['transform'].c,
                               centr.meta['transform'].c)
        self.assertAlmostEqual(centr_read.meta['transform'].d,
                               centr.meta['transform'].d)
        self.assertAlmostEqual(centr_read.meta['transform'].e,
                               centr.meta['transform'].e)
        self.assertAlmostEqual(centr_read.meta['transform'].f,
                               centr.meta['transform'].f)
        self.assertTrue(
            u_coord.equal_crs(centr_read.meta['crs'], centr.meta['crs']))
Example #2
0
 def test_from_pix_bounds_pass(self):
     """Test from_pix_bounds"""
     xf_lat, xo_lon, d_lat, d_lon, n_lat, n_lon = 10, 5, -0.5, 0.2, 20, 25
     centr = Centroids.from_pix_bounds(xf_lat, xo_lon, d_lat, d_lon, n_lat,
                                       n_lon)
     self.assertTrue(u_coord.equal_crs(centr.meta['crs'], DEF_CRS))
     self.assertEqual(centr.meta['width'], n_lon)
     self.assertEqual(centr.meta['height'], n_lat)
     self.assertAlmostEqual(centr.meta['transform'][0], d_lon)
     self.assertAlmostEqual(centr.meta['transform'][1], 0.0)
     self.assertAlmostEqual(centr.meta['transform'][2], xo_lon)
     self.assertAlmostEqual(centr.meta['transform'][3], 0.0)
     self.assertAlmostEqual(centr.meta['transform'][4], d_lat)
     self.assertAlmostEqual(centr.meta['transform'][5], xf_lat)
     self.assertTrue('lat' in centr.__dict__.keys())
     self.assertTrue('lon' in centr.__dict__.keys())
Example #3
0
 def test_write_hdf5(self):
     tmpfile = 'test_write_hdf5.out.hdf5'
     xf_lat, xo_lon, d_lat, d_lon, n_lat, n_lon = 5, 6.5, -0.08, 0.12, 4, 5
     centr = Centroids.from_pix_bounds(xf_lat, xo_lon, d_lat, d_lon, n_lat,
                                       n_lon)
     with self.assertLogs('climada.hazard.centroids.centr',
                          level='INFO') as cm:
         centr.write_hdf5(tmpfile)
     self.assertEqual(1, len(cm.output))
     self.assertIn(f"Writing {tmpfile}", cm.output[0])
     centr.meta['nodata'] = None
     with self.assertLogs('climada.hazard.centroids.centr',
                          level='INFO') as cm:
         centr.write_hdf5(tmpfile)
     self.assertEqual(2, len(cm.output))
     self.assertIn("Skip writing Centroids.meta['nodata'] for it is None.",
                   cm.output[1])
     Path(tmpfile).unlink()