Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
wanted. All data will be merged into one dataframe.
pvtnumcount (int): Number of PVTNUMs defined in the deck, only
needed if TABDIMS with NTPVT is not found in the deck.
If not supplied (or None) and NTPVT is not defined,
it will be attempted inferred.
Return:
pd.DataFrame
"""
if isinstance(deck, EclFiles):
deck = deck.get_ecldeck()
deck = inferdims.inject_xxxdims_ntxxx("TABDIMS", "NTPVT", deck, ntpvt)
ntpvt = deck["TABDIMS"][0][inferdims.DIMS_POS["NTPVT"]].get_int(0)
keywords = common.handle_wanted_keywords(keywords, deck, SUPPORTED_KEYWORDS)
frames = []
for keyword in keywords:
# Construct the associated function names
function_name = keyword.lower() + "_fromdeck"
function = globals()[function_name]
dframe = function(deck, ntpvt=ntpvt)
frames.append(dframe.assign(KEYWORD=keyword))
nonempty_frames = [frame for frame in frames if not frame.empty]
if nonempty_frames:
return pd.concat(nonempty_frames, axis=0, sort=False, ignore_index=True)
return pd.DataFrame()
not string, EQLDIMS must be present in the deck.
keywords (list of str): Requested keywords for which to extract
data.
ntequl (int): If not None, should state the NTEQUL in EQLDIMS. If
None and EQLDIMS is not present, it will be inferred.
Return:
pd.DataFrame, at least with columns KEYWORD and EQLNUM
"""
if isinstance(deck, EclFiles):
deck = deck.get_ecldeck()
deck = inferdims.inject_xxxdims_ntxxx("EQLDIMS", "NTEQUL", deck, ntequl)
ntequl = deck["EQLDIMS"][0][inferdims.DIMS_POS["NTEQUL"]].get_int(0)
keywords = common.handle_wanted_keywords(keywords, deck, SUPPORTED_KEYWORDS)
frames = []
for keyword in keywords:
# Construct the associated function names
function_name = keyword.lower() + "_fromdeck"
function = globals()[function_name]
dframe = function(deck, ntequl=ntequl)
frames.append(dframe.assign(KEYWORD=keyword))
nonempty_frames = [frame for frame in frames if not frame.empty]
if nonempty_frames:
return pd.concat(nonempty_frames, axis=0, sort=False, ignore_index=True)
return pd.DataFrame()
needed if TABDIMS with NTSFUN is not found in the deck.
If not supplied (or None) and NTSFUN is not defined,
it will be attempted inferred.
Return:
pd.DataFrame, columns 'KEYWORD', 'SW', 'KRW', 'KROW', 'PC', ..
"""
if isinstance(deck, EclFiles):
# NB: If this is done on include files and not on DATA files
# we can loose data for SATNUM > 1
deck = deck.get_ecldeck()
deck = inferdims.inject_xxxdims_ntxxx("TABDIMS", "NTSFUN", deck, ntsfun)
assert "TABDIMS" in deck
ntsfun = deck["TABDIMS"][0][inferdims.DIMS_POS["NTSFUN"]].get_int(0)
keywords = common.handle_wanted_keywords(keywords, deck, SUPPORTED_KEYWORDS)
frames = []
for keyword in keywords:
# Construct the associated function names
function_name = keyword.lower() + "_fromdeck"
function = globals()[function_name]
dframe = function(deck, ntsfun=ntsfun)
frames.append(dframe.assign(KEYWORD=keyword))
nonempty_frames = [frame for frame in frames if not frame.empty]
if nonempty_frames:
dframe = pd.concat(nonempty_frames, axis=0, sort=False, ignore_index=True)
# We want to sort the keywords by the order they appear in
# SUPPORTED_KEYWORDS (mainly to get WaterOil before GasOil)
# We do that by converting to a Categorical series:
dframe["KEYWORD"] = pd.Categorical(dframe["KEYWORD"], SUPPORTED_KEYWORDS)
dframe.sort_values(["SATNUM", "KEYWORD"], inplace=True)