def test_Load(self): kw = EclKW.read_grdecl(copen(self.src_file, "r"), "PERMX") self.assertTrue(kw) grid = EclGrid(self.createTestPath("Statoil/ECLIPSE/Gurbat/ECLIPSE")) kw = Ecl3DKW.read_grdecl(grid, copen(self.src_file, "r"), "PERMX") self.assertTrue(isinstance(kw, Ecl3DKW))
def test_Load( self ): kw = EclKW.read_grdecl(copen(self.src_file, "r"), "PERMX") self.assertTrue(kw) grid = EclGrid( self.createTestPath("Statoil/ECLIPSE/Gurbat/ECLIPSE" )) kw = Ecl3DKW.read_grdecl(grid , copen(self.src_file, "r"), "PERMX") self.assertTrue( isinstance( kw , Ecl3DKW ))
def test_fseek( self ): file = copen(self.src_file, "r") self.assertTrue(EclKW.fseek_grdecl(file, "PERMX")) self.assertFalse(EclKW.fseek_grdecl(file, "PERMY")) file.close() file = copen(self.src_file, "r") kw1 = EclKW.read_grdecl(file, "PERMX") self.assertFalse(EclKW.fseek_grdecl(file, "PERMX")) self.assertTrue(EclKW.fseek_grdecl(file, "PERMX", rewind=True)) file.close()
def test_fseek(self): file = copen(self.src_file, "r") self.assertTrue(EclKW.fseek_grdecl(file, "PERMX")) self.assertFalse(EclKW.fseek_grdecl(file, "PERMY")) file.close() file = copen(self.src_file, "r") kw1 = EclKW.read_grdecl(file, "PERMX") self.assertFalse(EclKW.fseek_grdecl(file, "PERMX")) self.assertTrue(EclKW.fseek_grdecl(file, "PERMX", rewind=True)) file.close()
def test_grdecl_load(self): with self.assertRaises(IOError): grid = EclGrid.loadFromGrdecl("/file/does/not/exists") with TestAreaContext("python/grid-test/grdeclLoad"): with open("grid.grdecl","w") as f: f.write("Hei ...") with self.assertRaises(ValueError): grid = EclGrid.loadFromGrdecl("grid.grdecl") actnum = IntVector(default_value = 1 , initial_size = 1000) actnum[0] = 0 g1 = EclGrid.createRectangular((10,10,10) , (1,1,1) , actnum = actnum ) self.assertEqual( g1.getNumActive() , actnum.elementSum() ) g1.save_EGRID("G.EGRID") with open("grid.grdecl" , "w") as f2: f2.write("SPECGRID\n") f2.write(" 10 10 10 \'F\' /\n") with openEclFile("G.EGRID") as f: with copen("grid.grdecl" , "a") as f2: coord_kw = f["COORD"][0] coord_kw.write_grdecl( f2 ) zcorn_kw = f["ZCORN"][0] zcorn_kw.write_grdecl( f2 ) actnum_kw = f["ACTNUM"][0] actnum_kw.write_grdecl( f2 ) g2 = EclGrid.loadFromGrdecl("grid.grdecl") self.assertTrue( g1.equal( g2 ))
def test_grdecl_load(self): with self.assertRaises(IOError): grid = EclGrid.loadFromGrdecl("/file/does/not/exists") with TestAreaContext("python/grid-test/grdeclLoad"): with open("grid.grdecl","w") as f: f.write("Hei ...") with self.assertRaises(ValueError): grid = EclGrid.loadFromGrdecl("grid.grdecl") actnum = IntVector(default_value = 1 , initial_size = 1000) actnum[0] = 0 g1 = EclGrid.createRectangular((10,10,10) , (1,1,1) , actnum = actnum ) self.assertEqual( g1.getNumActive() , actnum.elementSum() ) g1.save_EGRID("G.EGRID") with open("grid.grdecl" , "w") as f2: f2.write("SPECGRID\n") f2.write(" 10 10 10 \'F\' /\n") with openEclFile("G.EGRID") as f: with copen("grid.grdecl" , "a") as f2: coord_kw = f["COORD"][0] coord_kw.write_grdecl( f2 ) zcorn_kw = f["ZCORN"][0] zcorn_kw.write_grdecl( f2 ) actnum_kw = f["ACTNUM"][0] actnum_kw.write_grdecl( f2 ) g2 = EclGrid.loadFromGrdecl("grid.grdecl") self.assertTrue( g1.equal( g2 ))
def setUp(self): self.grid = EclGrid( self.createTestPath("Statoil/ECLIPSE/Mariner/MARINER.EGRID")) fileH = copen( self.createTestPath("Statoil/ECLIPSE/Mariner/faultblock.grdecl")) self.kw = EclKW.read_grdecl(fileH, "FAULTBLK", ecl_type=EclDataType.ECL_INT)
def test_reload( self ): kw = EclKW.read_grdecl(copen(self.src_file, "r"), "PERMX") tmp_file1 = "/tmp/permx1.grdecl" tmp_file2 = "/tmp/permx2.grdecl" self.addFile(tmp_file1) self.addFile(tmp_file2) fileH = copen(tmp_file1, "w") kw.write_grdecl(fileH) fileH.close() kw1 = EclKW.read_grdecl(copen(tmp_file1, "r"), "PERMX") fileH = copen(tmp_file2, "w") kw1.write_grdecl(fileH) fileH.close() self.assertFilesAreEqual(tmp_file1, tmp_file2)
def test_reload(self): kw = EclKW.read_grdecl(copen(self.src_file, "r"), "PERMX") tmp_file1 = "/tmp/permx1.grdecl" tmp_file2 = "/tmp/permx2.grdecl" self.addFile(tmp_file1) self.addFile(tmp_file2) fileH = copen(tmp_file1, "w") kw.write_grdecl(fileH) fileH.close() kw1 = EclKW.read_grdecl(copen(tmp_file1, "r"), "PERMX") fileH = copen(tmp_file2, "w") kw1.write_grdecl(fileH) fileH.close() self.assertFilesAreEqual(tmp_file1, tmp_file2)
def loadGrid(self): grid_file = self.createTestPath("Statoil/ECLIPSE/Faults/grid.grdecl") fileH = copen(grid_file, "r") specgrid = EclKW.read_grdecl(fileH, "SPECGRID", ecl_type=EclDataType.ECL_INT, strict=False) zcorn = EclKW.read_grdecl(fileH, "ZCORN") coord = EclKW.read_grdecl(fileH, "COORD") actnum = EclKW.read_grdecl(fileH, "ACTNUM", ecl_type=EclDataType.ECL_INT) return EclGrid.create(specgrid, zcorn, coord, actnum)
def test_dump_csv_line(self): ecl_sum_vector = EclSumKeyWordVector(self.ecl_sum) ecl_sum_vector.addKeywords("F*") with self.assertRaises(KeyError): ecl_sum_vector.addKeyword("MISSING") dtime = datetime.datetime(2002, 1, 1, 0, 0, 0) with TestAreaContext("EclSum/csv_dump"): test_file_name = self.createTestPath("dump.csv") outputH = copen(test_file_name, "w") self.ecl_sum.dumpCSVLine(dtime, ecl_sum_vector, outputH) assert os.path.isfile(test_file_name)
def create(self, filename, load_actnum=True): fileH = copen(filename, "r") specgrid = EclKW.read_grdecl(fileH, "SPECGRID", ecl_type=EclDataType.ECL_INT, strict=False) zcorn = EclKW.read_grdecl(fileH, "ZCORN") coord = EclKW.read_grdecl(fileH, "COORD") if load_actnum: actnum = EclKW.read_grdecl(fileH, "ACTNUM", ecl_type=EclDataType.ECL_INT) else: actnum = None mapaxes = EclKW.read_grdecl(fileH, "MAPAXES") grid = EclGrid.create(specgrid, zcorn, coord, actnum, mapaxes=mapaxes) return grid
def create(self, filename, load_actnum=True): fileH = copen(filename, "r") specgrid = EclKW.read_grdecl(fileH, "SPECGRID", ecl_type=EclDataType.ECL_INT, strict=False) zcorn = EclKW.read_grdecl(fileH, "ZCORN") coord = EclKW.read_grdecl(fileH, "COORD") if load_actnum: actnum = EclKW.read_grdecl(fileH, "ACTNUM", ecl_type=EclDataType.ECL_INT) else: actnum = None mapaxes = EclKW.read_grdecl(fileH, "MAPAXES") grid = EclGrid.create(specgrid, zcorn, coord, actnum, mapaxes=mapaxes) return grid
def test_dump_csv_line(self): ecl_sum_vector = EclSumKeyWordVector(self.ecl_sum) ecl_sum_vector.addKeywords("F*") with self.assertRaises(KeyError): ecl_sum_vector.addKeyword("MISSING") dtime = datetime.datetime(2002, 1, 1, 0, 0, 0) with TestAreaContext("EclSum/csv_dump"): test_file_name = self.createTestPath("dump.csv") outputH = copen(test_file_name, "w") self.ecl_sum.dumpCSVLine(dtime, ecl_sum_vector, outputH) assert os.path.isfile(test_file_name)
def test_cfile(self): cwd = os.getcwd() d = tempfile.mkdtemp( ) os.chdir( d ) with open("test", "w") as f: f.write("some content") with copen("test", "r") as f: cfile = CFILE(f) self.assertTrue(fileno(cfile)) os.chdir(cwd) shutil.rmtree( d )
def test_cfile(self): cwd = os.getcwd() d = tempfile.mkdtemp() os.chdir(d) with open("test", "w") as f: f.write("some content") with copen("test", "r") as f: cfile = CFILE(f) self.assertTrue(fileno(cfile)) os.chdir(cwd) shutil.rmtree(d)
def test_save(self): with TestAreaContext("python/grid-test/testSave"): g1 = EclGrid(self.egrid_file()) g1.save_EGRID("test.EGRID") g2 = EclGrid("test.EGRID") self.assertTrue(g1.equal(g2)) g1.save_GRID("test.GRID") g2 = EclGrid("test.GRID") self.assertTrue(g1.equal(g2)) fileH = copen("test.grdecl", "w") g1.save_grdecl(fileH) fileH.close() g2 = self.create("test.grdecl") self.assertTrue(g1.equal(g2))
def test_save(self): with TestAreaContext("python/grid-test/testSave"): g1 = EclGrid(self.egrid_file()) g1.save_EGRID("test.EGRID") g2 = EclGrid("test.EGRID") self.assertTrue(g1.equal(g2)) g1.save_GRID("test.GRID") g2 = EclGrid("test.GRID") self.assertTrue(g1.equal(g2)) fileH = copen("test.grdecl", "w") g1.save_grdecl(fileH) fileH.close() g2 = self.create("test.grdecl") self.assertTrue(g1.equal(g2))
def test_fseek2(self): test_src = self.createTestPath("local/ECLIPSE/grdecl-test/test.grdecl") # Test kw at the the very start file = copen(test_src, "r") self.assertTrue(EclKW.fseek_grdecl(file, "PERMX")) # Test commented out kw: self.assertFalse(EclKW.fseek_grdecl(file, "PERMY")) self.assertFalse(EclKW.fseek_grdecl(file, "PERMZ")) # Test ignore not start of line: self.assertTrue(EclKW.fseek_grdecl(file, "MARKER")) self.assertFalse(EclKW.fseek_grdecl(file, "PERMXYZ")) # Test rewind self.assertFalse(EclKW.fseek_grdecl(file, "PERMX", rewind=False)) self.assertTrue(EclKW.fseek_grdecl(file, "PERMX", rewind=True)) # Test multiline comments + blanks self.assertTrue(EclKW.fseek_grdecl(file, "LASTKW"))
def test_fseek2(self): test_src = self.createTestPath("local/ECLIPSE/grdecl-test/test.grdecl") # Test kw at the the very start file = copen(test_src, "r") self.assertTrue(EclKW.fseek_grdecl(file, "PERMX")) # Test commented out kw: self.assertFalse(EclKW.fseek_grdecl(file, "PERMY")) self.assertFalse(EclKW.fseek_grdecl(file, "PERMZ")) # Test ignore not start of line: self.assertTrue(EclKW.fseek_grdecl(file, "MARKER")) self.assertFalse(EclKW.fseek_grdecl(file, "PERMXYZ")) # Test rewind self.assertFalse(EclKW.fseek_grdecl(file, "PERMX", rewind=False)) self.assertTrue(EclKW.fseek_grdecl(file, "PERMX", rewind=True)) # Test multiline comments + blanks self.assertTrue(EclKW.fseek_grdecl(file, "LASTKW"))
def test_str(self): m = Matrix(2, 2) s = "%s" % m m[0, 0] = 0 m[0, 1] = 1 m[1, 0] = 2 m[1, 1] = 3 with TestAreaContext("matrix_fprint"): with copen("matrix.txt", "w") as f: m.fprint(f) with open("matrix.txt") as f: l1 = [float(x) for x in f.readline().split()] l2 = [float(x) for x in f.readline().split()] self.assertEqual(l1[0], m[0, 0]) self.assertEqual(l1[1], m[0, 1]) self.assertEqual(l2[0], m[1, 0]) self.assertEqual(l2[1], m[1, 1])