def test_write_vm(self): """ Should write in the native VM format """ sl = np.random.rand(512, 1, 64) vm = VM(sl=sl) self.assertEqual(vm.grid.shape, sl.shape) self.assertAlmostEqual(vm.sl[0, 0, 0], sl[0, 0, 0], 7) fname = "temp_out.vm" if os.path.isfile(fname): os.remove(fname) # should write to VM format vm.write(fname) self.assertTrue(os.path.isfile(fname)) # should have the same data vm1 = VM(fname) self.assertEqual(vm1.sl.shape, vm.sl.shape) self.assertEqual(vm1.sl[0, 0, 0], vm.sl[0, 0, 0]) self.assertEqual(vm1.sl[-1, -1, -1], vm.sl[-1, -1, -1]) # clean up if os.path.isfile(fname): os.remove(fname)
def test_write_vm(self): """ Should write in the native VM format """ sl = np.random.rand(512, 1, 64) vm = VM(sl=sl) self.assertEqual(vm.grid.shape, sl.shape) self.assertAlmostEqual(vm.sl[0, 0, 0], sl[0, 0, 0], 7) fname = 'temp_out.vm' if os.path.isfile(fname): os.remove(fname) # should write to VM format vm.write(fname) self.assertTrue(os.path.isfile(fname)) # should have the same data vm1 = VM(fname) self.assertEqual(vm1.sl.shape, vm.sl.shape) self.assertEqual(vm1.sl[0, 0, 0], vm.sl[0, 0, 0]) self.assertEqual(vm1.sl[-1, -1, -1], vm.sl[-1, -1, -1]) # clean up if os.path.isfile(fname): os.remove(fname)
def test_write_bin(self): """ Should write grid to headerless binary format """ sl = np.random.rand(512, 1, 64) vm = VM(sl=sl) fname = "temp_out.bin" if os.path.isfile(fname): os.remove(fname) vm.write(fname) f = open(fname, "r") dat = np.fromstring(f.read(), dtype="float32").reshape(sl.shape) for v1, v2 in zip(dat.flatten(), vm.sl.flatten()): self.assertEqual(v1, v2) if os.path.isfile(fname): os.remove(fname)
def test_write_bin(self): """ Should write grid to headerless binary format """ sl = np.random.rand(512, 1, 64) vm = VM(sl=sl) fname = 'temp_out.bin' if os.path.isfile(fname): os.remove(fname) vm.write(fname) f = open(fname, 'rb') dat = np.fromstring(f.read(), dtype='float32').reshape(sl.shape) for v1, v2 in zip(dat.flatten(), vm.sl.flatten()): self.assertEqual(v1, v2) if os.path.isfile(fname): os.remove(fname)
def dev_readwrite_interface_flags(self): """ Should handle Fortran vs. Python indexing for interface flags """ sl = np.random.rand(8, 1, 12) vm = VM(sl=sl) vm.insert_interface(1) vm.ir = np.zeros((1, vm.nx, vm.ny)) vm.ij = np.zeros((1, vm.nx, vm.ny)) fname = 'temp_out.vm' if os.path.isfile(fname): os.remove(fname) vm.write(fname) # writing should not change flags for ilyr in range(vm.nr): for ix in range(vm.nx): for iy in range(vm.ny): self.assertEqual(vm.ir[ilyr, ix, iy], 0) self.assertEqual(vm.ij[ilyr, ix, iy], 0) # read should handle -1 for indexing vm1 = VM(fname) for ilyr in range(vm1.nr): for ix in range(vm1.nx): for iy in range(vm1.ny): self.assertEqual(vm1.ir[ilyr, ix, iy], 0) self.assertEqual(vm1.ij[ilyr, ix, iy], 0) # clean up if os.path.isfile(fname): os.remove(fname)
z[ix] = z0 + m * (x - x[0]) z0 = z[ix[-1]] # expand into 3D n = np.ones((vm.nx, 1)) for i in range(0, ny): n[i] = z[i] s = np.ones((vm.nx, vm.ny)) for i in range(0, ny): #s = np.hstack((n,n)) s[i, :] = n[i] z = np.array(s) # add the boundary vm.insert_interface(np.reshape(z, (vm.nx, vm.ny))) ## # add some velocities vm.define_constant_layer_velocity(0, 4.0) #surface vm.define_constant_layer_velocity(1, 6.0) #ocean print(vm) # plot vm.plot() # write vm.write('11.11.vm')