Beispiel #1
0
    def test_restart_days(self):
        rst_file = EclFile(self.test_file)
        self.assertAlmostEqual(0.0, rst_file.iget_restart_sim_days(0))
        self.assertAlmostEqual(31.0, rst_file.iget_restart_sim_days(1))
        self.assertAlmostEqual(274.0, rst_file.iget_restart_sim_days(10))

        with self.assertRaises(KeyError):
            rst_file.restart_get_kw("Missing", dtime=datetime.date(2004, 1, 1))

        with self.assertRaises(IndexError):
            rst_file.restart_get_kw("SWAT", dtime=datetime.date(1985, 1, 1))
Beispiel #2
0
    def test_restart_days(self):
        rst_file = EclFile( self.test_file )
        self.assertAlmostEqual(  0.0 , rst_file.iget_restart_sim_days(0) )
        self.assertAlmostEqual( 31.0 , rst_file.iget_restart_sim_days(1) )
        self.assertAlmostEqual( 274.0 , rst_file.iget_restart_sim_days(10) )

        with self.assertRaises(KeyError):
            rst_file.restart_get_kw("Missing" , dtime = datetime.date( 2004,1,1))

        with self.assertRaises(IndexError):
            rst_file.restart_get_kw("SWAT" , dtime = datetime.date( 1985 , 1 , 1))
Beispiel #3
0
    def test_kw( self ):
        f = EclFile(self.u_file)
        kw1 = f["SWAT"][40]
        kw2 = f.restart_get_kw("SWAT", datetime.datetime(2003, 3, 1))
        kw3 = f.restart_get_kw("SWAT", datetime.datetime(2003, 3, 1), copy=True)

        self.assertTrue(kw1.equal(kw2))
        self.assertTrue(kw1.equal(kw3))

        with self.assertRaises(IndexError):
            kw4 = f.restart_get_kw("SWAT", datetime.datetime(2009, 3, 17))
Beispiel #4
0
    def test_kw(self):
        f = EclFile(self.u_file)
        kw1 = f["SWAT"][40]
        kw2 = f.restart_get_kw("SWAT", datetime.datetime(2003, 3, 1))
        kw3 = f.restart_get_kw("SWAT", datetime.datetime(2003, 3, 1), copy=True)

        self.assertTrue(kw1.equal(kw2))
        self.assertTrue(kw1.equal(kw3))

        with self.assertRaises(IndexError):
            kw4 = f.restart_get_kw("SWAT", datetime.datetime(2009, 3, 17))
Beispiel #5
0
shale = np.any([shale, caprock, thick], axis=0)
utsira = np.any([utsira, sand], axis=0)

cumsum = layers.cumsum()
layerTOP = cumsum[shale]
layerBOT = cumsum[utsira]
numLayers = sum(utsira)
map = np.zeros(np.max(cumsum))
for i in range(1, numLayers):
    for j in range(layerTOP[i], layerBOT[i]):
        map[j] = i

gridname = 'Sleipner_Reference_Model.grdecl'
grid = EclGrid.load_from_grdecl(gridname)
rst = EclFile(rstname)
sgas2010 = rst.restart_get_kw("SGAS", datetime.datetime(2010, 12, 1))
doPlot = True
feederpath = 'Sleipner_Plumes_Boundaries/data/'

for layer in range(numLayers):
    legend = []
    coords = []
    xc = []
    yc = []
    val = []
    for cell, sg in zip(grid.cells(), sgas2010):
        if (cell.k == layerTOP[layer]):
            xc.append(cell.coordinate[0])
            yc.append(cell.coordinate[1])
            val.append(sg)
Beispiel #6
0
from ecl.grid import EclGrid
import datetime
from layers import layers

#Computes the areas of the top surface of the cells on the top of the sand layers with saturation above sgLimit the 1.9.2010
caseData = datetime.datetime(2010, 9, 1)
outputFileName = "plume_areas_0.out"
sgLimit = 0.1

caseName = sys.argv[1]
layerShale, layerUtsira, mapShale, mapUtsira = layers()
numLayers = len(layerUtsira)
gridname = caseName + '.EGRID'
grid = EclGrid(gridname)
rstname = caseName + ".UNRST"
rst = EclFile(rstname)
sgass = rst.restart_get_kw("SGAS", caseData)
areas = np.zeros(numLayers)
for cell, sg in zip(grid.cells(), sgass):
    for layer in range(numLayers):
        # sum cell areas (volume/hight) of the first row of cells in the layer
        # with sg > sgLimit
        if (sg > sgLimit and cell.k == layerShale[layer]):
            areas[layer] += cell.volume / cell.dz

f = open(outputFileName, "w")
for area in areas:
    f.write(str(area) + "\n")

f.close()