fmu-pem 0.0.3__py3-none-any.whl → 0.0.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fmu/pem/__init__.py +2 -0
- fmu/pem/__main__.py +43 -6
- fmu/pem/forward_models/pem_model.py +4 -1
- fmu/pem/pem_utilities/__init__.py +0 -2
- fmu/pem/pem_utilities/import_config.py +30 -22
- fmu/pem/pem_utilities/pem_config_validation.py +40 -40
- fmu/pem/run_pem.py +6 -19
- fmu/pem/version.py +2 -2
- {fmu_pem-0.0.3.dist-info → fmu_pem-0.0.4.dist-info}/METADATA +2 -1
- {fmu_pem-0.0.3.dist-info → fmu_pem-0.0.4.dist-info}/RECORD +14 -14
- {fmu_pem-0.0.3.dist-info → fmu_pem-0.0.4.dist-info}/WHEEL +1 -1
- {fmu_pem-0.0.3.dist-info → fmu_pem-0.0.4.dist-info}/entry_points.txt +0 -0
- {fmu_pem-0.0.3.dist-info → fmu_pem-0.0.4.dist-info}/licenses/LICENSE +0 -0
- {fmu_pem-0.0.3.dist-info → fmu_pem-0.0.4.dist-info}/top_level.txt +0 -0
fmu/pem/__init__.py
CHANGED
fmu/pem/__main__.py
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
# pylint: disable=missing-module-docstring
|
|
2
2
|
import argparse
|
|
3
|
+
import sys
|
|
3
4
|
from pathlib import Path
|
|
5
|
+
from typing import Any
|
|
4
6
|
from warnings import warn
|
|
5
7
|
|
|
6
|
-
from .pem_utilities import restore_dir
|
|
8
|
+
from .pem_utilities import get_global_params_and_dates, read_pem_config, restore_dir
|
|
7
9
|
from .run_pem import pem_fcn
|
|
8
10
|
|
|
9
11
|
|
|
10
|
-
def main():
|
|
12
|
+
def main(args_list=None):
|
|
13
|
+
if args_list is None:
|
|
14
|
+
args_list = sys.argv[1:]
|
|
11
15
|
parser = argparse.ArgumentParser(__file__)
|
|
12
16
|
parser.add_argument(
|
|
13
17
|
"-c",
|
|
@@ -45,7 +49,29 @@ def main():
|
|
|
45
49
|
help="For ERT run: Absolute directory name for model file, pre-experiment. Not "
|
|
46
50
|
"needed for command line run",
|
|
47
51
|
)
|
|
48
|
-
|
|
52
|
+
parser.add_argument(
|
|
53
|
+
"-q",
|
|
54
|
+
"--mod-date-prefix",
|
|
55
|
+
type=str,
|
|
56
|
+
required=True,
|
|
57
|
+
help="Global seismic section: Prefix for seismic dates for modelled data",
|
|
58
|
+
)
|
|
59
|
+
parser.add_argument(
|
|
60
|
+
"-r",
|
|
61
|
+
"--run-from-rms",
|
|
62
|
+
type=bool,
|
|
63
|
+
required=False,
|
|
64
|
+
default=False,
|
|
65
|
+
help="Is PEM run as part of an RMS workflow?",
|
|
66
|
+
)
|
|
67
|
+
parser.add_argument(
|
|
68
|
+
"-s",
|
|
69
|
+
"--rms-project",
|
|
70
|
+
required=False,
|
|
71
|
+
default=None,
|
|
72
|
+
help="In case PEM is called from RMS: RMS project",
|
|
73
|
+
)
|
|
74
|
+
args = parser.parse_args(args_list)
|
|
49
75
|
cwd = args.config_dir.absolute()
|
|
50
76
|
if str(cwd).endswith("sim2seis/model"):
|
|
51
77
|
run_folder = cwd
|
|
@@ -57,11 +83,22 @@ def main():
|
|
|
57
83
|
warn(f"PEM model should be run from the sim2seis/model folder. {e}")
|
|
58
84
|
run_folder = cwd
|
|
59
85
|
with restore_dir(run_folder):
|
|
86
|
+
# Read and validate all PEM parameters
|
|
87
|
+
config = read_pem_config(yaml_file=run_folder / args.config_file)
|
|
88
|
+
|
|
89
|
+
# Read necessary part of global configurations and parameters
|
|
90
|
+
config.update_with_global(
|
|
91
|
+
get_global_params_and_dates(
|
|
92
|
+
global_config_dir=(run_folder / args.global_dir).resolve(),
|
|
93
|
+
global_conf_file=args.global_file,
|
|
94
|
+
mod_prefix=args.mod_date_prefix,
|
|
95
|
+
)
|
|
96
|
+
)
|
|
60
97
|
pem_fcn(
|
|
98
|
+
config=config,
|
|
61
99
|
config_dir=run_folder,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
global_config_file=args.global_file,
|
|
100
|
+
run_from_rms=args.run_from_rms,
|
|
101
|
+
proj=args.rms_project,
|
|
65
102
|
)
|
|
66
103
|
|
|
67
104
|
|
|
@@ -29,6 +29,8 @@ class PetroElasticModel(ForwardModelStepPlugin):
|
|
|
29
29
|
"<GLOBAL_FILE>",
|
|
30
30
|
"--model-dir",
|
|
31
31
|
"<MODEL_DIR>",
|
|
32
|
+
"--mod-date-prefix",
|
|
33
|
+
"<MOD_DATE_PREFIX>",
|
|
32
34
|
],
|
|
33
35
|
)
|
|
34
36
|
|
|
@@ -40,6 +42,7 @@ class PetroElasticModel(ForwardModelStepPlugin):
|
|
|
40
42
|
def validate_pre_experiment(self, fm_step_json: ForwardModelStepJSON) -> None:
|
|
41
43
|
# Parse YAML parameter file by pydantic pre-experiment to catch errors at an
|
|
42
44
|
# early stage
|
|
45
|
+
|
|
43
46
|
config_file = Path(fm_step_json["argList"][3])
|
|
44
47
|
model_dir = Path(fm_step_json["argList"][9])
|
|
45
48
|
try:
|
|
@@ -58,7 +61,7 @@ class PetroElasticModel(ForwardModelStepPlugin):
|
|
|
58
61
|
examples="""
|
|
59
62
|
.. code-block:: console
|
|
60
63
|
|
|
61
|
-
FORWARD_MODEL PEM(<CONFIG_DIR>=../../sim2seis/model, <CONFIG_FILE>=new_pem.yml, <GLOBAL_DiR>=../../fmuconfig/output, <GLOBAL_FILE>=global_variables.yml, <MODEL_DIR>=/my_fmu_structure/sim2seis/model)
|
|
64
|
+
FORWARD_MODEL PEM(<CONFIG_DIR>=../../sim2seis/model, <CONFIG_FILE>=new_pem.yml, <GLOBAL_DiR>=../../fmuconfig/output, <GLOBAL_FILE>=global_variables.yml, <MODEL_DIR>=/my_fmu_structure/sim2seis/model, <MOD_DATE_PREFIX>=HIST)
|
|
62
65
|
|
|
63
66
|
""", # noqa: E501,
|
|
64
67
|
)
|
|
@@ -30,7 +30,6 @@ from .pem_config_validation import (
|
|
|
30
30
|
MineralProperties,
|
|
31
31
|
PemConfig,
|
|
32
32
|
RockMatrixProperties,
|
|
33
|
-
possible_date_string,
|
|
34
33
|
)
|
|
35
34
|
from .update_grid import update_inactive_grid_cells
|
|
36
35
|
from .utils import (
|
|
@@ -66,7 +65,6 @@ __all__ = [
|
|
|
66
65
|
"input_num_string_to_list",
|
|
67
66
|
"missing_num_areas",
|
|
68
67
|
"num_boolean_array",
|
|
69
|
-
"possible_date_string",
|
|
70
68
|
"read_pem_config",
|
|
71
69
|
"read_sim_grid_props",
|
|
72
70
|
"restore_dir",
|
|
@@ -45,6 +45,8 @@ def find_key_first(d: dict, key: str) -> str | None:
|
|
|
45
45
|
def get_global_params_and_dates(
|
|
46
46
|
global_config_dir: Path,
|
|
47
47
|
global_conf_file: Path,
|
|
48
|
+
mod_prefix: str | None = None,
|
|
49
|
+
obs_prefix: str | None = None,
|
|
48
50
|
) -> dict:
|
|
49
51
|
"""Read global configuration parameters, simulation model dates and seismic dates
|
|
50
52
|
for difference calculation
|
|
@@ -58,35 +60,41 @@ def get_global_params_and_dates(
|
|
|
58
60
|
list of tuples with
|
|
59
61
|
strings of dates to calculate difference properties
|
|
60
62
|
"""
|
|
61
|
-
global_config_par = yaml_load(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
date_str = "SEISMIC_PRED_DATES"
|
|
65
|
-
else:
|
|
66
|
-
date_str = "SEISMIC_HIST_DATES"
|
|
67
|
-
if "SEISMIC_PRED_DIFFDATES" in global_config_par["global"]["dates"]:
|
|
68
|
-
diff_str = "SEISMIC_PRED_DIFFDATES"
|
|
69
|
-
else:
|
|
70
|
-
diff_str = "SEISMIC_HIST_DIFFDATES"
|
|
71
|
-
seismic_dates = [
|
|
72
|
-
str(sdate).replace("-", "")
|
|
73
|
-
for sdate in global_config_par["global"]["dates"][date_str]
|
|
74
|
-
]
|
|
75
|
-
diff_dates = [
|
|
76
|
-
[str(sdate).replace("-", "") for sdate in datepairs]
|
|
77
|
-
for datepairs in global_config_par["global"]["dates"][diff_str]
|
|
78
|
-
]
|
|
63
|
+
global_config_par = yaml_load(
|
|
64
|
+
str(global_config_dir / global_conf_file),
|
|
65
|
+
)
|
|
79
66
|
grid_model_name = find_key_first(global_config_par["global"], "ECLGRIDNAME_PEM")
|
|
80
67
|
if grid_model_name is None:
|
|
81
68
|
raise ValueError(
|
|
82
69
|
f"{__file__}: no value for ECLGRIDNAME_PEM in global config file"
|
|
83
70
|
)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"diff_dates": diff_dates,
|
|
71
|
+
# Find the correct seismic dates references
|
|
72
|
+
dates_config = global_config_par["global"]["dates"]
|
|
73
|
+
return_dict = {
|
|
88
74
|
"global_config": global_config_par,
|
|
75
|
+
"grid_model": grid_model_name,
|
|
76
|
+
"seismic": global_config_par["global"]["seismic"],
|
|
89
77
|
}
|
|
78
|
+
if mod_prefix:
|
|
79
|
+
return_dict.update(
|
|
80
|
+
{
|
|
81
|
+
"mod_dates": dates_config.get(f"SEISMIC_{mod_prefix}_DATES", None),
|
|
82
|
+
"mod_diffdates": dates_config.get(
|
|
83
|
+
f"SEISMIC_{mod_prefix}_DIFFDATES", None
|
|
84
|
+
),
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
if obs_prefix:
|
|
88
|
+
return_dict.update(
|
|
89
|
+
{
|
|
90
|
+
"obs_dates": dates_config.get(f"SEISMIC_{obs_prefix}_DATES", None),
|
|
91
|
+
"obs_diffdates": dates_config.get(
|
|
92
|
+
f"SEISMIC_{obs_prefix}_DIFFDATES", None
|
|
93
|
+
),
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
return return_dict
|
|
90
98
|
|
|
91
99
|
|
|
92
100
|
def read_pem_config(yaml_file: Path) -> PemConfig:
|
|
@@ -5,6 +5,7 @@ from typing import Any, Self
|
|
|
5
5
|
|
|
6
6
|
import numpy as np
|
|
7
7
|
from pydantic import (
|
|
8
|
+
AliasChoices,
|
|
8
9
|
BaseModel,
|
|
9
10
|
ConfigDict,
|
|
10
11
|
DirectoryPath,
|
|
@@ -15,6 +16,7 @@ from pydantic import (
|
|
|
15
16
|
from pydantic.json_schema import SkipJsonSchema
|
|
16
17
|
from pydantic_core.core_schema import ValidationInfo
|
|
17
18
|
|
|
19
|
+
from fmu.datamodels.fmu_results.global_configuration import GlobalConfiguration
|
|
18
20
|
from fmu.pem import INTERNAL_EQUINOR
|
|
19
21
|
|
|
20
22
|
from .enum_defs import (
|
|
@@ -556,53 +558,51 @@ class Fluids(BaseModel):
|
|
|
556
558
|
return v
|
|
557
559
|
|
|
558
560
|
|
|
559
|
-
def
|
|
560
|
-
""
|
|
561
|
-
Validate a list of date strings in YYYYMMDD format.
|
|
561
|
+
def date_to_string(date_obj: date) -> str:
|
|
562
|
+
return date_obj.strftime(format="%Y%m%d")
|
|
562
563
|
|
|
563
|
-
Args:
|
|
564
|
-
date_strings: list of strings to validate
|
|
565
564
|
|
|
566
|
-
|
|
567
|
-
|
|
565
|
+
class SeismicSurvey(BaseModel):
|
|
566
|
+
ecldate: list[str]
|
|
567
|
+
time: dict[str, str] | None = None
|
|
568
|
+
depth: dict[str, str] | None = None
|
|
568
569
|
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
for date_string in date_strings:
|
|
573
|
-
if len(date_string) != 8:
|
|
574
|
-
raise ValueError(
|
|
575
|
-
f"Invalid date format: '{date_string}' must be exactly 8 characters"
|
|
576
|
-
)
|
|
577
|
-
try:
|
|
578
|
-
date(
|
|
579
|
-
year=int(date_string[0:4]),
|
|
580
|
-
month=int(date_string[4:6]),
|
|
581
|
-
day=int(date_string[6:]),
|
|
582
|
-
)
|
|
583
|
-
except ValueError:
|
|
584
|
-
raise ValueError(
|
|
585
|
-
f"Invalid date: '{date_string}' must be a valid date in YYYYMMDD format"
|
|
586
|
-
)
|
|
587
|
-
return True
|
|
570
|
+
@field_validator("ecldate", mode="before")
|
|
571
|
+
def convert_ecldate_strings(cls, v: list[date]) -> list[str]:
|
|
572
|
+
return [date_to_string(date) for date in v]
|
|
588
573
|
|
|
589
574
|
|
|
590
|
-
class
|
|
591
|
-
|
|
592
|
-
seis_dates: list[str]
|
|
593
|
-
diff_dates: list[list[str]]
|
|
594
|
-
global_config: dict[str, Any]
|
|
575
|
+
class SeismicSection(BaseModel):
|
|
576
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
595
577
|
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
578
|
+
templatecube_4d: str = Field(
|
|
579
|
+
validation_alias=AliasChoices("4d_templatecube", "templatecube_4d"),
|
|
580
|
+
serialization_alias="4d_templatecube",
|
|
581
|
+
)
|
|
582
|
+
real_4d_cropped_path: Path
|
|
583
|
+
real_4d: dict[str, SeismicSurvey]
|
|
600
584
|
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
585
|
+
|
|
586
|
+
class FromGlobal(BaseModel):
|
|
587
|
+
grid_model: str
|
|
588
|
+
mod_dates: list[str] | None = None
|
|
589
|
+
mod_diffdates: list[list[str]] | None = None
|
|
590
|
+
obs_dates: list[str] | None = None
|
|
591
|
+
obs_diffdates: list[list[str]] | None = None
|
|
592
|
+
seismic: SeismicSection
|
|
593
|
+
global_config: GlobalConfiguration
|
|
594
|
+
|
|
595
|
+
@field_validator("mod_dates", "obs_dates", mode="before")
|
|
596
|
+
def make_date_strings(cls, v: list[date]) -> list[str] | None:
|
|
597
|
+
if v:
|
|
598
|
+
return [date_to_string(date) for date in v]
|
|
599
|
+
return None
|
|
600
|
+
|
|
601
|
+
@field_validator("mod_diffdates", "obs_diffdates", mode="before")
|
|
602
|
+
def make_diffdate_strings(cls, v: list[list[str]]) -> list[list[str]] | None:
|
|
603
|
+
if v:
|
|
604
|
+
return [[date_to_string(date) for date in diffdate] for diffdate in v]
|
|
605
|
+
return None
|
|
606
606
|
|
|
607
607
|
|
|
608
608
|
class PemPaths(BaseModel):
|
fmu/pem/run_pem.py
CHANGED
|
@@ -6,10 +6,8 @@ from fmu.pem import pem_utilities as pem_utils
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def pem_fcn(
|
|
9
|
+
config: pem_utils.PemConfig,
|
|
9
10
|
config_dir: Path,
|
|
10
|
-
pem_config_file_name: Path,
|
|
11
|
-
global_config_dir: Path,
|
|
12
|
-
global_config_file: Path,
|
|
13
11
|
run_from_rms=False,
|
|
14
12
|
proj=None,
|
|
15
13
|
) -> None:
|
|
@@ -18,24 +16,13 @@ def pem_fcn(
|
|
|
18
16
|
yaml-file control the selections made in the PEM.
|
|
19
17
|
|
|
20
18
|
"""
|
|
21
|
-
# Read and validate all PEM parameters
|
|
22
|
-
config = pem_utils.read_pem_config(yaml_file=config_dir / pem_config_file_name)
|
|
23
|
-
|
|
24
|
-
# Read necessary part of global configurations and parameters
|
|
25
|
-
config.update_with_global(
|
|
26
|
-
pem_utils.get_global_params_and_dates(
|
|
27
|
-
global_config_dir=(config_dir / global_config_dir).resolve(),
|
|
28
|
-
global_conf_file=global_config_file,
|
|
29
|
-
)
|
|
30
|
-
)
|
|
31
|
-
|
|
32
19
|
# Import Eclipse simulation grid - INIT and RESTART
|
|
33
20
|
sim_grid, constant_props, time_step_props = pem_utils.read_sim_grid_props(
|
|
34
21
|
rel_dir_sim_files=config.eclipse_files.rel_path_simgrid,
|
|
35
22
|
egrid_file=config.eclipse_files.egrid_file,
|
|
36
23
|
init_property_file=config.eclipse_files.init_property_file,
|
|
37
24
|
restart_property_file=config.eclipse_files.restart_property_file,
|
|
38
|
-
seis_dates=config.global_params.
|
|
25
|
+
seis_dates=config.global_params.mod_dates,
|
|
39
26
|
fipnum_name=config.alternative_fipnum_name,
|
|
40
27
|
)
|
|
41
28
|
|
|
@@ -65,7 +52,7 @@ def pem_fcn(
|
|
|
65
52
|
sim_rst=time_step_props,
|
|
66
53
|
matrix_props=matrix_properties,
|
|
67
54
|
fluid_props=fluid_properties,
|
|
68
|
-
sim_dates=config.global_params.
|
|
55
|
+
sim_dates=config.global_params.mod_dates,
|
|
69
56
|
fipnum=constant_props.fipnum,
|
|
70
57
|
)
|
|
71
58
|
|
|
@@ -89,8 +76,8 @@ def pem_fcn(
|
|
|
89
76
|
# Calculate difference properties. Possible properties are all that vary with time
|
|
90
77
|
diff_props, diff_date_strs = pem_utils.calculate_diff_properties(
|
|
91
78
|
props=[time_step_props, eff_pres, sat_rock_props, sum_delta_time],
|
|
92
|
-
diff_dates=config.global_params.
|
|
93
|
-
seis_dates=config.global_params.
|
|
79
|
+
diff_dates=config.global_params.mod_diffdates,
|
|
80
|
+
seis_dates=config.global_params.mod_dates,
|
|
94
81
|
diff_calculation=config.diff_calculation,
|
|
95
82
|
)
|
|
96
83
|
|
|
@@ -108,7 +95,7 @@ def pem_fcn(
|
|
|
108
95
|
rms_project=proj,
|
|
109
96
|
sim_grid=sim_grid,
|
|
110
97
|
grid_name=config.global_params.grid_model,
|
|
111
|
-
seis_dates=config.global_params.
|
|
98
|
+
seis_dates=config.global_params.mod_dates,
|
|
112
99
|
save_to_rms=config.results.save_results_to_rms,
|
|
113
100
|
save_to_disk=config.results.save_results_to_disk,
|
|
114
101
|
save_intermediate=config.results.save_intermediate_results,
|
fmu/pem/version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 0,
|
|
31
|
+
__version__ = version = '0.0.4'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 4)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmu-pem
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.4
|
|
4
4
|
Summary: pem
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 3, 29 June 2007
|
|
@@ -695,6 +695,7 @@ Requires-Dist: xtgeo>=4.7.1
|
|
|
695
695
|
Requires-Dist: fmu-tools
|
|
696
696
|
Requires-Dist: fmu-config
|
|
697
697
|
Requires-Dist: fmu-dataio
|
|
698
|
+
Requires-Dist: fmu-datamodels
|
|
698
699
|
Requires-Dist: rock-physics-open>=0.3.3
|
|
699
700
|
Requires-Dist: PyYAML>=6.0.1
|
|
700
701
|
Requires-Dist: pydantic
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
fmu/__init__.py,sha256=YWSE22UTDSocfqQHxEeXrRkdlA63t_aayQVdJkycwYs,83
|
|
2
|
-
fmu/pem/__init__.py,sha256=
|
|
3
|
-
fmu/pem/__main__.py,sha256=
|
|
4
|
-
fmu/pem/run_pem.py,sha256=
|
|
5
|
-
fmu/pem/version.py,sha256=
|
|
2
|
+
fmu/pem/__init__.py,sha256=k-KRNGtW24pTPQv81c5DOYbW9Thy5xv514euStVRYtY,466
|
|
3
|
+
fmu/pem/__main__.py,sha256=43ugEF49aHi33Yv5CSWo8NPfzKsZAhHQrc5_IfnIoEI,3013
|
|
4
|
+
fmu/pem/run_pem.py,sha256=wmGTyQyh8wws5PwouiJf-rtvmrTu3-rzqQSuutEcXx4,4256
|
|
5
|
+
fmu/pem/version.py,sha256=QlXZ5JTjE_pgpDaeHk0GTExkc75xUZFmd0hA7kGYCJ0,704
|
|
6
6
|
fmu/pem/forward_models/__init__.py,sha256=WuN66rmgfqrekCy3Ss9NHqsy-lZ4WGY-4VZa3jYDV2s,117
|
|
7
|
-
fmu/pem/forward_models/pem_model.py,sha256=
|
|
7
|
+
fmu/pem/forward_models/pem_model.py,sha256=7aZOmW8IOolQLLIPNWPizciDDDe8QMUsFSyJhmU1G80,2124
|
|
8
8
|
fmu/pem/hook_implementations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
fmu/pem/hook_implementations/jobs.py,sha256=IQW5m7oeZ_MiemxXv-UGLCPeo4h3QT9oELPlWAzsN60,388
|
|
10
10
|
fmu/pem/pem_functions/__init__.py,sha256=aGFW0Gmr1rZsmzZhKdll9ofWcgpobzsHxfCNwr2Ypqc,551
|
|
@@ -18,22 +18,22 @@ fmu/pem/pem_functions/regression_models.py,sha256=wUw5yIIeR5sGz7OqAp42K4lxLUOKr-
|
|
|
18
18
|
fmu/pem/pem_functions/run_friable_model.py,sha256=R3Nb0nQML6k5QrPwDoB7oMHaTkB-rJjCSPnJ_gsrIIQ,6885
|
|
19
19
|
fmu/pem/pem_functions/run_patchy_cement_model.py,sha256=M561C_4dfPW_Nxm0AgzCUdeQ9UVIrZGGhxBayII1IDQ,6667
|
|
20
20
|
fmu/pem/pem_functions/run_t_matrix_model.py,sha256=Ctl5Lw1HJvNYdqKDUnqrOWRisVV2m1J4gJ6S2u8j-Xw,7875
|
|
21
|
-
fmu/pem/pem_utilities/__init__.py,sha256=
|
|
21
|
+
fmu/pem/pem_utilities/__init__.py,sha256=p3Fv-wUDH_te9WUHSNj-WS08ly2asRr9iNN6Kw-2f1o,2089
|
|
22
22
|
fmu/pem/pem_utilities/cumsum_properties.py,sha256=s3M0bMs6Dogg8cWzj5M6K5xifdRjhZse3dCWZL0_RCo,3431
|
|
23
23
|
fmu/pem/pem_utilities/delta_cumsum_time.py,sha256=vDc7Hvl50qzUXbK4oKq30zlQ2fqMel9EmBO0lmeoDbo,3035
|
|
24
24
|
fmu/pem/pem_utilities/enum_defs.py,sha256=R6Q0G6TQKe1MM4KTp1t_iCaFuCWEwLvIqV6tH3uxCms,2485
|
|
25
25
|
fmu/pem/pem_utilities/export_routines.py,sha256=hteGM4flK8B7Jy4BNk5bU33-_jcNndFrm9RcnzfTdy4,10108
|
|
26
26
|
fmu/pem/pem_utilities/fipnum_pvtnum_utilities.py,sha256=ypwTsyfqqBJ6d8WHY2HkKAdX9ZjHYLdQq_-3w2xEwVQ,7571
|
|
27
|
-
fmu/pem/pem_utilities/import_config.py,sha256=
|
|
27
|
+
fmu/pem/pem_utilities/import_config.py,sha256=Ms16Tth0-U28D9VIvExF9y-WVVaJSzY6Kkdh6RHVXOg,3700
|
|
28
28
|
fmu/pem/pem_utilities/import_routines.py,sha256=EVHCS-LaHXKwVgDiE5BDvybJgPi0PjFado2m1O9ezo4,5104
|
|
29
29
|
fmu/pem/pem_utilities/pem_class_definitions.py,sha256=Q_k5s_Zj8q_9TKdnxdJdOeN1UVGZbH997ngs8_5t0Es,5504
|
|
30
|
-
fmu/pem/pem_utilities/pem_config_validation.py,sha256=
|
|
30
|
+
fmu/pem/pem_utilities/pem_config_validation.py,sha256=6SOuNoobSy4y42Z8AAczCVh9nODSorBnHcCTknMy3GQ,27639
|
|
31
31
|
fmu/pem/pem_utilities/rpm_models.py,sha256=S4BDv5aTaMHgk-nSYxBQ1I_SzkSGXVd6HNtoUViElwE,21212
|
|
32
32
|
fmu/pem/pem_utilities/update_grid.py,sha256=Ay0XPGXBl5CtdL5keTGzs0AKp44LgsuqxwBVwmHZV_s,1838
|
|
33
33
|
fmu/pem/pem_utilities/utils.py,sha256=dHfQLDfwG27eC86lHN12PrITuock8M5IH-gD7eWAtCE,10583
|
|
34
|
-
fmu_pem-0.0.
|
|
35
|
-
fmu_pem-0.0.
|
|
36
|
-
fmu_pem-0.0.
|
|
37
|
-
fmu_pem-0.0.
|
|
38
|
-
fmu_pem-0.0.
|
|
39
|
-
fmu_pem-0.0.
|
|
34
|
+
fmu_pem-0.0.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
35
|
+
fmu_pem-0.0.4.dist-info/METADATA,sha256=wakrxOg0kE20GH5s5rJ_OxX6bhDNRCiya6JEeSBfFr4,43878
|
|
36
|
+
fmu_pem-0.0.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
37
|
+
fmu_pem-0.0.4.dist-info/entry_points.txt,sha256=NSoFnob1PAE6FzRyNJZn5idocnCB1ptNg6R8zYf7Gnc,98
|
|
38
|
+
fmu_pem-0.0.4.dist-info/top_level.txt,sha256=Z-FIY3pxn0UK2Wxi9IJ7fKoLSraaxuNGi1eokiE0ShM,4
|
|
39
|
+
fmu_pem-0.0.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|