def test_writeGrid(self): ATM_MODEL_DFILES = os.getenv('ATM_MODEL_DFILES') file0 = os.path.join(ATM_MODEL_DFILES.strip(),'bcmk/geophy.fst') funit = rmn.fstopenall(file0) rec = rmn.fstlir(funit, nomvar='ME') grid0 = rmn.readGrid(funit, rec) rmn.fstcloseall(funit) grid1 = rmn.defGrid_L(180,60,0.,180.,1.,0.5) grid2 = rmn.defGrid_ZE(90,45,10.,11.,1.,0.5,0.,180.,1.,270.) grid3 = rmn.defGrid_YY(31,5,0.,180.,1.,270.) self.erase_testfile() myfile = self.fname funit = rmn.fstopenall(myfile, rmn.FST_RW) rmn.fstecr(funit,rec['d'],rec) rmn.writeGrid(funit, grid0) rmn.writeGrid(funit, grid1) rmn.writeGrid(funit, grid2) rmn.writeGrid(funit, grid3) rmn.fstcloseall(funit) funit = rmn.fstopenall(myfile, rmn.FST_RO) rec = rmn.fstlir(funit, nomvar='ME') grid0b = rmn.readGrid(funit, rec) rmn.fstcloseall(funit) self.erase_testfile() for k in grid0.keys(): if isinstance(grid0[k],np.ndarray): ok = np.any(np.abs(grid0b[k]-grid0[k]) > self.epsilon) self.assertFalse(ok, 'For k=%s, grid0b - grid0 = %s' % (k,str(np.abs(grid0b[k]-grid0[k])))) else: self.assertEqual(grid0b[k],grid0[k], 'For k=%s, expected:%s, got:%s' % (k, str(grid0[k]), str(grid0b[k])))
def test_defGrid_L(self): params = rmn.defGrid_L(90,45,0.,180.,1.,0.5) params2 = rmn.decodeGrid(params['id']) for k in params.keys(): self.assertEqual(params[k],params2[k]) params3 = rmn.decodeGrid(params) for k in params.keys(): self.assertEqual(params[k],params3[k])
def test_defGrid_L(self): params = rmn.defGrid_L(90, 45, 0., 180., 1., 0.5) params2 = rmn.decodeGrid(params['id']) for k in params.keys(): self.assertEqual(params[k], params2[k]) params3 = rmn.decodeGrid(params) for k in params.keys(): self.assertEqual(params[k], params3[k])
def test_writeGrid(self): ATM_MODEL_DFILES = os.getenv('ATM_MODEL_DFILES') file0 = os.path.join(ATM_MODEL_DFILES.strip(), 'bcmk/geophy.fst') funit = rmn.fstopenall(file0) rec = rmn.fstlir(funit, nomvar='ME') grid0 = rmn.readGrid(funit, rec) rmn.fstcloseall(funit) grid1 = rmn.defGrid_L(180, 60, 0., 180., 1., 0.5) grid2 = rmn.defGrid_ZE(90, 45, 10., 11., 1., 0.5, 0., 180., 1., 270.) grid3 = rmn.defGrid_YY(31, 5, 0., 180., 1., 270.) self.erase_testfile() myfile = self.fname funit = rmn.fstopenall(myfile, rmn.FST_RW) rmn.fstecr(funit, rec['d'], rec) rmn.writeGrid(funit, grid0) rmn.writeGrid(funit, grid1) rmn.writeGrid(funit, grid2) rmn.writeGrid(funit, grid3) rmn.fstcloseall(funit) funit = rmn.fstopenall(myfile, rmn.FST_RO) rec = rmn.fstlir(funit, nomvar='ME') grid0b = rmn.readGrid(funit, rec) rmn.fstcloseall(funit) self.erase_testfile() for k in grid0.keys(): if isinstance(grid0[k], np.ndarray): ok = np.any(np.abs(grid0b[k] - grid0[k]) > self.epsilon) self.assertFalse( ok, 'For k=%s, grid0b - grid0 = %s' % (k, str(np.abs(grid0b[k] - grid0[k])))) else: self.assertEqual( grid0b[k], grid0[k], 'For k=%s, expected:%s, got:%s' % (k, str(grid0[k]), str(grid0b[k])))