webviz-subsurface 0.2.38__py3-none-any.whl → 0.2.39__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.
- tests/unit_tests/plugin_tests/test_tornado_data.py +10 -1
- webviz_subsurface/_components/tornado/_tornado_bar_chart.py +31 -11
- webviz_subsurface/_components/tornado/_tornado_data.py +20 -2
- webviz_subsurface/_providers/ensemble_table_provider/ensemble_table_provider_factory.py +4 -0
- webviz_subsurface/_utils/design_matrix.py +36 -0
- webviz_subsurface/plugins/_parameter_analysis/_types.py +1 -0
- webviz_subsurface/plugins/_parameter_analysis/_utils/_parameters_model.py +10 -2
- webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_view/_settings/_visualization_type.py +2 -1
- {webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/METADATA +1 -1
- {webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/RECORD +15 -14
- {webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/LICENSE +0 -0
- {webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/LICENSE.chromedriver +0 -0
- {webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/WHEEL +0 -0
- {webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/entry_points.txt +0 -0
- {webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/top_level.txt +0 -0
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
import pandas as pd
|
|
3
3
|
import pytest
|
|
4
4
|
|
|
5
|
-
from webviz_subsurface._components.tornado._tornado_data import
|
|
5
|
+
from webviz_subsurface._components.tornado._tornado_data import (
|
|
6
|
+
SensitivityType,
|
|
7
|
+
TornadoData,
|
|
8
|
+
)
|
|
6
9
|
|
|
7
10
|
|
|
8
11
|
def test_tornado_data_init():
|
|
@@ -36,6 +39,7 @@ def test_tornado_data_init():
|
|
|
36
39
|
"values": 11.0,
|
|
37
40
|
"values_ref": -26.666666666666668,
|
|
38
41
|
"reals": [0],
|
|
42
|
+
"senstype": "mc",
|
|
39
43
|
}
|
|
40
44
|
low_high_list = tornado_data._calculate_tornado_low_high_list(avg_list)
|
|
41
45
|
assert low_high_list[0] == {
|
|
@@ -52,6 +56,7 @@ def test_tornado_data_init():
|
|
|
52
56
|
"high_tooltip": 26.666666666666668,
|
|
53
57
|
"true_high": 19.0,
|
|
54
58
|
"high_reals": [1],
|
|
59
|
+
"senstype": "mc",
|
|
55
60
|
}
|
|
56
61
|
|
|
57
62
|
tornado_data = TornadoData(
|
|
@@ -72,6 +77,7 @@ def test_tornado_data_init():
|
|
|
72
77
|
"high_tooltip": 13.5,
|
|
73
78
|
"true_high": 19.0,
|
|
74
79
|
"high_reals": [0, 1],
|
|
80
|
+
"senstype": SensitivityType.MONTE_CARLO,
|
|
75
81
|
},
|
|
76
82
|
{
|
|
77
83
|
"low": 0.0,
|
|
@@ -87,6 +93,7 @@ def test_tornado_data_init():
|
|
|
87
93
|
"high_tooltip": 0.0,
|
|
88
94
|
"true_high": 5.5,
|
|
89
95
|
"high_reals": [2, 3],
|
|
96
|
+
"senstype": SensitivityType.SCALAR,
|
|
90
97
|
},
|
|
91
98
|
{
|
|
92
99
|
"low": 0.0,
|
|
@@ -102,6 +109,7 @@ def test_tornado_data_init():
|
|
|
102
109
|
"high_tooltip": 20.0,
|
|
103
110
|
"true_high": 25.5,
|
|
104
111
|
"high_reals": [4, 5],
|
|
112
|
+
"senstype": SensitivityType.SCALAR,
|
|
105
113
|
},
|
|
106
114
|
{
|
|
107
115
|
"low": 0.0,
|
|
@@ -117,5 +125,6 @@ def test_tornado_data_init():
|
|
|
117
125
|
"high_tooltip": 5.300000000000001,
|
|
118
126
|
"true_high": 10.8,
|
|
119
127
|
"high_reals": [6, 7],
|
|
128
|
+
"senstype": SensitivityType.MONTE_CARLO,
|
|
120
129
|
},
|
|
121
130
|
]
|
|
@@ -5,7 +5,7 @@ import plotly.graph_objects as go
|
|
|
5
5
|
|
|
6
6
|
from webviz_subsurface._abbreviations.number_formatting import si_prefixed
|
|
7
7
|
|
|
8
|
-
from ._tornado_data import TornadoData
|
|
8
|
+
from ._tornado_data import SensitivityType, TornadoData
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class TornadoBarChart:
|
|
@@ -136,9 +136,25 @@ class TornadoBarChart:
|
|
|
136
136
|
hovertext.append(text)
|
|
137
137
|
return hovertext
|
|
138
138
|
|
|
139
|
+
def get_sensitivity_colors(self, case: str) -> List:
|
|
140
|
+
"""Create color list for bars based on sensitivity type
|
|
141
|
+
If colors are set by sensitivity, just create a color per sensitivty.
|
|
142
|
+
If not handle scalar and mc sensitivities separately.
|
|
143
|
+
For scalar, that is sensitivities with two "cases", use separate colors for each case.
|
|
144
|
+
For mc, use one color.
|
|
145
|
+
"""
|
|
146
|
+
if self._color_by_sens:
|
|
147
|
+
return self.create_color_list(self._tornadotable["sensname"])
|
|
148
|
+
colors = []
|
|
149
|
+
for _, row in self._tornadotable.iterrows():
|
|
150
|
+
if row["senstype"] == SensitivityType.MONTE_CARLO or case == "low":
|
|
151
|
+
colors.append(self._plotly_theme["layout"]["colorway"][0])
|
|
152
|
+
else:
|
|
153
|
+
colors.append(self._plotly_theme["layout"]["colorway"][1])
|
|
154
|
+
return colors
|
|
155
|
+
|
|
139
156
|
@property
|
|
140
157
|
def data(self) -> List:
|
|
141
|
-
colors = self.create_color_list(self._tornadotable["sensname"].unique())
|
|
142
158
|
return [
|
|
143
159
|
{
|
|
144
160
|
"type": "bar",
|
|
@@ -157,7 +173,7 @@ class TornadoBarChart:
|
|
|
157
173
|
"orientation": "h",
|
|
158
174
|
"marker": {
|
|
159
175
|
"line": {"width": 1.5, "color": "black"},
|
|
160
|
-
"color":
|
|
176
|
+
"color": self.get_sensitivity_colors("low"),
|
|
161
177
|
},
|
|
162
178
|
},
|
|
163
179
|
{
|
|
@@ -177,7 +193,7 @@ class TornadoBarChart:
|
|
|
177
193
|
"orientation": "h",
|
|
178
194
|
"marker": {
|
|
179
195
|
"line": {"width": 1.5, "color": "black"},
|
|
180
|
-
"color":
|
|
196
|
+
"color": self.get_sensitivity_colors("high"),
|
|
181
197
|
},
|
|
182
198
|
},
|
|
183
199
|
]
|
|
@@ -193,6 +209,15 @@ class TornadoBarChart:
|
|
|
193
209
|
|
|
194
210
|
@property
|
|
195
211
|
def scatter_data(self) -> List[Dict]:
|
|
212
|
+
def get_color(case_name_arr: pd.Series, case_type_arr: pd.Series) -> List:
|
|
213
|
+
colors = []
|
|
214
|
+
for case_name, case_type in zip(case_name_arr, case_type_arr):
|
|
215
|
+
if case_name == "low" or case_type == SensitivityType.MONTE_CARLO:
|
|
216
|
+
colors.append(self._plotly_theme["layout"]["colorway"][0])
|
|
217
|
+
else:
|
|
218
|
+
colors.append(self._plotly_theme["layout"]["colorway"][1])
|
|
219
|
+
return colors
|
|
220
|
+
|
|
196
221
|
return [
|
|
197
222
|
{
|
|
198
223
|
"type": "scatter",
|
|
@@ -202,14 +227,9 @@ class TornadoBarChart:
|
|
|
202
227
|
"text": df["REAL"],
|
|
203
228
|
"hovertemplate": "REAL: <b>%{text}</b><br>"
|
|
204
229
|
+ "X: <b>%{x:.1f}</b> <extra></extra>",
|
|
205
|
-
"marker": {
|
|
206
|
-
"size": 15,
|
|
207
|
-
"color": self._plotly_theme["layout"]["colorway"][0]
|
|
208
|
-
if case == "low"
|
|
209
|
-
else self._plotly_theme["layout"]["colorway"][1],
|
|
210
|
-
},
|
|
230
|
+
"marker": {"size": 15, "color": get_color(df["case"], df["casetype"])},
|
|
211
231
|
}
|
|
212
|
-
for
|
|
232
|
+
for _, df in self._realtable.groupby("case")
|
|
213
233
|
]
|
|
214
234
|
|
|
215
235
|
@property
|
|
@@ -3,6 +3,15 @@ from typing import Dict, List, Optional, Union
|
|
|
3
3
|
import numpy as np
|
|
4
4
|
import pandas as pd
|
|
5
5
|
|
|
6
|
+
from webviz_subsurface._utils.enum_shim import StrEnum
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class SensitivityType(StrEnum):
|
|
10
|
+
"""Sensitivity types used in Tornado analysis."""
|
|
11
|
+
|
|
12
|
+
SCALAR = "scalar"
|
|
13
|
+
MONTE_CARLO = "mc"
|
|
14
|
+
|
|
6
15
|
|
|
7
16
|
class TornadoData:
|
|
8
17
|
REQUIRED_COLUMNS = ["REAL", "SENSNAME", "SENSCASE", "SENSTYPE", "VALUE"]
|
|
@@ -50,7 +59,11 @@ class TornadoData:
|
|
|
50
59
|
def _create_real_df(self, dframe: pd.DataFrame) -> pd.DataFrame:
|
|
51
60
|
"""Make dataframe with value and case info per realization"""
|
|
52
61
|
realdf = dframe[self.REQUIRED_COLUMNS].rename(
|
|
53
|
-
columns={
|
|
62
|
+
columns={
|
|
63
|
+
"SENSNAME": "sensname",
|
|
64
|
+
"SENSCASE": "senscase",
|
|
65
|
+
"SENSTYPE": "senstype",
|
|
66
|
+
}
|
|
54
67
|
)
|
|
55
68
|
|
|
56
69
|
sensitivities = self._tornadotable["sensname"].unique()
|
|
@@ -61,7 +74,7 @@ class TornadoData:
|
|
|
61
74
|
casemask = realdf["REAL"].isin(val[f"real_{case}"])
|
|
62
75
|
realdf.loc[casemask, "case"] = case
|
|
63
76
|
|
|
64
|
-
mc_mask = realdf["
|
|
77
|
+
mc_mask = realdf["senstype"] == "mc"
|
|
65
78
|
realdf["casetype"] = np.where(mc_mask, "mc", realdf["case"])
|
|
66
79
|
realdf["sensname_case"] = np.where(
|
|
67
80
|
mc_mask,
|
|
@@ -127,6 +140,7 @@ class TornadoData:
|
|
|
127
140
|
sens_case_df["VALUE"].mean()
|
|
128
141
|
),
|
|
129
142
|
"reals": list(map(int, sens_case_df["REAL"])),
|
|
143
|
+
"senstype": SensitivityType.SCALAR,
|
|
130
144
|
}
|
|
131
145
|
)
|
|
132
146
|
# If `SENSTYPE` is monte carlo get p10, p90
|
|
@@ -162,6 +176,7 @@ class TornadoData:
|
|
|
162
176
|
"values": p90,
|
|
163
177
|
"values_ref": self._scale_to_ref(p90),
|
|
164
178
|
"reals": low_reals,
|
|
179
|
+
"senstype": SensitivityType.MONTE_CARLO,
|
|
165
180
|
}
|
|
166
181
|
)
|
|
167
182
|
avg_per_sensitivity.append(
|
|
@@ -171,6 +186,7 @@ class TornadoData:
|
|
|
171
186
|
"values": p10,
|
|
172
187
|
"values_ref": self._scale_to_ref(p10),
|
|
173
188
|
"reals": high_reals,
|
|
189
|
+
"senstype": SensitivityType.MONTE_CARLO,
|
|
174
190
|
}
|
|
175
191
|
)
|
|
176
192
|
|
|
@@ -198,6 +214,7 @@ class TornadoData:
|
|
|
198
214
|
high["reals"] = []
|
|
199
215
|
high["senscase"] = None
|
|
200
216
|
high["values"] = self.reference_average
|
|
217
|
+
|
|
201
218
|
else:
|
|
202
219
|
low = (
|
|
203
220
|
low.copy()
|
|
@@ -218,6 +235,7 @@ class TornadoData:
|
|
|
218
235
|
"true_low": low["values"],
|
|
219
236
|
"low_reals": low["reals"],
|
|
220
237
|
"sensname": sensname,
|
|
238
|
+
"senstype": sens_name_df["senstype"].unique()[0],
|
|
221
239
|
"high": self.calc_high_x(low["values_ref"], high["values_ref"]),
|
|
222
240
|
"high_base": self.calc_high_base(
|
|
223
241
|
low["values_ref"], high["values_ref"]
|
|
@@ -10,6 +10,9 @@ from webviz_config.webviz_factory import WebvizFactory
|
|
|
10
10
|
from webviz_config.webviz_factory_registry import WEBVIZ_FACTORY_REGISTRY
|
|
11
11
|
from webviz_config.webviz_instance_info import WebvizRunMode
|
|
12
12
|
|
|
13
|
+
from webviz_subsurface._utils.design_matrix import (
|
|
14
|
+
rename_design_matrix_parameter_columns,
|
|
15
|
+
)
|
|
13
16
|
from webviz_subsurface._utils.perf_timer import PerfTimer
|
|
14
17
|
|
|
15
18
|
from ..ensemble_summary_provider._arrow_unsmry_import import (
|
|
@@ -283,6 +286,7 @@ class EnsembleTableProviderFactory(WebvizFactory):
|
|
|
283
286
|
raise ValueError(
|
|
284
287
|
f"Failed to load 'parameter.txt' files for ensemble {ens_path}."
|
|
285
288
|
)
|
|
289
|
+
ensemble_df = rename_design_matrix_parameter_columns(ensemble_df)
|
|
286
290
|
|
|
287
291
|
elapsed_load_parameters_s = timer.lap_s()
|
|
288
292
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
import pandas as pd
|
|
4
|
+
|
|
5
|
+
LOGGER = logging.getLogger(__name__)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def rename_design_matrix_parameter_columns(parameter_df: pd.DataFrame) -> pd.DataFrame:
|
|
9
|
+
"""Given a dataframe of parameters, checks if the DESIGN_MATRIX prefix is present.
|
|
10
|
+
If present assume this is a design matrix run. Return the dataframe with the prefix
|
|
11
|
+
removed. Also do a check if removing the prefix result in any duplicates.
|
|
12
|
+
If duplicates remove those and give a warning.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
if any(col.startswith("DESIGN_MATRIX:") for col in parameter_df.columns):
|
|
16
|
+
original_columns = parameter_df.columns
|
|
17
|
+
stripped_columns = original_columns.str.replace(
|
|
18
|
+
r"^DESIGN_MATRIX:", "", regex=True
|
|
19
|
+
)
|
|
20
|
+
rename_map = {
|
|
21
|
+
old: new
|
|
22
|
+
for old, new in zip(original_columns, stripped_columns)
|
|
23
|
+
if old != new
|
|
24
|
+
}
|
|
25
|
+
conflict_names = set(rename_map.values()) & set(original_columns)
|
|
26
|
+
if conflict_names:
|
|
27
|
+
LOGGER.info(
|
|
28
|
+
"DESIGN_MATRIX run detected, but non design matrix parameters was found."
|
|
29
|
+
)
|
|
30
|
+
LOGGER.info(
|
|
31
|
+
f"The following parameters will be dropped: {sorted(conflict_names)}"
|
|
32
|
+
)
|
|
33
|
+
parameter_df = parameter_df.drop(columns=conflict_names)
|
|
34
|
+
|
|
35
|
+
parameter_df = parameter_df.rename(columns=rename_map)
|
|
36
|
+
return parameter_df
|
|
@@ -8,6 +8,8 @@ from webviz_config import WebvizConfigTheme
|
|
|
8
8
|
from webviz_subsurface._figures import create_figure
|
|
9
9
|
from webviz_subsurface._models.parameter_model import ParametersModel as Pmodel
|
|
10
10
|
|
|
11
|
+
from .._types import VisualizationType
|
|
12
|
+
|
|
11
13
|
|
|
12
14
|
class ParametersModel:
|
|
13
15
|
"""Class to process and visualize ensemble parameter data"""
|
|
@@ -163,7 +165,7 @@ class ParametersModel:
|
|
|
163
165
|
self,
|
|
164
166
|
ensembles: list,
|
|
165
167
|
parameters: List[Any],
|
|
166
|
-
plot_type:
|
|
168
|
+
plot_type: VisualizationType = VisualizationType.DISTRIBUTION,
|
|
167
169
|
) -> go.Figure:
|
|
168
170
|
"""Create subplots for selected parameters"""
|
|
169
171
|
df = self.dataframe_melted.copy()
|
|
@@ -171,7 +173,7 @@ class ParametersModel:
|
|
|
171
173
|
df = df[df["PARAMETER"].isin(parameters)]
|
|
172
174
|
df = self._sort_parameters_col(df, parameters)
|
|
173
175
|
|
|
174
|
-
|
|
176
|
+
figure = (
|
|
175
177
|
create_figure(
|
|
176
178
|
plot_type=plot_type,
|
|
177
179
|
data_frame=df,
|
|
@@ -179,6 +181,7 @@ class ParametersModel:
|
|
|
179
181
|
facet_col="PARAMETER",
|
|
180
182
|
color="ENSEMBLE",
|
|
181
183
|
color_discrete_sequence=self.colorway,
|
|
184
|
+
barmode="overlay",
|
|
182
185
|
)
|
|
183
186
|
.update_xaxes(matches=None)
|
|
184
187
|
.for_each_trace(
|
|
@@ -189,6 +192,11 @@ class ParametersModel:
|
|
|
189
192
|
)
|
|
190
193
|
)
|
|
191
194
|
)
|
|
195
|
+
# Use bingroup=None so that Plotly calculates bins per trace
|
|
196
|
+
# This also means that individual ensembles will have separate binning.
|
|
197
|
+
if plot_type == VisualizationType.HISTOGRAM:
|
|
198
|
+
figure.update_traces(bingroup=None)
|
|
199
|
+
return figure
|
|
192
200
|
|
|
193
201
|
def get_stat_value(self, parameter: str, ensemble: str, stat_column: str) -> float:
|
|
194
202
|
"""
|
|
@@ -20,6 +20,7 @@ class ParamDistVisualizationType(SettingsGroupABC):
|
|
|
20
20
|
wcc.RadioItems(
|
|
21
21
|
id=self.register_component_unique_id(self.Ids.VISUALIZATION_TYPE),
|
|
22
22
|
options=[
|
|
23
|
+
{"label": "Histogram", "value": VisualizationType.HISTOGRAM},
|
|
23
24
|
{
|
|
24
25
|
"label": "Distribution plots",
|
|
25
26
|
"value": VisualizationType.DISTRIBUTION,
|
|
@@ -30,7 +31,7 @@ class ParamDistVisualizationType(SettingsGroupABC):
|
|
|
30
31
|
"value": VisualizationType.STAT_TABLE,
|
|
31
32
|
},
|
|
32
33
|
],
|
|
33
|
-
value=VisualizationType.
|
|
34
|
+
value=VisualizationType.HISTOGRAM,
|
|
34
35
|
vertical=True,
|
|
35
36
|
)
|
|
36
37
|
]
|
|
@@ -19,7 +19,7 @@ tests/unit_tests/model_tests/test_well_attributes_model.py,sha256=9C22NFoAz456x1
|
|
|
19
19
|
tests/unit_tests/model_tests/test_well_set_model.py,sha256=5dzJwOP6ocyQRhx4Rer2gdxk_XS_KuBdiYlLaYjX-Rw,2081
|
|
20
20
|
tests/unit_tests/plugin_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
21
|
tests/unit_tests/plugin_tests/test_grouptree.py,sha256=7Lf16VF-7E_bWNoON4WuCsmwFazkdd1Dx_2xWtPqnno,5820
|
|
22
|
-
tests/unit_tests/plugin_tests/test_tornado_data.py,sha256=
|
|
22
|
+
tests/unit_tests/plugin_tests/test_tornado_data.py,sha256=JFPY_zAQ9_ueW4vE4kLRw_2l8FJPA1ImlIpYnpyLTzY,4163
|
|
23
23
|
tests/unit_tests/plugin_tests/test_well_completions.py,sha256=_Czv9r1pEgzGfJFJ1MVWR0gcbXWJLNZZCesGLYNqIl4,5244
|
|
24
24
|
tests/unit_tests/plugin_tests/test_simulation_time_series/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
25
|
tests/unit_tests/plugin_tests/test_simulation_time_series/mocks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -69,8 +69,8 @@ webviz_subsurface/_components/__init__.py,sha256=LA2-36i1GI92rAQK2CrZHCUeFQY4RBS
|
|
|
69
69
|
webviz_subsurface/_components/color_picker.py,sha256=Zg73Ha8bmv3phg1LZHCDRP3xrpIVV1Zg1wmF9ql2ETs,8879
|
|
70
70
|
webviz_subsurface/_components/parameter_filter.py,sha256=XO2BfpkbaY7bhuLK4M0gECBWK3_wd3tlVFMUPXdwvSs,22232
|
|
71
71
|
webviz_subsurface/_components/tornado/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
-
webviz_subsurface/_components/tornado/_tornado_bar_chart.py,sha256=
|
|
73
|
-
webviz_subsurface/_components/tornado/_tornado_data.py,sha256=
|
|
72
|
+
webviz_subsurface/_components/tornado/_tornado_bar_chart.py,sha256=3P2XTBSW-t9n0ayorhBBQmPJCfgr72FIceF6O0ImOdI,12695
|
|
73
|
+
webviz_subsurface/_components/tornado/_tornado_data.py,sha256=nld5vRq0I8Q_sQUod2vHsJkJEHCax8gfgXvYp4tnzvA,12603
|
|
74
74
|
webviz_subsurface/_components/tornado/_tornado_table.py,sha256=idfm4j3MoROMjTNGz-g21rb_qWQu3-0OJSjFOgB3Ck4,2475
|
|
75
75
|
webviz_subsurface/_components/tornado/tornado_widget.py,sha256=HdfwH70HAQQpZWt0yl8Pa3teZHCYTZJz-CCCPSRDy14,21547
|
|
76
76
|
webviz_subsurface/_datainput/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -167,7 +167,7 @@ webviz_subsurface/_providers/ensemble_table_provider/__init__.py,sha256=YxM91G6i
|
|
|
167
167
|
webviz_subsurface/_providers/ensemble_table_provider/_field_metadata.py,sha256=vd6EDP00LPIQHsSwXLNaxkUl_Dw8objE3krlGCmT84w,543
|
|
168
168
|
webviz_subsurface/_providers/ensemble_table_provider/_table_import.py,sha256=Y6_3KVgkXdBvuhC-LEIIHaatXxyC2LeJ2d6sQYIl8zE,5604
|
|
169
169
|
webviz_subsurface/_providers/ensemble_table_provider/ensemble_table_provider.py,sha256=GuG88MnbS4RSIIsndxk2TGM-rJ-YWkrkSjj_qRM9ZO8,910
|
|
170
|
-
webviz_subsurface/_providers/ensemble_table_provider/ensemble_table_provider_factory.py,sha256=
|
|
170
|
+
webviz_subsurface/_providers/ensemble_table_provider/ensemble_table_provider_factory.py,sha256=v32yheVa9YzBPJc-Wzr1k7OKj39sNAdSpUVk52_i7G0,14365
|
|
171
171
|
webviz_subsurface/_providers/ensemble_table_provider/ensemble_table_provider_impl_arrow.py,sha256=ToDZGjRD--S38OkcQgAP7bt28_O52sxLh4M1MidGWgU,8901
|
|
172
172
|
webviz_subsurface/_providers/well_provider/__init__.py,sha256=iw0VRgqEA6u77A5SKPuC0pcz9tRfJMkYgpv28Goy29w,131
|
|
173
173
|
webviz_subsurface/_providers/well_provider/_provider_impl_file.py,sha256=X89ZPB8I9g9zDEV3xv-w2bK2vb-7-De9L4NrcDTtKJU,4011
|
|
@@ -178,6 +178,7 @@ webviz_subsurface/_providers/well_provider/well_server.py,sha256=XVgZhIsUEsVEFwB
|
|
|
178
178
|
webviz_subsurface/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
179
179
|
webviz_subsurface/_utils/colors.py,sha256=Ke_OOKMQYeBvzzlmd-7kshqqGbF2IpJEXGRrm7ss708,6184
|
|
180
180
|
webviz_subsurface/_utils/dataframe_utils.py,sha256=BrnPO-iNfhhtna-lgeXjOupB23LGZqrpGYbxM7_qxq4,4209
|
|
181
|
+
webviz_subsurface/_utils/design_matrix.py,sha256=yyGVKYmhtzFbt1-1g3hmhVIi8YHeZuj3W_Q_wiHAGw8,1373
|
|
181
182
|
webviz_subsurface/_utils/ensemble_summary_provider_set.py,sha256=qZAkUwAC9SPOYiIK4968h-_67cJhvJenJc6eGdv3oEM,5550
|
|
182
183
|
webviz_subsurface/_utils/ensemble_summary_provider_set_factory.py,sha256=y6J1YRTYOvWprFdHKYqKKTAfs7nU3pvV7eCMRXyIQbg,2630
|
|
183
184
|
webviz_subsurface/_utils/ensemble_table_provider_set.py,sha256=r1w3u4eEmNlC-YZHrdm6DSTZFyjJvJGB8oyZBSsB5MU,2904
|
|
@@ -302,10 +303,10 @@ webviz_subsurface/plugins/_map_viewer_fmu/layout.py,sha256=fUlMWbkegC9Y09ElxPtMK
|
|
|
302
303
|
webviz_subsurface/plugins/_map_viewer_fmu/map_viewer_fmu.py,sha256=SDJJoOOMgvbrQJmvqL8KpidXmmaWqfp6ECOlO-8d0XQ,10412
|
|
303
304
|
webviz_subsurface/plugins/_parameter_analysis/__init__.py,sha256=YIsJxDje9XN0Qyzk7wVrZ5GIfdqnwUnnbxAh1iHvoko,39
|
|
304
305
|
webviz_subsurface/plugins/_parameter_analysis/_plugin.py,sha256=zoXVsOcHIBR4sR5nu5lSf6iQXcRSh_ciY4eM30-rbyk,5593
|
|
305
|
-
webviz_subsurface/plugins/_parameter_analysis/_types.py,sha256=
|
|
306
|
+
webviz_subsurface/plugins/_parameter_analysis/_types.py,sha256=g-2IPTqbpSbOV7jjuV45tWnR1b55yiFbiRrMNT9KBPo,435
|
|
306
307
|
webviz_subsurface/plugins/_parameter_analysis/_utils/__init__.py,sha256=VSAGfgdhacGxYW9WCesfdpa5eQM_lsXGh_hPsF3SnSk,120
|
|
307
308
|
webviz_subsurface/plugins/_parameter_analysis/_utils/_datetime_utils.py,sha256=p2SvffNUmShWsctynt34UGdm9mP4GSYa71pjn4xgSSQ,548
|
|
308
|
-
webviz_subsurface/plugins/_parameter_analysis/_utils/_parameters_model.py,sha256=
|
|
309
|
+
webviz_subsurface/plugins/_parameter_analysis/_utils/_parameters_model.py,sha256=cmVBoU7ke9M8gYvLMdF3j9PQUi4rtLMCFzh29xC8k6o,8231
|
|
309
310
|
webviz_subsurface/plugins/_parameter_analysis/_utils/_provider_timesseries_datamodel.py,sha256=70ATYNJEtHjNk-UoJUc9nC8Fziro5kuBl6yynMEbNqU,5394
|
|
310
311
|
webviz_subsurface/plugins/_parameter_analysis/_views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
311
312
|
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_view/__init__.py,sha256=J7_qFYcZRB_wIIIiYOVfmJaehzo3HrSV25ueWLgOd2o,45
|
|
@@ -314,7 +315,7 @@ webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_vi
|
|
|
314
315
|
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_view/_settings/__init__.py,sha256=whY4RYk2U9hM0rkABSTC4dqxcDikPn5naPMBeP3qzgk,148
|
|
315
316
|
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_view/_settings/_ensembles.py,sha256=nOZNPmhoxn3L71Omm_5w0jdnkxxi9NO3TDx853ZrTAQ,1333
|
|
316
317
|
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_view/_settings/_parameters.py,sha256=GHKE0ZZZndc1jBjvLAitfaM5k5ARm0vxFWp2JPvTBBw,1628
|
|
317
|
-
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_view/_settings/_visualization_type.py,sha256=
|
|
318
|
+
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_distributions_view/_settings/_visualization_type.py,sha256=Nx8GVM2ng6dSgoduJ3uTW9oOhEK_prTKCXSEYYbsAk4,1279
|
|
318
319
|
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_response_view/__init__.py,sha256=7FsVn4FasBbUozc3TMF5rOjqL5nxCnA54P-ruPRe5Q8,41
|
|
319
320
|
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_response_view/_view.py,sha256=k3j1-oz7s_UN_nEvHa3cCsqmOQL5tkaqStD73xuyyFc,29763
|
|
320
321
|
webviz_subsurface/plugins/_parameter_analysis/_views/_parameter_response_view/_view_element.py,sha256=9ymaq2WJx8z4ErEeJhG5I9W2PhrOuSgHEwGpSjLzw_g,556
|
|
@@ -600,10 +601,10 @@ webviz_subsurface/plugins/_well_log_viewer/controllers/_well_controller.py,sha25
|
|
|
600
601
|
webviz_subsurface/plugins/_well_log_viewer/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
601
602
|
webviz_subsurface/plugins/_well_log_viewer/utils/default_color_tables.py,sha256=0UgrvygPGEAuC15vn73NCXJUQLt9Dpn5QZqqq1IJkfw,4872
|
|
602
603
|
webviz_subsurface/plugins/_well_log_viewer/utils/xtgeo_well_log_to_json.py,sha256=T44-vFwvvjyo376yoL1QWDc98exG8N1cLTEzrGp-I7A,1608
|
|
603
|
-
webviz_subsurface-0.2.
|
|
604
|
-
webviz_subsurface-0.2.
|
|
605
|
-
webviz_subsurface-0.2.
|
|
606
|
-
webviz_subsurface-0.2.
|
|
607
|
-
webviz_subsurface-0.2.
|
|
608
|
-
webviz_subsurface-0.2.
|
|
609
|
-
webviz_subsurface-0.2.
|
|
604
|
+
webviz_subsurface-0.2.39.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
605
|
+
webviz_subsurface-0.2.39.dist-info/LICENSE.chromedriver,sha256=H5UWVvf6Y7Ul6i35mriz7071dWR01cR9G-5ypnZHnpM,326542
|
|
606
|
+
webviz_subsurface-0.2.39.dist-info/METADATA,sha256=rFnRadClZlAGeQCYmxBT5ozeuYn3v-q6w7FPbGfemfc,6354
|
|
607
|
+
webviz_subsurface-0.2.39.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
|
|
608
|
+
webviz_subsurface-0.2.39.dist-info/entry_points.txt,sha256=aprJRZQ2dW0An59soobTCaWzw6nEtiZBGncBhWA_C5Y,4129
|
|
609
|
+
webviz_subsurface-0.2.39.dist-info/top_level.txt,sha256=NobeVsNfPINQgUSc9hlW3aqYHO5A0SNlhacg-2YDcf4,24
|
|
610
|
+
webviz_subsurface-0.2.39.dist-info/RECORD,,
|
|
File without changes
|
{webviz_subsurface-0.2.38.dist-info → webviz_subsurface-0.2.39.dist-info}/LICENSE.chromedriver
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|