Skip to content

Commit 1e560b5

Browse files
author
Yngve S. Kristiansen
committed
Try remove get_updated_parameters
1 parent 45db5af commit 1e560b5

2 files changed

Lines changed: 5 additions & 84 deletions

File tree

src/semeio/workflows/ahm_analysis/ahmanalysis.py

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,11 @@ def _replace(s: str) -> str:
227227
# identify the set of actual parameters that was updated for now just go
228228
# through scalar parameters but in future if easier access to field parameter
229229
# updates should also include field parameters
230-
dkeysf = get_updated_parameters(prior_data, gen_kw_groups)
230+
dkeysf = [
231+
p.name
232+
for p in prior_ensemble.experiment.parameter_configuration.values()
233+
if p.update and p.type == "gen_kw"
234+
]
231235
# setup dataframe for calculated data
232236
kolmogorov_smirnov_data, active_obs, misfitval = (
233237
pd.DataFrame(sorted(dkeysf), columns=["Parameters"]),
@@ -416,39 +420,6 @@ def calc_observationsgroup_misfit(obs_keys, df_update_log, misfit_df):
416420
)
417421
return mean.mean()
418422

419-
420-
def _filter_on_prefix(list_of_strings, prefixes):
421-
"""returns the set of strings that has a match for any of the given prefixes"""
422-
return {
423-
string
424-
for string in list_of_strings
425-
if any(string.startswith(prefix) for prefix in prefixes)
426-
}
427-
428-
429-
def get_updated_parameters(prior_data, parameters):
430-
"""make list of updated parameters
431-
(excluding duplicate transformed parameters)
432-
"""
433-
parameter_keys = _filter_on_prefix(
434-
list_of_strings=prior_data.keys(), prefixes=parameters
435-
)
436-
# remove parameters with constant prior distribution
437-
p_keysf = []
438-
for dkey in parameter_keys:
439-
if prior_data[dkey].ndim > 1:
440-
warnings.warn(
441-
"WARNING: Parameter " + dkey + " defined several times.", stacklevel=1
442-
)
443-
flatten_arr = np.ravel(prior_data[dkey])
444-
result = np.all(prior_data[dkey] == flatten_arr[0])
445-
if not result:
446-
p_keysf.append(dkey)
447-
elif not all(x == prior_data[dkey][0] for x in prior_data[dkey]):
448-
p_keysf.append(dkey)
449-
return p_keysf
450-
451-
452423
def calc_kolmogorov_smirnov(columns, prior_data, target_data):
453424
"""Calculate kolmogorov_smirnov matrix"""
454425
ks_param = {}

tests/workflows/ahm_analysis/test_ahm_analysis.py

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -236,53 +236,3 @@ def test_raise_if_empty(misfit_data, prior_data, expected_msg):
236236
def test_make_obs_groups(input_map, expected_keys):
237237
result = ahmanalysis.make_obs_groups(input_map)
238238
assert result == expected_keys
239-
240-
241-
@pytest.mark.parametrize(
242-
"prior_data, expected_result",
243-
[
244-
[
245-
{
246-
"SNAKE_OIL_PARAM:OP1_PERSISTENCE": [0, 1, 2],
247-
"SNAKE_OIL_PARAM:OP1_OCTAVES": [0, 1, 2],
248-
"SNAKE_OIL_PARAM:OP1_DIVERGENCE_SCALE": [0, 1, 2],
249-
"SNAKE_OIL_PRES:BPR_138_PERSISTENCE": [0, 1, 2],
250-
"LOG10_SNAKE_OIL_PARAM:OP1_PERSISTENCE": [0, 1, 2],
251-
},
252-
[
253-
"SNAKE_OIL_PARAM:OP1_DIVERGENCE_SCALE",
254-
"SNAKE_OIL_PARAM:OP1_OCTAVES",
255-
"SNAKE_OIL_PARAM:OP1_PERSISTENCE",
256-
"SNAKE_OIL_PRES:BPR_138_PERSISTENCE",
257-
],
258-
],
259-
],
260-
)
261-
def test_get_updated_parameters(prior_data, expected_result):
262-
"""test function creates a dataframe with all scalar parameters"""
263-
prior_data = pd.DataFrame(prior_data)
264-
scalar_parameters = ["SNAKE_OIL_PARAM", "SNAKE_OIL_PRES"]
265-
p_keysf = ahmanalysis.get_updated_parameters(prior_data, scalar_parameters)
266-
assert sorted(p_keysf) == sorted(expected_result)
267-
268-
269-
@pytest.mark.parametrize(
270-
"prior_data_w",
271-
[
272-
{
273-
"SNAKE_OIL_PARAM:OP1_PERSISTENCE": np.array([0, 1, 2]),
274-
"SNAKE_OIL_PARAM:OP1_OCTAVES": np.array([0, 1, 2]),
275-
"SNAKE_OIL_PARAM:OP1_DIVERGENCE_SCALE": np.array([0, 1, 2]),
276-
"SNAKE_OIL_PARAM:OP1_OFFSET": np.array([[0, 0, 0], [0, 0, 0]]),
277-
"SNAKE_OIL_PRES:BPR_138_PERSISTENCE": np.array([0, 1, 2]),
278-
}
279-
],
280-
)
281-
def test_warning_get_updated_parameters(prior_data_w):
282-
"""test function creates a dataframe with all scalar parameters"""
283-
expected_msg = (
284-
"WARNING: Parameter SNAKE_OIL_PARAM:OP1_OFFSET defined several times."
285-
)
286-
scalar_parameters = ["SNAKE_OIL_PARAM", "SNAKE_OIL_PRES"]
287-
with pytest.warns(UserWarning, match=expected_msg):
288-
ahmanalysis.get_updated_parameters(prior_data_w, scalar_parameters)

0 commit comments

Comments
 (0)