本文整理汇总了Python中ert.ecl.EclSum.timeRange方法的典型用法代码示例。如果您正苦于以下问题:Python EclSum.timeRange方法的具体用法?Python EclSum.timeRange怎么用?Python EclSum.timeRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ert.ecl.EclSum
的用法示例。
在下文中一共展示了EclSum.timeRange方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_regularProduction
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
def test_regularProduction(self):
sum = EclSum(self.case)
with self.assertRaises(TypeError):
trange = TimeVector.createRegular( sum.start_time , sum.end_time , "1M" )
prod = sum.blockedProduction("FOPR" , trange)
with self.assertRaises(KeyError):
trange = TimeVector.createRegular( sum.start_time , sum.end_time , "1M" )
prod = sum.blockedProduction("NoNotThis" , trange)
trange = sum.timeRange(interval = "2Y")
self.assertTrue( trange[0] == datetime.date( 2000 , 1 , 1 ))
self.assertTrue( trange[-1] == datetime.date( 2006 , 1 , 1 ))
trange = sum.timeRange(interval = "5Y")
self.assertTrue( trange[0] == datetime.date( 2000 , 1 , 1 ))
self.assertTrue( trange[-1] == datetime.date( 2005 , 1 , 1 ))
trange = sum.timeRange(interval = "6M")
wprod1 = sum.blockedProduction("WOPT:OP_1" , trange)
wprod2 = sum.blockedProduction("WOPT:OP_2" , trange)
wprod3 = sum.blockedProduction("WOPT:OP_3" , trange)
wprod4 = sum.blockedProduction("WOPT:OP_4" , trange)
wprod5 = sum.blockedProduction("WOPT:OP_5" , trange)
fprod = sum.blockedProduction("FOPT" , trange)
gprod = sum.blockedProduction("GOPT:OP" , trange)
wprod = wprod1 + wprod2 + wprod3 + wprod4 + wprod5
for (w,f,g) in zip(wprod, fprod,gprod):
self.assertFloatEqual( w , f )
self.assertFloatEqual( w , g )
示例2: test_Heidrun
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
def test_Heidrun(self):
sum = EclSum( self.createTestPath("Statoil/ECLIPSE/Heidrun/Summary/FF12_2013B3_CLEAN_RS"))
self.assertEqual( 452 , len(sum))
self.assertFloatEqual( 1.8533144e+8 , sum.get_last_value("FOPT"))
trange = sum.timeRange( start = datetime.date( 2015 , 1 , 1), interval = "1M")
self.assertTrue( trange[0] == datetime.date( 2016 , 2 , 1 ))
for t in trange:
sum.get_interp( "FOPT" , date = t )
示例3: EclSumTest
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
class EclSumTest(ExtendedTestCase):
def setUp(self):
self.test_file = self.createTestPath("Statoil/ECLIPSE/Gurbat/ECLIPSE.SMSPEC")
self.ecl_sum = EclSum(self.test_file)
def test_time_range_year(self):
real_range = self.ecl_sum.timeRange(interval="1y", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval="1y", extend_end = True)
assert real_range[-1] < extended_range[-1]
def test_time_range_day(self):
real_range = self.ecl_sum.timeRange(interval = "1d", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval = "1d", extend_end = True)
assert real_range[-1] == extended_range[-1]
def test_time_range_month(self):
real_range = self.ecl_sum.timeRange(interval = "1m", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval = "1m", extend_end = True)
assert real_range[-1] < extended_range[-1]
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 , 01 , 01 , 0 , 0 , 0 )
with TestAreaContext("EclSum/csv_dump"):
test_file_name = self.createTestPath("dump.csv")
outputH = open(test_file_name , "w")
self.ecl_sum.dumpCSVLine( dtime, ecl_sum_vector, outputH)
assert os.path.isfile(test_file_name)
示例4: test_timeRange
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
def test_timeRange(self):
sum = EclSum(self.case)
with self.assertRaises(TypeError):
trange = sum.timeRange(interval="1")
trange = sum.timeRange(interval="1X")
trange = sum.timeRange(interval="YY")
trange = sum.timeRange(interval="MY")
with self.assertRaises(ValueError):
trange = sum.timeRange(start=datetime.datetime(2000, 1, 1), end=datetime.datetime(1999, 1, 1))
sim_start = datetime.datetime(2000, 1, 1, 0, 0, 0)
sim_end = datetime.datetime(2004, 12, 31, 0, 0, 0)
trange = sum.timeRange(interval="1Y")
self.assertTrue(trange[0] == datetime.date(2000, 1, 1))
self.assertTrue(trange[1] == datetime.date(2001, 1, 1))
self.assertTrue(trange[2] == datetime.date(2002, 1, 1))
self.assertTrue(trange[3] == datetime.date(2003, 1, 1))
self.assertTrue(trange[4] == datetime.date(2004, 1, 1))
self.assertTrue(trange[5] == datetime.date(2005, 1, 1))
trange = sum.timeRange(interval="1M")
self.assertTrue(trange[0] == datetime.date(2000, 1, 1))
self.assertTrue(trange[-1] == datetime.date(2005, 1, 1))
trange = sum.timeRange(start=datetime.date(2002, 1, 15), interval="1M")
self.assertTrue(trange[0] == datetime.date(2002, 1, 1))
self.assertTrue(trange[-1] == datetime.date(2005, 1, 1))
trange = sum.timeRange(start=datetime.date(2002, 1, 15), end=datetime.date(2003, 1, 15), interval="1M")
self.assertTrue(trange[0] == datetime.date(2002, 1, 1))
self.assertTrue(trange[-1] == datetime.date(2003, 2, 1))
trange = sum.timeRange(
start=datetime.date(2002, 1, 15), end=datetime.datetime(2003, 1, 15, 0, 0, 0), interval="1M"
)
self.assertTrue(trange[0] == datetime.date(2002, 1, 1))
self.assertTrue(trange[-1] == datetime.date(2003, 2, 1))
示例5: test_eval
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
def test_eval(self):
npv = EclNPV(self.case)
npv.compile("[FOPT]")
npv1 = npv.evalNPV()
npv2 = 0
sum = EclSum(self.case)
trange = sum.timeRange()
fopr = sum.blockedProduction("FOPT" , trange)
for v in fopr:
npv2 += v
self.assertAlmostEqual( npv1 , npv2 )
npv.compile("[FOPT] - 0.5*[FOPT] - 0.5*[FOPT]")
npv1 = npv.evalNPV()
self.assertTrue( abs(npv1) < 1e-2 )
npv.compile("[WOPT:OP_1] - 0.5*[WOPT:OP_1] - 0.5*[WOPT:OP_1]")
npv1 = npv.evalNPV()
self.assertTrue( abs(npv1) < 1e-2 )
示例6: test_Heidrun
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
def test_Heidrun(self):
sum = EclSum( self.createTestPath("Statoil/ECLIPSE/Heidrun/Summary/FF12_2013B3_CLEAN_RS"))
self.assertEqual( 452 , len(sum))
self.assertFloatEqual( 1.8533144e+8 , sum.get_last_value("FOPT"))
trange = sum.timeRange( start = datetime.date( 2015 , 1 , 1), interval = "1M")
self.assertTrue( trange[0] == datetime.date( 2016 , 2 , 1 ))
for t in trange:
sum.get_interp( "FOPT" , date = t )
with TestAreaContext("csv/export"):
sum.exportCSV("file.csv")
input_file = csv.DictReader( open("file.csv"))
for row in input_file:
keys = sum.keys( pattern = "W*")
keys |= sum.keys( pattern = "G")
for key in keys:
self.assertTrue( key in row )
break
示例7: EclSumTest
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
class EclSumTest(ExtendedTestCase):
def setUp(self):
self.test_file = self.createTestPath("Statoil/ECLIPSE/Gurbat/ECLIPSE.SMSPEC")
self.ecl_sum = EclSum(self.test_file)
def test_time_range_year(self):
real_range = self.ecl_sum.timeRange(interval="1y", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval="1y", extend_end = True)
assert real_range[-1] < extended_range[-1]
def test_time_range_day(self):
real_range = self.ecl_sum.timeRange(interval = "1d", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval = "1d", extend_end = True)
assert real_range[-1] == extended_range[-1]
def test_time_range_month(self):
real_range = self.ecl_sum.timeRange(interval = "1m", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval = "1m", extend_end = True)
assert real_range[-1] < extended_range[-1]
示例8: EclSumTest
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
class EclSumTest(ExtendedTestCase):
def setUp(self):
self.test_file = self.createTestPath("Statoil/ECLIPSE/Gurbat/ECLIPSE.SMSPEC")
self.ecl_sum = EclSum(self.test_file)
def test_time_range_year(self):
real_range = self.ecl_sum.timeRange(interval="1y", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval="1y", extend_end = True)
assert real_range[-1] < extended_range[-1]
def test_time_range_day(self):
real_range = self.ecl_sum.timeRange(interval = "1d", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval = "1d", extend_end = True)
assert real_range[-1] == extended_range[-1]
def test_time_range_month(self):
real_range = self.ecl_sum.timeRange(interval = "1m", extend_end = False)
extended_range = self.ecl_sum.timeRange(interval = "1m", extend_end = True)
assert real_range[-1] < extended_range[-1]
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 , 01 , 01 , 0 , 0 , 0 )
with TestAreaContext("EclSum/csv_dump"):
test_file_name = self.createTestPath("dump.csv")
outputH = open(test_file_name , "w")
self.ecl_sum.dumpCSVLine( dtime, ecl_sum_vector, outputH)
assert os.path.isfile(test_file_name)
def test_truncated_smspec(self):
with TestAreaContext("EclSum/truncated_smspec") as ta:
ta.copy_file( self.test_file )
ta.copy_file( self.createTestPath( "Statoil/ECLIPSE/Gurbat/ECLIPSE.UNSMRY" ))
file_size = os.path.getsize( "ECLIPSE.SMSPEC")
with open("ECLIPSE.SMSPEC","r+") as f:
f.truncate( file_size / 2 )
with self.assertRaises(IOError):
EclSum( "ECLIPSE" )
def test_truncated_data(self):
with TestAreaContext("EclSum/truncated_data") as ta:
ta.copy_file( self.test_file )
ta.copy_file( self.createTestPath( "Statoil/ECLIPSE/Gurbat/ECLIPSE.UNSMRY" ))
file_size = os.path.getsize( "ECLIPSE.UNSMRY")
with open("ECLIPSE.UNSMRY","r+") as f:
f.truncate( file_size / 2 )
with self.assertRaises(IOError):
EclSum( "ECLIPSE" )
def test_missing_smspec_keyword(self):
with TestAreaContext("EclSum/truncated_data") as ta:
ta.copy_file( self.test_file )
ta.copy_file( self.createTestPath( "Statoil/ECLIPSE/Gurbat/ECLIPSE.UNSMRY" ))
with openEclFile("ECLIPSE.SMSPEC") as f:
kw_list = []
for kw in f:
kw_list.append(EclKW.copy( kw ) )
with openFortIO("ECLIPSE.SMSPEC" , mode = FortIO.WRITE_MODE) as f:
for kw in kw_list:
if kw.getName() == "KEYWORDS":
continue
kw.fwrite(f)
with self.assertRaises(IOError):
EclSum( "ECLIPSE" )
def test_missing_unsmry_keyword(self):
with TestAreaContext("EclSum/truncated_data") as ta:
ta.copy_file( self.test_file )
ta.copy_file( self.createTestPath( "Statoil/ECLIPSE/Gurbat/ECLIPSE.UNSMRY" ))
with openEclFile("ECLIPSE.UNSMRY") as f:
kw_list = []
for kw in f:
kw_list.append(EclKW.copy( kw ) )
with openFortIO("ECLIPSE.UNSMRY" , mode = FortIO.WRITE_MODE) as f:
c = 0
for kw in kw_list:
if kw.getName() == "PARAMS":
if c % 5 == 0:
continue
c += 1
kw.fwrite(f)
#.........这里部分代码省略.........
示例9: EclSum
# 需要导入模块: from ert.ecl import EclSum [as 别名]
# 或者: from ert.ecl.EclSum import timeRange [as 别名]
"2014-11-01": 75.79,
"2014-12-01": 59.29,
"2015-01-01": 47.22,
"2015-02-01": 50.58,
"2015-03-01": 47.82,
"2015-04-01": 54.45,
"2015-05-01": 59.27,
"2015-06-01": 59.82,
"2015-07-01": 50.90,
"2015-08-01": 42.87,
"2015-09-01": 45.48}
if __name__ == '__main__':
ecl_sum = EclSum("SNAKE_OIL_FIELD")
start_time = ecl_sum.getStartTime()
date_ranges = ecl_sum.timeRange(start_time, interval="1M")
production_sums = ecl_sum.blockedProduction("FOPT", date_ranges)
npv = 0.0
for index in range(0, len(date_ranges) - 1):
date = date_ranges[index + 1] # end of period
production_sum = production_sums[index]
oil_price = OIL_PRICES[date.date().strftime("%Y-%m-%d")]
production_value = oil_price * production_sum
npv += production_value
with open("snake_oil_npv.txt", "w") as output_file:
output_file.write("NPV %s\n" % npv)