def test_writer(self): """`WriteImageDataToSGeMS`: check data integrity across I/O""" writer = WriteImageDataToSGeMS() filename = os.path.join(self.test_dir, 'test-writer.dat') writer.SetFileName(filename) writer.Write(self.GRID) # Now read that data and compare reader = SGeMSGridReader() read = reader.apply(filename) # Compare data truedata = self.GRID.GetCellData() testdata = read.GetCellData() self.assertEqual(truedata.GetNumberOfArrays(), testdata.GetNumberOfArrays()) wtbl = dsa.WrapDataObject(self.GRID) wrd = dsa.WrapDataObject(read) self.assertEqual(self.GRID.GetDimensions(), wrd.GetDimensions()) self.assertEqual(self.GRID.GetOrigin(), wrd.GetOrigin()) self.assertEqual(self.GRID.GetSpacing(), wrd.GetSpacing()) for i in range(truedata.GetNumberOfArrays()): self.assertIsNotNone(wtbl.CellData[i]) self.assertIsNotNone(wrd.CellData[i]) self.assertTrue(np.allclose(wtbl.CellData[i], wrd.CellData[i])) for i in range(self.GRID.GetCellData().GetNumberOfArrays()): self.assertIsNotNone(wtbl.CellData[i]) self.assertIsNotNone(wrd.CellData[i]) self.assertTrue(np.allclose(wtbl.CellData[i], wrd.CellData[i]))
def test_bad_file(self): """`SGeMSGridReader`: check handling of bad input file""" filename = os.path.join(self.test_dir, 'test_bad.dat') header = ['Bad header', '%d' % len(self.titles)] for ln in self.titles: header.append(ln + '\n') header = '\n'.join(header) np.savetxt(filename, self.data, delimiter=' ', header=header, comments='') # Set up the reader reader = SGeMSGridReader() reader.AddFileName(filename) # Perform the read reader.Update() self.assertTrue(reader.error_occurred())
def setUp(self): TestBase.setUp(self) # Create a temporary directory self.test_dir = tempfile.mkdtemp() self.n = 100 self.shape = (150, 200, 20) self.extent = (0, self.shape[0], 0, self.shape[1], 0, self.shape[2]) self.titles = ['Array 1', 'Array 2', 'Array 3'] ##### Now generate output for testing #### filename = os.path.join(self.test_dir, 'test.dat') self.data = np.random.random((self.n, len(self.titles))) header = ['%d %d %d' % self.shape, '%d' % len(self.titles)] for ln in self.titles: header.append(ln + '\n') header = '\n'.join(header) np.savetxt(filename, self.data, delimiter=' ', header=header, comments='') # Set up the reader self.GRID = SGeMSGridReader().apply(filename)
~~~~~~~~~~~~~~~ Read SGeMS Grid file formats. The examples shown here are downloaded from `Multiple-point Geostatistics stochastic modeling with training images <http://www.trainingimages.org/training-images-library.html>`_ website. """ # sphinx_gallery_thumbnail_number = 2 import pyvista from pyvista import examples from PVGeo.gslib import SGeMSGridReader ################################################################################ grid_url = 'http://www.trainingimages.org/uploads/3/4/7/0/34703305/a_wlreferencecat.zip' filename, _ = examples.downloads._retrieve_file(grid_url, 'A_WLreferenceCAT.sgems.zip') grid = SGeMSGridReader().apply(filename) print(grid) ################################################################################ warped = grid.cell_data_to_point_data().warp_by_scalar(scale_factor=5) warped.plot() ################################################################################ grid_url = 'http://www.trainingimages.org/uploads/3/4/7/0/34703305/maules_creek_3d.zip' filename, _ = examples.downloads._retrieve_file(grid_url, 'Maules_Creek_3D.SGEMS.zip') grid = SGeMSGridReader().apply(filename) grid.plot(categories=True) ################################################################################