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']))
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())
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()