def testSwitchFrame(self): '''Test our ability to open on arbitrary frame and change frame''' # Start with y=0 slice MHD outs file, but start on 2nd frame: f = os.path.join( spacepy_testing.datadir, 'pybats_test', 'y=0_mhd_1_e20140410-000000-000_20140410-000200-000.outs') mhd = pb.IdlFile(f, iframe=1) # Check against 2nd frame info: self.assertEqual(self.knownIterRng2[1], mhd.attrs['iter']) self.assertEqual(self.knownRtimeRng2[1], mhd.attrs['runtime']) self.assertEqual(self.knownTimeRng2[1], mhd.attrs['time']) # Check against 2nd frame data: for v in ['Rho', 'Ux', 'Bz', 'P', 'jy']: self.assertAlmostEqual(self.knownMax2[v], mhd[v].max(), places=14) # Switch frames, check for successful update of attributes: mhd.switch_frame(0) self.assertEqual(self.knownIterRng1[0], mhd.attrs['iter']) self.assertEqual(self.knownRtimeRng1[0], mhd.attrs['runtime']) self.assertEqual(self.knownTimeRng1[0], mhd.attrs['time']) # Check against 1st frame data: for v in ['Rho', 'Ux', 'Bz', 'P', 'jy']: self.assertAlmostEqual(self.knownMax1[v], mhd[v].max(), places=14)
def testReadAsciiAsBin(self): """Read an ASCII file as a binary""" try: data = pb.IdlFile('data/pybats_test/mag_grid_ascii.out', format='bin', header=None, keep_case=True) except EOFError as e: msg = str(e) else: self.fail('Should have raised EOFError') self.assertEqual(msg, 'File is shorter than expected data')
def testReadOuts(self): # Start with y=0 slice MHD outs file: mhd = pb.IdlFile( os.path.join( spacepy_testing.datadir, 'pybats_test', 'y=0_mhd_1_e20140410-000000-000_20140410-000200-000.outs')) for i in range(len(self.knownIterRng1)): self.assertEqual(self.knownIterRng1[i], mhd.attrs['iter_range'][i]) self.assertEqual(self.knownRtimeRng1[i], mhd.attrs['runtime_range'][i]) self.assertEqual(self.knownTimeRng1[i], mhd.attrs['time_range'][i])
def testAscii(self): # Open file: mhd = pb.IdlFile('data/pybats_test/y0_ascii.out', format='ascii') # Test units are loaded correctly: for v in mhd: if v not in self.varnames: continue self.assertEqual(self.knownMhdUnits[v], mhd[v].attrs['units']) # Test values inside of mhd: self.assertEqual(self.knownMhdXmax, mhd['x'].max()) self.assertEqual(self.knownMhdXmin, mhd['x'].min()) self.assertEqual(self.knownMhdZlim, mhd['z'].max()) self.assertEqual(self.knownMhdZlim * -1, mhd['z'].min())
def testBinary(self): # Open file: mhd = pb.IdlFile( os.path.join(self.pth, 'data', 'pybats_test', 'y0_binary.out')) # Test units are loaded correctly: for v in mhd: if v not in self.varnames: continue self.assertEqual(self.knownMhdUnits[v], mhd[v].attrs['units']) # Test values inside of mhd: self.assertEqual(self.knownMhdXmax, mhd['x'].max()) self.assertEqual(self.knownMhdXmin, mhd['x'].min()) self.assertEqual(self.knownMhdZlim, mhd['z'].max()) self.assertEqual(self.knownMhdZlim * -1, mhd['z'].min())
def testBinary(self): # Open file: mhd = pb.IdlFile( os.path.join(spacepy_testing.datadir, 'pybats_test', 'y=0_mhd_1_e20140410-000050.out')) # Test time attribute: self.assertEqual(self.knownMhdTime, mhd.attrs['time']) # Test units are loaded correctly: for v in mhd: if v not in self.varnames: continue self.assertEqual(self.knownMhdUnits[v], mhd[v].attrs['units']) # Test values inside of mhd: self.assertEqual(self.knownMhdXmax, mhd['x'].max()) self.assertEqual(self.knownMhdXmin, mhd['x'].min()) self.assertEqual(self.knownMhdZlim, mhd['z'].max()) self.assertEqual(self.knownMhdZlim * -1, mhd['z'].min())
from spacepy import pybats #import timeit import time t0 = time.time() data = pybats.IdlFile("../3d_var_region0_0_t00001205_n00037679.out") t1 = time.time() total = t1 - t0 print(total) #Bx = data['Bx']