Example #1
0
 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]))
Example #2
0
 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())
Example #3
0
 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)
Example #4
0
~~~~~~~~~~~~~~~

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)

################################################################################