diff --git a/src/ert/analysis/_es_update.py b/src/ert/analysis/_es_update.py index 888cd3e3230..0f1991ecbd1 100644 --- a/src/ert/analysis/_es_update.py +++ b/src/ert/analysis/_es_update.py @@ -3,8 +3,8 @@ import logging import time from collections import UserDict, defaultdict -from dataclasses import dataclass from datetime import datetime +from fnmatch import fnmatch from pathlib import Path from typing import ( TYPE_CHECKING, @@ -29,6 +29,7 @@ ) from typing_extensions import Self +from ..config.analysis_config import ObservationGroups, UpdateSettings from ..config.analysis_module import ESSettings, IESSettings from . import misfit_preprocessor from .event import ( @@ -95,14 +96,6 @@ def __next__(self) -> T: return result -@dataclass -class UpdateSettings: - std_cutoff: float = 1e-6 - alpha: float = 3.0 - misfit_preprocess: bool = False - min_required_realizations: int = 2 - - class TempStorage(UserDict): # type: ignore def __getitem__(self, key: str) -> npt.NDArray[np.double]: value: Union[npt.NDArray[np.double], xr.DataArray] = self.data[key] @@ -211,6 +204,15 @@ def _get_obs_and_measure_data( ) +def _expand_wildcards( + input_list: npt.NDArray[np.str_], patterns: List[str] +) -> List[str]: + matches = [] + for pattern in patterns: + matches.extend([val for val in input_list if fnmatch(val, pattern)]) + return list(set(matches)) + + def _load_observations_and_responses( ensemble: Ensemble, alpha: float, @@ -218,7 +220,7 @@ def _load_observations_and_responses( global_std_scaling: float, iens_active_index: npt.NDArray[np.int_], selected_observations: Iterable[str], - misfit_process: bool, + auto_scale_observations: Optional[List[ObservationGroups]], ) -> Tuple[ npt.NDArray[np.float_], Tuple[ @@ -247,10 +249,13 @@ def _load_observations_and_responses( ens_mean_mask = abs(observations - ens_mean) <= alpha * (ens_std + scaled_errors) obs_mask = np.logical_and(ens_mean_mask, ens_std_mask) - if misfit_process: - scaling[obs_mask] *= misfit_preprocessor.main( - S[obs_mask], scaled_errors[obs_mask] - ) + if auto_scale_observations: + for input_group in auto_scale_observations: + group = _expand_wildcards(obs_keys, input_group) + obs_group_mask = np.isin(obs_keys, group) & obs_mask + scaling[obs_group_mask] *= misfit_preprocessor.main( + S[obs_group_mask], scaled_errors[obs_group_mask] + ) update_snapshot = [] for ( @@ -417,7 +422,7 @@ def analysis_ES( source_ensemble: Ensemble, target_ensemble: Ensemble, progress_callback: Callable[[AnalysisEvent], None], - misfit_process: bool, + auto_scale_observations: Optional[List[ObservationGroups]], ) -> None: iens_active_index = np.flatnonzero(ens_mask) @@ -443,7 +448,7 @@ def adaptive_localization_progress_callback( global_scaling, iens_active_index, observations, - misfit_process, + auto_scale_observations, ) num_obs = len(observation_values) @@ -556,7 +561,7 @@ def analysis_IES( target_ensemble: Ensemble, sies_smoother: Optional[ies.SIES], progress_callback: Callable[[AnalysisEvent], None], - misfit_preprocessor: bool, + auto_scale_observations: List[ObservationGroups], sies_step_length: Callable[[int], float], initial_mask: npt.NDArray[np.bool_], ) -> ies.SIES: @@ -583,7 +588,7 @@ def analysis_IES( 1.0, iens_active_index, observations, - misfit_preprocessor, + auto_scale_observations, ) smoother_snapshot.update_step_snapshots = update_snapshot @@ -721,10 +726,10 @@ def _write_update_report( def _assert_has_enough_realizations( - ens_mask: npt.NDArray[np.bool_], analysis_config: UpdateSettings + ens_mask: npt.NDArray[np.bool_], min_required_realizations: int ) -> None: active_realizations = ens_mask.sum() - if active_realizations < analysis_config.min_required_realizations: + if active_realizations < min_required_realizations: raise ErtAnalysisError( f"There are {active_realizations} active realisations left, which is " "less than the minimum specified - stopping assimilation.", @@ -767,7 +772,7 @@ def smoother_update( analysis_config = UpdateSettings() if analysis_config is None else analysis_config es_settings = ESSettings() if es_settings is None else es_settings ens_mask = prior_storage.get_realization_mask_with_responses() - _assert_has_enough_realizations(ens_mask, analysis_config) + _assert_has_enough_realizations(ens_mask, analysis_config.min_required_realizations) smoother_snapshot = _create_smoother_snapshot( prior_storage.name, @@ -790,7 +795,7 @@ def smoother_update( prior_storage, posterior_storage, progress_callback, - analysis_config.misfit_preprocess, + analysis_config.auto_scale_observations, ) except Exception as e: raise e @@ -828,7 +833,7 @@ def iterative_smoother_update( rng = np.random.default_rng() ens_mask = prior_storage.get_realization_mask_with_responses() - _assert_has_enough_realizations(ens_mask, update_settings) + _assert_has_enough_realizations(ens_mask, update_settings.min_required_realizations) smoother_snapshot = _create_smoother_snapshot( prior_storage.name, @@ -851,7 +856,7 @@ def iterative_smoother_update( target_ensemble=posterior_storage, sies_smoother=sies_smoother, progress_callback=progress_callback, - misfit_preprocessor=update_settings.misfit_preprocess, + auto_scale_observations=update_settings.auto_scale_observations, sies_step_length=sies_step_length, initial_mask=initial_mask, ) diff --git a/src/ert/cli/model_factory.py b/src/ert/cli/model_factory.py index 889b294d3d4..95467b92d0a 100644 --- a/src/ert/cli/model_factory.py +++ b/src/ert/cli/model_factory.py @@ -5,7 +5,6 @@ import numpy as np -from ert.analysis._es_update import UpdateSettings from ert.cli import ( ENSEMBLE_EXPERIMENT_MODE, ENSEMBLE_SMOOTHER_MODE, @@ -14,7 +13,8 @@ ITERATIVE_ENSEMBLE_SMOOTHER_MODE, TEST_RUN_MODE, ) -from ert.config import ConfigWarning, ErtConfig, HookRuntime +from ert.config import ConfigWarning, ErtConfig +from ert.config.analysis_config import UpdateSettings from ert.run_models import ( BaseRunModel, EnsembleExperiment, @@ -35,23 +35,13 @@ from ert.validation import ActiveRange if TYPE_CHECKING: - from typing import List import numpy.typing as npt - from ert.config import Workflow from ert.namespace import Namespace from ert.storage import Storage -def _misfit_preprocessor(workflows: List[Workflow]) -> bool: - for workflow in workflows: - for job, _ in workflow: - if job.name == "MISFIT_PREPROCESSOR": - return True - return False - - def create_model( config: ErtConfig, storage: Storage, @@ -65,15 +55,7 @@ def create_model( "ensemble_size": config.model_config.num_realizations, }, ) - ert_analysis_config = config.analysis_config - update_settings = UpdateSettings( - std_cutoff=ert_analysis_config.std_cutoff, - alpha=ert_analysis_config.enkf_alpha, - misfit_preprocess=_misfit_preprocessor( - config.hooked_workflows[HookRuntime.PRE_FIRST_UPDATE] - ), - min_required_realizations=ert_analysis_config.minimum_required_realizations, - ) + update_settings = config.analysis_config.observation_settings if args.mode == TEST_RUN_MODE: return _setup_single_test_run(config, storage, args) diff --git a/src/ert/config/analysis_config.py b/src/ert/config/analysis_config.py index 30960a7e958..51fc80cef7c 100644 --- a/src/ert/config/analysis_config.py +++ b/src/ert/config/analysis_config.py @@ -1,4 +1,7 @@ +from __future__ import annotations + import logging +from dataclasses import dataclass, field from math import ceil from os.path import realpath from pathlib import Path @@ -19,6 +22,15 @@ logger = logging.getLogger(__name__) DEFAULT_ANALYSIS_MODE = AnalysisMode.ENSEMBLE_SMOOTHER +ObservationGroups = List[str] + + +@dataclass +class UpdateSettings: + std_cutoff: float = 1e-6 + alpha: float = 3.0 + auto_scale_observations: List[ObservationGroups] = field(default_factory=list) + min_required_realizations: int = 2 class AnalysisConfig: @@ -43,6 +55,12 @@ def __init__( self._min_realization = min_realization options: Dict[str, Dict[str, Any]] = {"STD_ENKF": {}, "IES_ENKF": {}} + observation_settings: Dict[str, Any] = { + "alpha": alpha, + "std_cutoff": std_cutoff, + "auto_scale_observations": [], + "min_required_realizations": min_realization, + } analysis_set_var = [] if analysis_set_var is None else analysis_set_var inversion_str_map: Final = { "STD_ENKF": { @@ -64,6 +82,19 @@ def __init__( all_errors = [] for module_name, var_name, value in analysis_set_var: + if module_name == "OBSERVATIONS": + if var_name == "AUTO_SCALE": + observation_settings["auto_scale_observations"].append( + value.split(",") + ) + else: + all_errors.append( + ConfigValidationError( + f"Unknown variable: {var_name} for: ANALYSIS_SET_VAR OBSERVATIONS {var_name}" + "Valid options: AUTO_SCALE" + ) + ) + continue if var_name in deprecated_keys: errors.append(var_name) continue @@ -95,7 +126,14 @@ def __init__( var_name = "inversion" key = var_name.lower() - options[module_name][key] = value + try: + options[module_name][key] = value + except KeyError: + all_errors.append( + ConfigValidationError( + f"Invalid configuration: ANALYSIS_SET_VAR {module_name} {var_name}" + ) + ) if errors: all_errors.append( @@ -110,6 +148,7 @@ def __init__( try: self.es_module = ESSettings(**options["STD_ENKF"]) self.ies_module = IESSettings(**options["IES_ENKF"]) + self.observation_settings = UpdateSettings(**observation_settings) except ValidationError as err: for error in err.errors(): error["loc"] = tuple( @@ -226,7 +265,6 @@ def __repr__(self) -> str: return ( "AnalysisConfig(" f"alpha={self._alpha}, " - f"std_cutoff={self._std_cutoff}, " f"stop_long_running={self._stop_long_running}, " f"max_runtime={self._max_runtime}, " f"min_realization={self._min_realization}, " @@ -247,10 +285,7 @@ def __eq__(self, other: object) -> bool: if self.stop_long_running != other.stop_long_running: return False - if self.std_cutoff != other.std_cutoff: - return False - - if self.enkf_alpha != other.enkf_alpha: + if self.observation_settings != other.observation_settings: return False if self.ies_module != other.ies_module: diff --git a/src/ert/gui/tools/run_analysis/run_analysis_tool.py b/src/ert/gui/tools/run_analysis/run_analysis_tool.py index 50eeab6bb7d..8353950a7a9 100644 --- a/src/ert/gui/tools/run_analysis/run_analysis_tool.py +++ b/src/ert/gui/tools/run_analysis/run_analysis_tool.py @@ -8,7 +8,6 @@ from qtpy.QtWidgets import QApplication, QMessageBox from ert.analysis import ErtAnalysisError, smoother_update -from ert.analysis._es_update import UpdateSettings from ert.analysis.event import AnalysisEvent, AnalysisStatusEvent, AnalysisTimeEvent from ert.enkf_main import EnKFMain, _seed_sequence from ert.gui.ertnotifier import ErtNotifier @@ -48,12 +47,7 @@ def run(self): error: Optional[str] = None config = self._ert.ert_config rng = np.random.default_rng(_seed_sequence(config.random_seed)) - update_settings = UpdateSettings( - std_cutoff=config.analysis_config.std_cutoff, - alpha=config.analysis_config.enkf_alpha, - misfit_preprocess=False, - min_required_realizations=config.analysis_config.minimum_required_realizations, - ) + update_settings = config.analysis_config.observation_settings try: smoother_update( self._source_ensemble, diff --git a/src/ert/libres_facade.py b/src/ert/libres_facade.py index 1fe3e90cc49..bc9b186762a 100644 --- a/src/ert/libres_facade.py +++ b/src/ert/libres_facade.py @@ -35,7 +35,6 @@ from ert.shared.version import __version__ from ert.storage import Ensemble -from .analysis._es_update import UpdateSettings from .enkf_main import EnKFMain, ensemble_context _logger = logging.getLogger(__name__) @@ -92,19 +91,13 @@ def smoother_update( ) -> SmootherSnapshot: if rng is None: rng = np.random.default_rng() - analysis_config = UpdateSettings( - std_cutoff=self.config.analysis_config.std_cutoff, - alpha=self.config.analysis_config.enkf_alpha, - misfit_preprocess=misfit_process, - min_required_realizations=self.config.analysis_config.minimum_required_realizations, - ) update_snapshot = smoother_update( prior_storage, posterior_storage, run_id, observations, parameters, - analysis_config, + self.config.analysis_config.observation_settings, self.config.analysis_config.es_module, rng, progress_callback, diff --git a/src/ert/run_models/ensemble_smoother.py b/src/ert/run_models/ensemble_smoother.py index 1a6bc346a98..076a6949ee6 100644 --- a/src/ert/run_models/ensemble_smoother.py +++ b/src/ert/run_models/ensemble_smoother.py @@ -14,7 +14,7 @@ from ert.run_models.run_arguments import ESRunArguments from ert.storage import Storage -from ..analysis._es_update import UpdateSettings +from ..config.analysis_config import UpdateSettings from ..config.analysis_module import ESSettings from .base_run_model import BaseRunModel, ErtRunError from .event import RunModelStatusEvent, RunModelUpdateBeginEvent, RunModelUpdateEndEvent diff --git a/src/ert/run_models/iterated_ensemble_smoother.py b/src/ert/run_models/iterated_ensemble_smoother.py index 750af37ccfd..f9a962d26fe 100644 --- a/src/ert/run_models/iterated_ensemble_smoother.py +++ b/src/ert/run_models/iterated_ensemble_smoother.py @@ -15,7 +15,7 @@ from ert.run_models.run_arguments import SIESRunArguments from ert.storage import Ensemble, Storage -from ..analysis._es_update import UpdateSettings +from ..config.analysis_config import UpdateSettings from ..config.analysis_module import IESSettings from .base_run_model import BaseRunModel, ErtRunError from .event import RunModelStatusEvent, RunModelUpdateBeginEvent, RunModelUpdateEndEvent diff --git a/src/ert/run_models/multiple_data_assimilation.py b/src/ert/run_models/multiple_data_assimilation.py index f82f15c5f4a..46cd7de991e 100644 --- a/src/ert/run_models/multiple_data_assimilation.py +++ b/src/ert/run_models/multiple_data_assimilation.py @@ -14,7 +14,7 @@ from ert.run_models.run_arguments import ESMDARunArguments from ert.storage import Ensemble, Storage -from ..analysis._es_update import UpdateSettings +from ..config.analysis_config import UpdateSettings from ..config.analysis_module import ESSettings from .base_run_model import BaseRunModel, ErtRunError from .event import RunModelStatusEvent, RunModelUpdateBeginEvent, RunModelUpdateEndEvent diff --git a/src/ert/shared/hook_implementations/workflows/__init__.py b/src/ert/shared/hook_implementations/workflows/__init__.py index 1c6cf6694b5..6979034feef 100644 --- a/src/ert/shared/hook_implementations/workflows/__init__.py +++ b/src/ert/shared/hook_implementations/workflows/__init__.py @@ -4,6 +4,7 @@ from .disable_parameters import DisableParametersUpdate from .export_misfit_data import ExportMisfitDataJob from .export_runpath import ExportRunpathJob +from .misfit_preprocessor import MisfitPreprocessor @hook_implementation @@ -18,3 +19,7 @@ def legacy_ertscript_workflow(config): workflow = config.add_workflow(DisableParametersUpdate, "DISABLE_PARAMETERS") workflow.description = DisableParametersUpdate.__doc__ + + workflow = config.add_workflow(MisfitPreprocessor, "MISFIT_PREPROCESSOR") + workflow.description = MisfitPreprocessor.__doc__ + workflow.category = "observations.correlation" diff --git a/src/ert/shared/hook_implementations/workflows/misfit_preprocessor.py b/src/ert/shared/hook_implementations/workflows/misfit_preprocessor.py new file mode 100644 index 00000000000..b780dea9e3b --- /dev/null +++ b/src/ert/shared/hook_implementations/workflows/misfit_preprocessor.py @@ -0,0 +1,26 @@ +from typing import Any, List + +from ert import ErtScript +from ert.config import ConfigValidationError + + +class MisfitPreprocessor(ErtScript): + """MISFIT_PREPROCESSOR is removed, use ANALYSIS_SET_VAR OBSERVATIONS AUTO_SCALE" + example: ANALYSIS_SET_VAR OBSERVATIONS AUTO_SCALE * -- all observations" + """ + + def run(self, disable_parameters: str) -> None: + raise NotImplementedError(MisfitPreprocessor.__doc__) + + @staticmethod + def validate(args: List[Any]) -> None: + message = MisfitPreprocessor.__doc__ + assert message is not None + if args: + # This means the user has configured a config file to the workflow + # so we can assume they have customized the obs groups + message += ( + "example: ANALYSIS_SET_VAR OBSERVATIONS AUTO_SCALE 'obs_*' -- all observations starting with obs_" + "Add multiple entries to set up multiple groups" + ) + raise ConfigValidationError(message) diff --git a/tests/integration_tests/analysis/test_es_update.py b/tests/integration_tests/analysis/test_es_update.py index b8cd1502edb..d4e844c9502 100644 --- a/tests/integration_tests/analysis/test_es_update.py +++ b/tests/integration_tests/analysis/test_es_update.py @@ -12,11 +12,11 @@ from ert.analysis._es_update import ( ObservationStatus, TempStorage, - UpdateSettings, _create_temporary_parameter_storage, ) from ert.cli import ENSEMBLE_SMOOTHER_MODE from ert.config import AnalysisConfig, ErtConfig, GenDataConfig, GenKwConfig +from ert.config.analysis_config import UpdateSettings from ert.config.analysis_module import ESSettings from ert.storage import open_storage from ert.storage.realization_storage_state import RealizationStorageState diff --git a/tests/unit_tests/all/plugins/test_misfit_preprocessor.py b/tests/unit_tests/all/plugins/test_misfit_preprocessor.py new file mode 100644 index 00000000000..60f8c33ed8c --- /dev/null +++ b/tests/unit_tests/all/plugins/test_misfit_preprocessor.py @@ -0,0 +1,32 @@ +import pytest + +from ert.config import ConfigValidationError, ErtConfig +from ert.shared.plugins import ErtPluginContext + + +@pytest.mark.usefixtures("copy_poly_case") +def test_that_misfit_preprocessor_raises(): + with open("poly.ert", "a", encoding="utf-8") as fh: + fh.writelines("LOAD_WORKFLOW config\n") + fh.writelines("HOOK_WORKFLOW config PRE_FIRST_UPDATE\n") + with open("config", "w", encoding="utf-8") as fh: + fh.writelines("MISFIT_PREPROCESSOR") + with pytest.raises( + ConfigValidationError, + match="MISFIT_PREPROCESSOR is removed, use ANALYSIS_SET_VAR OBSERVATIONS", + ), ErtPluginContext(): + ErtConfig.from_file("poly.ert") + + +@pytest.mark.usefixtures("copy_poly_case") +def test_that_misfit_preprocessor_raises_with_config(): + with open("poly.ert", "a", encoding="utf-8") as fh: + fh.writelines("LOAD_WORKFLOW config\n") + fh.writelines("HOOK_WORKFLOW config PRE_FIRST_UPDATE\n") + with open("config", "w", encoding="utf-8") as fh: + fh.writelines("MISFIT_PREPROCESSOR my_config") + with pytest.raises( + ConfigValidationError, + match="Add multiple entries to set up multiple groups", + ), ErtPluginContext(): + ErtConfig.from_file("poly.ert") diff --git a/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-True/update_log b/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess0/update_log similarity index 100% rename from tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-True/update_log rename to tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess0/update_log diff --git a/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-False/update_log b/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess1/update_log similarity index 100% rename from tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-False/update_log rename to tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess1/update_log diff --git a/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess2/update_log b/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess2/update_log new file mode 100644 index 00000000000..54258f04be1 --- /dev/null +++ b/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess2/update_log @@ -0,0 +1,225 @@ +====================================================================================================================================================== +Time: +Parent ensemble: default_0 +Target ensemble: new_ensemble +Alpha: 3.0 +Global scaling: 1.0 +Standard cutoff: 1e-06 +Run id: id +Active observations: 210 +Deactivated observations - missing respons(es): 0 +Deactivated observations - ensemble_std > STD_CUTOFF: 0 +Deactivated observations - outlier: 0 +------------------------------------------------------------------------------------------------------------------------------------------------------ + Observed history | Simulated data | Status +------------------------------------------------------------------------------------------------------------------------------------------------------ + 1 : FOPR 0.002 +/- 0.566 (0.100 * 5.657) | 0.076 +/- 0.105 | Active + 2 : FOPR 0.008 +/- 0.566 (0.100 * 5.657) | 0.079 +/- 0.107 | Active + 3 : FOPR 0.018 +/- 0.566 (0.100 * 5.657) | 0.085 +/- 0.110 | Active + 4 : FOPR 0.032 +/- 0.566 (0.100 * 5.657) | 0.092 +/- 0.114 | Active + 5 : FOPR 0.050 +/- 0.566 (0.100 * 5.657) | 0.103 +/- 0.118 | Active + 6 : FOPR 0.071 +/- 0.566 (0.100 * 5.657) | 0.117 +/- 0.122 | Active + 7 : FOPR 0.097 +/- 0.566 (0.100 * 5.657) | 0.133 +/- 0.128 | Active + 8 : FOPR 0.126 +/- 0.566 (0.100 * 5.657) | 0.151 +/- 0.134 | Active + 9 : FOPR 0.159 +/- 0.566 (0.100 * 5.657) | 0.171 +/- 0.140 | Active + 10 : FOPR 0.194 +/- 0.566 (0.100 * 5.657) | 0.193 +/- 0.148 | Active + 11 : FOPR 0.233 +/- 0.539 (0.100 * 5.385) | 0.221 +/- 0.154 | Active + 12 : FOPR 0.274 +/- 0.539 (0.100 * 5.385) | 0.251 +/- 0.161 | Active + 13 : FOPR 0.318 +/- 0.539 (0.100 * 5.385) | 0.293 +/- 0.164 | Active + 14 : FOPR 0.363 +/- 0.539 (0.100 * 5.385) | 0.340 +/- 0.163 | Active + 15 : FOPR 0.411 +/- 0.539 (0.100 * 5.385) | 0.389 +/- 0.163 | Active + 16 : FOPR 0.460 +/- 0.539 (0.100 * 5.385) | 0.439 +/- 0.163 | Active + 17 : FOPR 0.510 +/- 0.539 (0.100 * 5.385) | 0.491 +/- 0.164 | Active + 18 : FOPR 0.561 +/- 0.566 (0.100 * 5.657) | 0.544 +/- 0.164 | Active + 19 : FOPR 0.613 +/- 0.566 (0.100 * 5.657) | 0.598 +/- 0.164 | Active + 20 : FOPR 0.666 +/- 0.566 (0.100 * 5.657) | 0.652 +/- 0.163 | Active + 21 : FOPR 0.718 +/- 0.566 (0.100 * 5.657) | 0.706 +/- 0.164 | Active + 22 : FOPR 0.770 +/- 0.332 (0.100 * 3.317) | 0.760 +/- 0.164 | Active + 23 : FOPR 0.823 +/- 0.332 (0.100 * 3.317) | 0.813 +/- 0.164 | Active + 24 : FOPR 0.875 +/- 0.332 (0.100 * 3.317) | 0.864 +/- 0.164 | Active + 25 : FOPR 0.926 +/- 0.332 (0.100 * 3.317) | 0.914 +/- 0.165 | Active + 26 : FOPR 0.977 +/- 0.332 (0.100 * 3.317) | 0.963 +/- 0.165 | Active + 27 : FOPR 1.027 +/- 0.341 (0.103 * 3.317) | 1.008 +/- 0.167 | Active + 28 : FOPR 1.075 +/- 0.357 (0.108 * 3.317) | 1.049 +/- 0.169 | Active + 29 : FOPR 1.122 +/- 0.372 (0.112 * 3.317) | 1.089 +/- 0.171 | Active + 30 : FOPR 1.166 +/- 0.387 (0.117 * 3.317) | 1.126 +/- 0.172 | Active + 31 : FOPR 1.208 +/- 0.400 (0.121 * 3.317) | 1.160 +/- 0.174 | Active + 32 : FOPR 1.247 +/- 0.414 (0.125 * 3.317) | 1.192 +/- 0.175 | Active + 33 : FOPR 1.284 +/- 0.257 (0.128 * 2.000) | 1.219 +/- 0.175 | Active + 34 : FOPR 1.317 +/- 0.263 (0.132 * 2.000) | 1.243 +/- 0.175 | Active + 35 : FOPR 1.346 +/- 0.269 (0.135 * 2.000) | 1.263 +/- 0.176 | Active + 36 : FOPR 1.371 +/- 0.274 (0.137 * 2.000) | 1.279 +/- 0.176 | Active + 37 : FOPR 1.392 +/- 0.462 (0.139 * 3.317) | 1.292 +/- 0.177 | Active + 38 : FOPR 1.407 +/- 0.467 (0.141 * 3.317) | 1.300 +/- 0.179 | Active + 39 : FOPR 1.418 +/- 0.470 (0.142 * 3.317) | 1.303 +/- 0.181 | Active + 40 : FOPR 1.422 +/- 0.472 (0.142 * 3.317) | 1.303 +/- 0.183 | Active + 41 : FOPR 1.424 +/- 0.472 (0.142 * 3.317) | 1.299 +/- 0.185 | Active + 42 : FOPR 1.425 +/- 0.473 (0.143 * 3.317) | 1.294 +/- 0.187 | Active + 43 : FOPR 1.427 +/- 0.473 (0.143 * 3.317) | 1.290 +/- 0.188 | Active + 44 : FOPR 1.430 +/- 0.474 (0.143 * 3.317) | 1.283 +/- 0.189 | Active + 45 : FOPR 1.433 +/- 0.475 (0.143 * 3.317) | 1.275 +/- 0.187 | Active + 46 : FOPR 1.438 +/- 0.477 (0.144 * 3.317) | 1.263 +/- 0.186 | Active + 47 : FOPR 1.443 +/- 0.479 (0.144 * 3.317) | 1.250 +/- 0.186 | Active + 48 : FOPR 1.449 +/- 0.435 (0.145 * 3.000) | 1.237 +/- 0.186 | Active + 49 : FOPR 1.455 +/- 0.436 (0.145 * 3.000) | 1.222 +/- 0.185 | Active + 50 : FOPR 1.460 +/- 0.438 (0.146 * 3.000) | 1.207 +/- 0.184 | Active + 51 : FOPR 1.466 +/- 0.655 (0.147 * 4.472) | 1.190 +/- 0.184 | Active + 52 : FOPR 1.470 +/- 0.658 (0.147 * 4.472) | 1.170 +/- 0.183 | Active + 53 : FOPR 1.474 +/- 0.659 (0.147 * 4.472) | 1.146 +/- 0.183 | Active + 54 : FOPR 1.475 +/- 0.660 (0.148 * 4.472) | 1.122 +/- 0.184 | Active + 55 : FOPR 1.474 +/- 0.442 (0.147 * 3.000) | 1.098 +/- 0.188 | Active + 56 : FOPR 1.469 +/- 0.657 (0.147 * 4.472) | 1.077 +/- 0.192 | Active + 57 : FOPR 1.461 +/- 0.653 (0.146 * 4.472) | 1.053 +/- 0.194 | Active + 58 : FOPR 1.449 +/- 0.435 (0.145 * 3.000) | 1.027 +/- 0.196 | Active + 59 : FOPR 1.436 +/- 0.642 (0.144 * 4.472) | 1.002 +/- 0.196 | Active + 60 : FOPR 1.421 +/- 0.636 (0.142 * 4.472) | 0.975 +/- 0.197 | Active + 61 : FOPR 1.403 +/- 0.421 (0.140 * 3.000) | 0.947 +/- 0.200 | Active + 62 : FOPR 1.379 +/- 0.617 (0.138 * 4.472) | 0.928 +/- 0.200 | Active + 63 : FOPR 1.353 +/- 0.605 (0.135 * 4.472) | 0.902 +/- 0.203 | Active + 64 : FOPR 1.324 +/- 0.592 (0.132 * 4.472) | 0.878 +/- 0.206 | Active + 65 : FOPR 1.297 +/- 0.580 (0.130 * 4.472) | 0.851 +/- 0.210 | Active + 66 : FOPR 1.270 +/- 0.381 (0.127 * 3.000) | 0.824 +/- 0.213 | Active + 67 : FOPR 1.243 +/- 0.373 (0.124 * 3.000) | 0.801 +/- 0.215 | Active + 68 : FOPR 1.216 +/- 0.365 (0.122 * 3.000) | 0.781 +/- 0.216 | Active + 69 : FOPR 1.189 +/- 0.532 (0.119 * 4.472) | 0.762 +/- 0.216 | Active + 70 : FOPR 1.161 +/- 0.519 (0.116 * 4.472) | 0.744 +/- 0.215 | Active + 71 : FOPR 1.134 +/- 0.507 (0.113 * 4.472) | 0.725 +/- 0.212 | Active + 72 : FOPR 1.112 +/- 0.497 (0.111 * 4.472) | 0.704 +/- 0.206 | Active + 73 : FOPR 1.091 +/- 0.488 (0.109 * 4.472) | 0.683 +/- 0.200 | Active + 74 : FOPR 1.072 +/- 0.479 (0.107 * 4.472) | 0.661 +/- 0.194 | Active + 75 : FOPR 1.053 +/- 0.471 (0.105 * 4.472) | 0.640 +/- 0.189 | Active + 76 : FOPR 1.033 +/- 0.462 (0.103 * 4.472) | 0.619 +/- 0.185 | Active + 77 : FOPR 1.013 +/- 0.545 (0.101 * 5.385) | 0.597 +/- 0.181 | Active + 78 : FOPR 0.995 +/- 0.539 (0.100 * 5.385) | 0.576 +/- 0.176 | Active + 79 : FOPR 0.975 +/- 0.539 (0.100 * 5.385) | 0.555 +/- 0.171 | Active + 80 : FOPR 0.956 +/- 0.539 (0.100 * 5.385) | 0.533 +/- 0.171 | Active + 81 : FOPR 0.936 +/- 0.539 (0.100 * 5.385) | 0.513 +/- 0.171 | Active + 82 : FOPR 0.916 +/- 0.539 (0.100 * 5.385) | 0.494 +/- 0.170 | Active + 83 : FOPR 0.893 +/- 0.539 (0.100 * 5.385) | 0.477 +/- 0.169 | Active + 84 : FOPR 0.869 +/- 0.539 (0.100 * 5.385) | 0.462 +/- 0.169 | Active + 85 : FOPR 0.842 +/- 0.539 (0.100 * 5.385) | 0.447 +/- 0.170 | Active + 86 : FOPR 0.812 +/- 0.539 (0.100 * 5.385) | 0.432 +/- 0.170 | Active + 87 : FOPR 0.779 +/- 0.539 (0.100 * 5.385) | 0.417 +/- 0.171 | Active + 88 : FOPR 0.742 +/- 0.539 (0.100 * 5.385) | 0.403 +/- 0.170 | Active + 89 : FOPR 0.702 +/- 0.539 (0.100 * 5.385) | 0.389 +/- 0.171 | Active + 90 : FOPR 0.661 +/- 0.539 (0.100 * 5.385) | 0.379 +/- 0.171 | Active + 91 : FOPR 0.619 +/- 0.539 (0.100 * 5.385) | 0.370 +/- 0.171 | Active + 92 : FOPR 0.578 +/- 0.539 (0.100 * 5.385) | 0.361 +/- 0.169 | Active + 93 : FOPR 0.540 +/- 0.539 (0.100 * 5.385) | 0.354 +/- 0.168 | Active + 94 : FOPR 0.505 +/- 0.539 (0.100 * 5.385) | 0.349 +/- 0.166 | Active + 95 : FOPR 0.475 +/- 0.539 (0.100 * 5.385) | 0.344 +/- 0.165 | Active + 96 : FOPR 0.450 +/- 0.539 (0.100 * 5.385) | 0.340 +/- 0.165 | Active + 97 : FOPR 0.431 +/- 0.539 (0.100 * 5.385) | 0.344 +/- 0.168 | Active + 98 : FOPR 0.419 +/- 0.539 (0.100 * 5.385) | 0.350 +/- 0.171 | Active + 99 : FOPR 0.410 +/- 0.539 (0.100 * 5.385) | 0.349 +/- 0.171 | Active + 100 : FOPR 0.406 +/- 0.539 (0.100 * 5.385) | 0.350 +/- 0.173 | Active + 101 : FOPR 0.404 +/- 0.539 (0.100 * 5.385) | 0.347 +/- 0.171 | Active + 102 : FOPR 0.399 +/- 0.539 (0.100 * 5.385) | 0.344 +/- 0.168 | Active + 103 : FOPR 0.389 +/- 0.539 (0.100 * 5.385) | 0.346 +/- 0.165 | Active + 104 : FOPR 0.374 +/- 0.539 (0.100 * 5.385) | 0.348 +/- 0.162 | Active + 105 : FOPR 0.355 +/- 0.539 (0.100 * 5.385) | 0.350 +/- 0.156 | Active + 106 : FOPR 0.332 +/- 0.173 (0.100 * 1.732) | 0.350 +/- 0.148 | Active + 107 : FOPR 0.306 +/- 0.173 (0.100 * 1.732) | 0.349 +/- 0.140 | Active + 108 : FOPR 0.282 +/- 0.173 (0.100 * 1.732) | 0.348 +/- 0.133 | Active + 109 : FOPR 0.264 +/- 0.458 (0.100 * 4.583) | 0.344 +/- 0.125 | Active + 110 : FOPR 0.248 +/- 0.458 (0.100 * 4.583) | 0.340 +/- 0.118 | Active + 111 : FOPR 0.233 +/- 0.458 (0.100 * 4.583) | 0.337 +/- 0.114 | Active + 112 : FOPR 0.219 +/- 0.458 (0.100 * 4.583) | 0.335 +/- 0.112 | Active + 113 : FOPR 0.205 +/- 0.458 (0.100 * 4.583) | 0.334 +/- 0.110 | Active + 114 : FOPR 0.192 +/- 0.458 (0.100 * 4.583) | 0.333 +/- 0.110 | Active + 115 : FOPR 0.180 +/- 0.458 (0.100 * 4.583) | 0.332 +/- 0.109 | Active + 116 : FOPR 0.169 +/- 0.458 (0.100 * 4.583) | 0.330 +/- 0.107 | Active + 117 : FOPR 0.160 +/- 0.458 (0.100 * 4.583) | 0.327 +/- 0.106 | Active + 118 : FOPR 0.152 +/- 0.458 (0.100 * 4.583) | 0.323 +/- 0.105 | Active + 119 : FOPR 0.146 +/- 0.458 (0.100 * 4.583) | 0.317 +/- 0.102 | Active + 120 : FOPR 0.141 +/- 0.458 (0.100 * 4.583) | 0.310 +/- 0.100 | Active + 121 : FOPR 0.137 +/- 0.458 (0.100 * 4.583) | 0.303 +/- 0.098 | Active + 122 : FOPR 0.134 +/- 0.458 (0.100 * 4.583) | 0.296 +/- 0.096 | Active + 123 : FOPR 0.130 +/- 0.458 (0.100 * 4.583) | 0.290 +/- 0.094 | Active + 124 : FOPR 0.127 +/- 0.458 (0.100 * 4.583) | 0.284 +/- 0.092 | Active + 125 : FOPR 0.123 +/- 0.458 (0.100 * 4.583) | 0.279 +/- 0.090 | Active + 126 : FOPR 0.119 +/- 0.458 (0.100 * 4.583) | 0.275 +/- 0.088 | Active + 127 : FOPR 0.120 +/- 0.458 (0.100 * 4.583) | 0.270 +/- 0.085 | Active + 128 : FOPR 0.128 +/- 0.458 (0.100 * 4.583) | 0.266 +/- 0.081 | Active + 129 : FOPR 0.136 +/- 0.458 (0.100 * 4.583) | 0.263 +/- 0.077 | Active + 130 : FOPR 0.143 +/- 0.100 | 0.261 +/- 0.073 | Active + 131 : FOPR 0.150 +/- 0.200 (0.100 * 2.000) | 0.258 +/- 0.069 | Active + 132 : FOPR 0.155 +/- 0.200 (0.100 * 2.000) | 0.256 +/- 0.066 | Active + 133 : FOPR 0.159 +/- 0.200 (0.100 * 2.000) | 0.254 +/- 0.063 | Active + 134 : FOPR 0.163 +/- 0.200 (0.100 * 2.000) | 0.251 +/- 0.061 | Active + 135 : FOPR 0.166 +/- 0.346 (0.100 * 3.464) | 0.248 +/- 0.059 | Active + 136 : FOPR 0.167 +/- 0.346 (0.100 * 3.464) | 0.247 +/- 0.058 | Active + 137 : FOPR 0.167 +/- 0.346 (0.100 * 3.464) | 0.245 +/- 0.058 | Active + 138 : FOPR 0.166 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.058 | Active + 139 : FOPR 0.165 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.058 | Active + 140 : FOPR 0.164 +/- 0.346 (0.100 * 3.464) | 0.242 +/- 0.059 | Active + 141 : FOPR 0.165 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.059 | Active + 142 : FOPR 0.169 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.059 | Active + 143 : FOPR 0.176 +/- 0.346 (0.100 * 3.464) | 0.242 +/- 0.058 | Active + 144 : FOPR 0.186 +/- 0.346 (0.100 * 3.464) | 0.242 +/- 0.057 | Active + 145 : FOPR 0.197 +/- 0.346 (0.100 * 3.464) | 0.241 +/- 0.057 | Active + 146 : FOPR 0.211 +/- 0.346 (0.100 * 3.464) | 0.239 +/- 0.058 | Active + 147 : FOPR 0.225 +/- 0.100 | 0.238 +/- 0.059 | Active + 148 : FOPR 0.239 +/- 0.141 (0.100 * 1.414) | 0.238 +/- 0.061 | Active + 149 : FOPR 0.252 +/- 0.141 (0.100 * 1.414) | 0.238 +/- 0.061 | Active + 150 : FOPR 0.264 +/- 0.224 (0.100 * 2.236) | 0.237 +/- 0.061 | Active + 151 : FOPR 0.275 +/- 0.224 (0.100 * 2.236) | 0.236 +/- 0.062 | Active + 152 : FOPR 0.285 +/- 0.224 (0.100 * 2.236) | 0.236 +/- 0.064 | Active + 153 : FOPR 0.295 +/- 0.224 (0.100 * 2.236) | 0.236 +/- 0.066 | Active + 154 : FOPR 0.303 +/- 0.224 (0.100 * 2.236) | 0.235 +/- 0.069 | Active + 155 : FOPR 0.309 +/- 0.245 (0.100 * 2.449) | 0.234 +/- 0.072 | Active + 156 : FOPR 0.312 +/- 0.245 (0.100 * 2.449) | 0.231 +/- 0.074 | Active + 157 : FOPR 0.313 +/- 0.245 (0.100 * 2.449) | 0.229 +/- 0.076 | Active + 158 : FOPR 0.310 +/- 0.245 (0.100 * 2.449) | 0.225 +/- 0.077 | Active + 159 : FOPR 0.304 +/- 0.245 (0.100 * 2.449) | 0.220 +/- 0.078 | Active + 160 : FOPR 0.296 +/- 0.245 (0.100 * 2.449) | 0.215 +/- 0.078 | Active + 161 : FOPR 0.286 +/- 0.566 (0.100 * 5.657) | 0.209 +/- 0.078 | Active + 162 : FOPR 0.275 +/- 0.566 (0.100 * 5.657) | 0.202 +/- 0.078 | Active + 163 : FOPR 0.264 +/- 0.566 (0.100 * 5.657) | 0.195 +/- 0.079 | Active + 164 : FOPR 0.253 +/- 0.566 (0.100 * 5.657) | 0.188 +/- 0.079 | Active + 165 : FOPR 0.241 +/- 0.566 (0.100 * 5.657) | 0.181 +/- 0.080 | Active + 166 : FOPR 0.230 +/- 0.566 (0.100 * 5.657) | 0.173 +/- 0.082 | Active + 167 : FOPR 0.218 +/- 0.566 (0.100 * 5.657) | 0.167 +/- 0.084 | Active + 168 : FOPR 0.207 +/- 0.566 (0.100 * 5.657) | 0.161 +/- 0.086 | Active + 169 : FOPR 0.197 +/- 0.566 (0.100 * 5.657) | 0.155 +/- 0.088 | Active + 170 : FOPR 0.187 +/- 0.566 (0.100 * 5.657) | 0.149 +/- 0.090 | Active + 171 : FOPR 0.178 +/- 0.566 (0.100 * 5.657) | 0.143 +/- 0.092 | Active + 172 : FOPR 0.168 +/- 0.539 (0.100 * 5.385) | 0.138 +/- 0.094 | Active + 173 : FOPR 0.159 +/- 0.539 (0.100 * 5.385) | 0.132 +/- 0.095 | Active + 174 : FOPR 0.150 +/- 0.539 (0.100 * 5.385) | 0.128 +/- 0.096 | Active + 175 : FOPR 0.141 +/- 0.539 (0.100 * 5.385) | 0.124 +/- 0.096 | Active + 176 : FOPR 0.134 +/- 0.539 (0.100 * 5.385) | 0.120 +/- 0.096 | Active + 177 : FOPR 0.127 +/- 0.539 (0.100 * 5.385) | 0.116 +/- 0.097 | Active + 178 : FOPR 0.120 +/- 0.539 (0.100 * 5.385) | 0.113 +/- 0.097 | Active + 179 : FOPR 0.115 +/- 0.539 (0.100 * 5.385) | 0.110 +/- 0.096 | Active + 180 : FOPR 0.111 +/- 0.539 (0.100 * 5.385) | 0.107 +/- 0.096 | Active + 181 : FOPR 0.107 +/- 0.539 (0.100 * 5.385) | 0.105 +/- 0.095 | Active + 182 : FOPR 0.101 +/- 0.539 (0.100 * 5.385) | 0.102 +/- 0.095 | Active + 183 : FOPR 0.096 +/- 0.539 (0.100 * 5.385) | 0.100 +/- 0.095 | Active + 184 : FOPR 0.089 +/- 0.539 (0.100 * 5.385) | 0.097 +/- 0.096 | Active + 185 : FOPR 0.081 +/- 0.539 (0.100 * 5.385) | 0.094 +/- 0.096 | Active + 186 : FOPR 0.073 +/- 0.539 (0.100 * 5.385) | 0.092 +/- 0.098 | Active + 187 : FOPR 0.065 +/- 0.539 (0.100 * 5.385) | 0.090 +/- 0.099 | Active + 188 : FOPR 0.058 +/- 0.539 (0.100 * 5.385) | 0.088 +/- 0.101 | Active + 189 : FOPR 0.050 +/- 0.539 (0.100 * 5.385) | 0.087 +/- 0.103 | Active + 190 : FOPR 0.044 +/- 0.539 (0.100 * 5.385) | 0.086 +/- 0.104 | Active + 191 : FOPR 0.038 +/- 0.539 (0.100 * 5.385) | 0.085 +/- 0.106 | Active + 192 : FOPR 0.033 +/- 0.539 (0.100 * 5.385) | 0.084 +/- 0.107 | Active + 193 : FOPR 0.029 +/- 0.539 (0.100 * 5.385) | 0.084 +/- 0.108 | Active + 194 : FOPR 0.026 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.108 | Active + 195 : FOPR 0.024 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.109 | Active + 196 : FOPR 0.022 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.109 | Active + 197 : FOPR 0.021 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.109 | Active + 198 : FOPR 0.020 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.110 | Active + 199 : FOPR 0.020 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.110 | Active + 200 : FOPR 0.020 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.110 | Active + 201 : WOPR_OP1_108 0.300 +/- 0.075 | 0.257 +/- 0.099 | Active + 202 : WOPR_OP1_144 0.200 +/- 0.035 | 0.183 +/- 0.106 | Active + 203 : WOPR_OP1_190 0.015 +/- 0.010 | 0.042 +/- 0.041 | Active + 204 : WOPR_OP1_36 0.700 +/- 0.070 | 0.650 +/- 0.084 | Active + 205 : WOPR_OP1_72 0.500 +/- 0.050 | 0.405 +/- 0.170 | Active + 206 : WOPR_OP1_9 0.100 +/- 0.050 | 0.096 +/- 0.060 | Active + 207 : WPR_DIFF_1 0.000 +/- 0.100 | -0.011 +/- 0.060 | Active + 208 : WPR_DIFF_1 0.100 +/- 0.200 | 0.081 +/- 0.126 | Active + 209 : WPR_DIFF_1 0.200 +/- 0.150 | 0.073 +/- 0.130 | Active + 210 : WPR_DIFF_1 0.000 +/- 0.050 | 0.127 +/- 0.125 | Active diff --git a/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess3/update_log b/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess3/update_log new file mode 100644 index 00000000000..42b44a37376 --- /dev/null +++ b/tests/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess3/update_log @@ -0,0 +1,225 @@ +====================================================================================================================================================== +Time: +Parent ensemble: default_0 +Target ensemble: new_ensemble +Alpha: 3.0 +Global scaling: 1.0 +Standard cutoff: 1e-06 +Run id: id +Active observations: 210 +Deactivated observations - missing respons(es): 0 +Deactivated observations - ensemble_std > STD_CUTOFF: 0 +Deactivated observations - outlier: 0 +------------------------------------------------------------------------------------------------------------------------------------------------------ + Observed history | Simulated data | Status +------------------------------------------------------------------------------------------------------------------------------------------------------ + 1 : FOPR 0.002 +/- 0.566 (0.100 * 5.657) | 0.076 +/- 0.105 | Active + 2 : FOPR 0.008 +/- 0.566 (0.100 * 5.657) | 0.079 +/- 0.107 | Active + 3 : FOPR 0.018 +/- 0.566 (0.100 * 5.657) | 0.085 +/- 0.110 | Active + 4 : FOPR 0.032 +/- 0.566 (0.100 * 5.657) | 0.092 +/- 0.114 | Active + 5 : FOPR 0.050 +/- 0.566 (0.100 * 5.657) | 0.103 +/- 0.118 | Active + 6 : FOPR 0.071 +/- 0.566 (0.100 * 5.657) | 0.117 +/- 0.122 | Active + 7 : FOPR 0.097 +/- 0.566 (0.100 * 5.657) | 0.133 +/- 0.128 | Active + 8 : FOPR 0.126 +/- 0.566 (0.100 * 5.657) | 0.151 +/- 0.134 | Active + 9 : FOPR 0.159 +/- 0.566 (0.100 * 5.657) | 0.171 +/- 0.140 | Active + 10 : FOPR 0.194 +/- 0.566 (0.100 * 5.657) | 0.193 +/- 0.148 | Active + 11 : FOPR 0.233 +/- 0.539 (0.100 * 5.385) | 0.221 +/- 0.154 | Active + 12 : FOPR 0.274 +/- 0.539 (0.100 * 5.385) | 0.251 +/- 0.161 | Active + 13 : FOPR 0.318 +/- 0.539 (0.100 * 5.385) | 0.293 +/- 0.164 | Active + 14 : FOPR 0.363 +/- 0.539 (0.100 * 5.385) | 0.340 +/- 0.163 | Active + 15 : FOPR 0.411 +/- 0.539 (0.100 * 5.385) | 0.389 +/- 0.163 | Active + 16 : FOPR 0.460 +/- 0.539 (0.100 * 5.385) | 0.439 +/- 0.163 | Active + 17 : FOPR 0.510 +/- 0.539 (0.100 * 5.385) | 0.491 +/- 0.164 | Active + 18 : FOPR 0.561 +/- 0.566 (0.100 * 5.657) | 0.544 +/- 0.164 | Active + 19 : FOPR 0.613 +/- 0.566 (0.100 * 5.657) | 0.598 +/- 0.164 | Active + 20 : FOPR 0.666 +/- 0.566 (0.100 * 5.657) | 0.652 +/- 0.163 | Active + 21 : FOPR 0.718 +/- 0.566 (0.100 * 5.657) | 0.706 +/- 0.164 | Active + 22 : FOPR 0.770 +/- 0.332 (0.100 * 3.317) | 0.760 +/- 0.164 | Active + 23 : FOPR 0.823 +/- 0.332 (0.100 * 3.317) | 0.813 +/- 0.164 | Active + 24 : FOPR 0.875 +/- 0.332 (0.100 * 3.317) | 0.864 +/- 0.164 | Active + 25 : FOPR 0.926 +/- 0.332 (0.100 * 3.317) | 0.914 +/- 0.165 | Active + 26 : FOPR 0.977 +/- 0.332 (0.100 * 3.317) | 0.963 +/- 0.165 | Active + 27 : FOPR 1.027 +/- 0.341 (0.103 * 3.317) | 1.008 +/- 0.167 | Active + 28 : FOPR 1.075 +/- 0.357 (0.108 * 3.317) | 1.049 +/- 0.169 | Active + 29 : FOPR 1.122 +/- 0.372 (0.112 * 3.317) | 1.089 +/- 0.171 | Active + 30 : FOPR 1.166 +/- 0.387 (0.117 * 3.317) | 1.126 +/- 0.172 | Active + 31 : FOPR 1.208 +/- 0.400 (0.121 * 3.317) | 1.160 +/- 0.174 | Active + 32 : FOPR 1.247 +/- 0.414 (0.125 * 3.317) | 1.192 +/- 0.175 | Active + 33 : FOPR 1.284 +/- 0.257 (0.128 * 2.000) | 1.219 +/- 0.175 | Active + 34 : FOPR 1.317 +/- 0.263 (0.132 * 2.000) | 1.243 +/- 0.175 | Active + 35 : FOPR 1.346 +/- 0.269 (0.135 * 2.000) | 1.263 +/- 0.176 | Active + 36 : FOPR 1.371 +/- 0.274 (0.137 * 2.000) | 1.279 +/- 0.176 | Active + 37 : FOPR 1.392 +/- 0.462 (0.139 * 3.317) | 1.292 +/- 0.177 | Active + 38 : FOPR 1.407 +/- 0.467 (0.141 * 3.317) | 1.300 +/- 0.179 | Active + 39 : FOPR 1.418 +/- 0.470 (0.142 * 3.317) | 1.303 +/- 0.181 | Active + 40 : FOPR 1.422 +/- 0.472 (0.142 * 3.317) | 1.303 +/- 0.183 | Active + 41 : FOPR 1.424 +/- 0.472 (0.142 * 3.317) | 1.299 +/- 0.185 | Active + 42 : FOPR 1.425 +/- 0.473 (0.143 * 3.317) | 1.294 +/- 0.187 | Active + 43 : FOPR 1.427 +/- 0.473 (0.143 * 3.317) | 1.290 +/- 0.188 | Active + 44 : FOPR 1.430 +/- 0.474 (0.143 * 3.317) | 1.283 +/- 0.189 | Active + 45 : FOPR 1.433 +/- 0.475 (0.143 * 3.317) | 1.275 +/- 0.187 | Active + 46 : FOPR 1.438 +/- 0.477 (0.144 * 3.317) | 1.263 +/- 0.186 | Active + 47 : FOPR 1.443 +/- 0.479 (0.144 * 3.317) | 1.250 +/- 0.186 | Active + 48 : FOPR 1.449 +/- 0.435 (0.145 * 3.000) | 1.237 +/- 0.186 | Active + 49 : FOPR 1.455 +/- 0.436 (0.145 * 3.000) | 1.222 +/- 0.185 | Active + 50 : FOPR 1.460 +/- 0.438 (0.146 * 3.000) | 1.207 +/- 0.184 | Active + 51 : FOPR 1.466 +/- 0.655 (0.147 * 4.472) | 1.190 +/- 0.184 | Active + 52 : FOPR 1.470 +/- 0.658 (0.147 * 4.472) | 1.170 +/- 0.183 | Active + 53 : FOPR 1.474 +/- 0.659 (0.147 * 4.472) | 1.146 +/- 0.183 | Active + 54 : FOPR 1.475 +/- 0.660 (0.148 * 4.472) | 1.122 +/- 0.184 | Active + 55 : FOPR 1.474 +/- 0.442 (0.147 * 3.000) | 1.098 +/- 0.188 | Active + 56 : FOPR 1.469 +/- 0.657 (0.147 * 4.472) | 1.077 +/- 0.192 | Active + 57 : FOPR 1.461 +/- 0.653 (0.146 * 4.472) | 1.053 +/- 0.194 | Active + 58 : FOPR 1.449 +/- 0.435 (0.145 * 3.000) | 1.027 +/- 0.196 | Active + 59 : FOPR 1.436 +/- 0.642 (0.144 * 4.472) | 1.002 +/- 0.196 | Active + 60 : FOPR 1.421 +/- 0.636 (0.142 * 4.472) | 0.975 +/- 0.197 | Active + 61 : FOPR 1.403 +/- 0.421 (0.140 * 3.000) | 0.947 +/- 0.200 | Active + 62 : FOPR 1.379 +/- 0.617 (0.138 * 4.472) | 0.928 +/- 0.200 | Active + 63 : FOPR 1.353 +/- 0.605 (0.135 * 4.472) | 0.902 +/- 0.203 | Active + 64 : FOPR 1.324 +/- 0.592 (0.132 * 4.472) | 0.878 +/- 0.206 | Active + 65 : FOPR 1.297 +/- 0.580 (0.130 * 4.472) | 0.851 +/- 0.210 | Active + 66 : FOPR 1.270 +/- 0.381 (0.127 * 3.000) | 0.824 +/- 0.213 | Active + 67 : FOPR 1.243 +/- 0.373 (0.124 * 3.000) | 0.801 +/- 0.215 | Active + 68 : FOPR 1.216 +/- 0.365 (0.122 * 3.000) | 0.781 +/- 0.216 | Active + 69 : FOPR 1.189 +/- 0.532 (0.119 * 4.472) | 0.762 +/- 0.216 | Active + 70 : FOPR 1.161 +/- 0.519 (0.116 * 4.472) | 0.744 +/- 0.215 | Active + 71 : FOPR 1.134 +/- 0.507 (0.113 * 4.472) | 0.725 +/- 0.212 | Active + 72 : FOPR 1.112 +/- 0.497 (0.111 * 4.472) | 0.704 +/- 0.206 | Active + 73 : FOPR 1.091 +/- 0.488 (0.109 * 4.472) | 0.683 +/- 0.200 | Active + 74 : FOPR 1.072 +/- 0.479 (0.107 * 4.472) | 0.661 +/- 0.194 | Active + 75 : FOPR 1.053 +/- 0.471 (0.105 * 4.472) | 0.640 +/- 0.189 | Active + 76 : FOPR 1.033 +/- 0.462 (0.103 * 4.472) | 0.619 +/- 0.185 | Active + 77 : FOPR 1.013 +/- 0.545 (0.101 * 5.385) | 0.597 +/- 0.181 | Active + 78 : FOPR 0.995 +/- 0.539 (0.100 * 5.385) | 0.576 +/- 0.176 | Active + 79 : FOPR 0.975 +/- 0.539 (0.100 * 5.385) | 0.555 +/- 0.171 | Active + 80 : FOPR 0.956 +/- 0.539 (0.100 * 5.385) | 0.533 +/- 0.171 | Active + 81 : FOPR 0.936 +/- 0.539 (0.100 * 5.385) | 0.513 +/- 0.171 | Active + 82 : FOPR 0.916 +/- 0.539 (0.100 * 5.385) | 0.494 +/- 0.170 | Active + 83 : FOPR 0.893 +/- 0.539 (0.100 * 5.385) | 0.477 +/- 0.169 | Active + 84 : FOPR 0.869 +/- 0.539 (0.100 * 5.385) | 0.462 +/- 0.169 | Active + 85 : FOPR 0.842 +/- 0.539 (0.100 * 5.385) | 0.447 +/- 0.170 | Active + 86 : FOPR 0.812 +/- 0.539 (0.100 * 5.385) | 0.432 +/- 0.170 | Active + 87 : FOPR 0.779 +/- 0.539 (0.100 * 5.385) | 0.417 +/- 0.171 | Active + 88 : FOPR 0.742 +/- 0.539 (0.100 * 5.385) | 0.403 +/- 0.170 | Active + 89 : FOPR 0.702 +/- 0.539 (0.100 * 5.385) | 0.389 +/- 0.171 | Active + 90 : FOPR 0.661 +/- 0.539 (0.100 * 5.385) | 0.379 +/- 0.171 | Active + 91 : FOPR 0.619 +/- 0.539 (0.100 * 5.385) | 0.370 +/- 0.171 | Active + 92 : FOPR 0.578 +/- 0.539 (0.100 * 5.385) | 0.361 +/- 0.169 | Active + 93 : FOPR 0.540 +/- 0.539 (0.100 * 5.385) | 0.354 +/- 0.168 | Active + 94 : FOPR 0.505 +/- 0.539 (0.100 * 5.385) | 0.349 +/- 0.166 | Active + 95 : FOPR 0.475 +/- 0.539 (0.100 * 5.385) | 0.344 +/- 0.165 | Active + 96 : FOPR 0.450 +/- 0.539 (0.100 * 5.385) | 0.340 +/- 0.165 | Active + 97 : FOPR 0.431 +/- 0.539 (0.100 * 5.385) | 0.344 +/- 0.168 | Active + 98 : FOPR 0.419 +/- 0.539 (0.100 * 5.385) | 0.350 +/- 0.171 | Active + 99 : FOPR 0.410 +/- 0.539 (0.100 * 5.385) | 0.349 +/- 0.171 | Active + 100 : FOPR 0.406 +/- 0.539 (0.100 * 5.385) | 0.350 +/- 0.173 | Active + 101 : FOPR 0.404 +/- 0.539 (0.100 * 5.385) | 0.347 +/- 0.171 | Active + 102 : FOPR 0.399 +/- 0.539 (0.100 * 5.385) | 0.344 +/- 0.168 | Active + 103 : FOPR 0.389 +/- 0.539 (0.100 * 5.385) | 0.346 +/- 0.165 | Active + 104 : FOPR 0.374 +/- 0.539 (0.100 * 5.385) | 0.348 +/- 0.162 | Active + 105 : FOPR 0.355 +/- 0.539 (0.100 * 5.385) | 0.350 +/- 0.156 | Active + 106 : FOPR 0.332 +/- 0.173 (0.100 * 1.732) | 0.350 +/- 0.148 | Active + 107 : FOPR 0.306 +/- 0.173 (0.100 * 1.732) | 0.349 +/- 0.140 | Active + 108 : FOPR 0.282 +/- 0.173 (0.100 * 1.732) | 0.348 +/- 0.133 | Active + 109 : FOPR 0.264 +/- 0.458 (0.100 * 4.583) | 0.344 +/- 0.125 | Active + 110 : FOPR 0.248 +/- 0.458 (0.100 * 4.583) | 0.340 +/- 0.118 | Active + 111 : FOPR 0.233 +/- 0.458 (0.100 * 4.583) | 0.337 +/- 0.114 | Active + 112 : FOPR 0.219 +/- 0.458 (0.100 * 4.583) | 0.335 +/- 0.112 | Active + 113 : FOPR 0.205 +/- 0.458 (0.100 * 4.583) | 0.334 +/- 0.110 | Active + 114 : FOPR 0.192 +/- 0.458 (0.100 * 4.583) | 0.333 +/- 0.110 | Active + 115 : FOPR 0.180 +/- 0.458 (0.100 * 4.583) | 0.332 +/- 0.109 | Active + 116 : FOPR 0.169 +/- 0.458 (0.100 * 4.583) | 0.330 +/- 0.107 | Active + 117 : FOPR 0.160 +/- 0.458 (0.100 * 4.583) | 0.327 +/- 0.106 | Active + 118 : FOPR 0.152 +/- 0.458 (0.100 * 4.583) | 0.323 +/- 0.105 | Active + 119 : FOPR 0.146 +/- 0.458 (0.100 * 4.583) | 0.317 +/- 0.102 | Active + 120 : FOPR 0.141 +/- 0.458 (0.100 * 4.583) | 0.310 +/- 0.100 | Active + 121 : FOPR 0.137 +/- 0.458 (0.100 * 4.583) | 0.303 +/- 0.098 | Active + 122 : FOPR 0.134 +/- 0.458 (0.100 * 4.583) | 0.296 +/- 0.096 | Active + 123 : FOPR 0.130 +/- 0.458 (0.100 * 4.583) | 0.290 +/- 0.094 | Active + 124 : FOPR 0.127 +/- 0.458 (0.100 * 4.583) | 0.284 +/- 0.092 | Active + 125 : FOPR 0.123 +/- 0.458 (0.100 * 4.583) | 0.279 +/- 0.090 | Active + 126 : FOPR 0.119 +/- 0.458 (0.100 * 4.583) | 0.275 +/- 0.088 | Active + 127 : FOPR 0.120 +/- 0.458 (0.100 * 4.583) | 0.270 +/- 0.085 | Active + 128 : FOPR 0.128 +/- 0.458 (0.100 * 4.583) | 0.266 +/- 0.081 | Active + 129 : FOPR 0.136 +/- 0.458 (0.100 * 4.583) | 0.263 +/- 0.077 | Active + 130 : FOPR 0.143 +/- 0.100 | 0.261 +/- 0.073 | Active + 131 : FOPR 0.150 +/- 0.200 (0.100 * 2.000) | 0.258 +/- 0.069 | Active + 132 : FOPR 0.155 +/- 0.200 (0.100 * 2.000) | 0.256 +/- 0.066 | Active + 133 : FOPR 0.159 +/- 0.200 (0.100 * 2.000) | 0.254 +/- 0.063 | Active + 134 : FOPR 0.163 +/- 0.200 (0.100 * 2.000) | 0.251 +/- 0.061 | Active + 135 : FOPR 0.166 +/- 0.346 (0.100 * 3.464) | 0.248 +/- 0.059 | Active + 136 : FOPR 0.167 +/- 0.346 (0.100 * 3.464) | 0.247 +/- 0.058 | Active + 137 : FOPR 0.167 +/- 0.346 (0.100 * 3.464) | 0.245 +/- 0.058 | Active + 138 : FOPR 0.166 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.058 | Active + 139 : FOPR 0.165 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.058 | Active + 140 : FOPR 0.164 +/- 0.346 (0.100 * 3.464) | 0.242 +/- 0.059 | Active + 141 : FOPR 0.165 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.059 | Active + 142 : FOPR 0.169 +/- 0.346 (0.100 * 3.464) | 0.243 +/- 0.059 | Active + 143 : FOPR 0.176 +/- 0.346 (0.100 * 3.464) | 0.242 +/- 0.058 | Active + 144 : FOPR 0.186 +/- 0.346 (0.100 * 3.464) | 0.242 +/- 0.057 | Active + 145 : FOPR 0.197 +/- 0.346 (0.100 * 3.464) | 0.241 +/- 0.057 | Active + 146 : FOPR 0.211 +/- 0.346 (0.100 * 3.464) | 0.239 +/- 0.058 | Active + 147 : FOPR 0.225 +/- 0.100 | 0.238 +/- 0.059 | Active + 148 : FOPR 0.239 +/- 0.141 (0.100 * 1.414) | 0.238 +/- 0.061 | Active + 149 : FOPR 0.252 +/- 0.141 (0.100 * 1.414) | 0.238 +/- 0.061 | Active + 150 : FOPR 0.264 +/- 0.224 (0.100 * 2.236) | 0.237 +/- 0.061 | Active + 151 : FOPR 0.275 +/- 0.224 (0.100 * 2.236) | 0.236 +/- 0.062 | Active + 152 : FOPR 0.285 +/- 0.224 (0.100 * 2.236) | 0.236 +/- 0.064 | Active + 153 : FOPR 0.295 +/- 0.224 (0.100 * 2.236) | 0.236 +/- 0.066 | Active + 154 : FOPR 0.303 +/- 0.224 (0.100 * 2.236) | 0.235 +/- 0.069 | Active + 155 : FOPR 0.309 +/- 0.245 (0.100 * 2.449) | 0.234 +/- 0.072 | Active + 156 : FOPR 0.312 +/- 0.245 (0.100 * 2.449) | 0.231 +/- 0.074 | Active + 157 : FOPR 0.313 +/- 0.245 (0.100 * 2.449) | 0.229 +/- 0.076 | Active + 158 : FOPR 0.310 +/- 0.245 (0.100 * 2.449) | 0.225 +/- 0.077 | Active + 159 : FOPR 0.304 +/- 0.245 (0.100 * 2.449) | 0.220 +/- 0.078 | Active + 160 : FOPR 0.296 +/- 0.245 (0.100 * 2.449) | 0.215 +/- 0.078 | Active + 161 : FOPR 0.286 +/- 0.566 (0.100 * 5.657) | 0.209 +/- 0.078 | Active + 162 : FOPR 0.275 +/- 0.566 (0.100 * 5.657) | 0.202 +/- 0.078 | Active + 163 : FOPR 0.264 +/- 0.566 (0.100 * 5.657) | 0.195 +/- 0.079 | Active + 164 : FOPR 0.253 +/- 0.566 (0.100 * 5.657) | 0.188 +/- 0.079 | Active + 165 : FOPR 0.241 +/- 0.566 (0.100 * 5.657) | 0.181 +/- 0.080 | Active + 166 : FOPR 0.230 +/- 0.566 (0.100 * 5.657) | 0.173 +/- 0.082 | Active + 167 : FOPR 0.218 +/- 0.566 (0.100 * 5.657) | 0.167 +/- 0.084 | Active + 168 : FOPR 0.207 +/- 0.566 (0.100 * 5.657) | 0.161 +/- 0.086 | Active + 169 : FOPR 0.197 +/- 0.566 (0.100 * 5.657) | 0.155 +/- 0.088 | Active + 170 : FOPR 0.187 +/- 0.566 (0.100 * 5.657) | 0.149 +/- 0.090 | Active + 171 : FOPR 0.178 +/- 0.566 (0.100 * 5.657) | 0.143 +/- 0.092 | Active + 172 : FOPR 0.168 +/- 0.539 (0.100 * 5.385) | 0.138 +/- 0.094 | Active + 173 : FOPR 0.159 +/- 0.539 (0.100 * 5.385) | 0.132 +/- 0.095 | Active + 174 : FOPR 0.150 +/- 0.539 (0.100 * 5.385) | 0.128 +/- 0.096 | Active + 175 : FOPR 0.141 +/- 0.539 (0.100 * 5.385) | 0.124 +/- 0.096 | Active + 176 : FOPR 0.134 +/- 0.539 (0.100 * 5.385) | 0.120 +/- 0.096 | Active + 177 : FOPR 0.127 +/- 0.539 (0.100 * 5.385) | 0.116 +/- 0.097 | Active + 178 : FOPR 0.120 +/- 0.539 (0.100 * 5.385) | 0.113 +/- 0.097 | Active + 179 : FOPR 0.115 +/- 0.539 (0.100 * 5.385) | 0.110 +/- 0.096 | Active + 180 : FOPR 0.111 +/- 0.539 (0.100 * 5.385) | 0.107 +/- 0.096 | Active + 181 : FOPR 0.107 +/- 0.539 (0.100 * 5.385) | 0.105 +/- 0.095 | Active + 182 : FOPR 0.101 +/- 0.539 (0.100 * 5.385) | 0.102 +/- 0.095 | Active + 183 : FOPR 0.096 +/- 0.539 (0.100 * 5.385) | 0.100 +/- 0.095 | Active + 184 : FOPR 0.089 +/- 0.539 (0.100 * 5.385) | 0.097 +/- 0.096 | Active + 185 : FOPR 0.081 +/- 0.539 (0.100 * 5.385) | 0.094 +/- 0.096 | Active + 186 : FOPR 0.073 +/- 0.539 (0.100 * 5.385) | 0.092 +/- 0.098 | Active + 187 : FOPR 0.065 +/- 0.539 (0.100 * 5.385) | 0.090 +/- 0.099 | Active + 188 : FOPR 0.058 +/- 0.539 (0.100 * 5.385) | 0.088 +/- 0.101 | Active + 189 : FOPR 0.050 +/- 0.539 (0.100 * 5.385) | 0.087 +/- 0.103 | Active + 190 : FOPR 0.044 +/- 0.539 (0.100 * 5.385) | 0.086 +/- 0.104 | Active + 191 : FOPR 0.038 +/- 0.539 (0.100 * 5.385) | 0.085 +/- 0.106 | Active + 192 : FOPR 0.033 +/- 0.539 (0.100 * 5.385) | 0.084 +/- 0.107 | Active + 193 : FOPR 0.029 +/- 0.539 (0.100 * 5.385) | 0.084 +/- 0.108 | Active + 194 : FOPR 0.026 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.108 | Active + 195 : FOPR 0.024 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.109 | Active + 196 : FOPR 0.022 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.109 | Active + 197 : FOPR 0.021 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.109 | Active + 198 : FOPR 0.020 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.110 | Active + 199 : FOPR 0.020 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.110 | Active + 200 : FOPR 0.020 +/- 0.566 (0.100 * 5.657) | 0.084 +/- 0.110 | Active + 201 : WOPR_OP1_108 0.300 +/- 0.075 | 0.257 +/- 0.099 | Active + 202 : WOPR_OP1_144 0.200 +/- 0.049 (0.035 * 1.414) | 0.183 +/- 0.106 | Active + 203 : WOPR_OP1_190 0.015 +/- 0.014 (0.010 * 1.414) | 0.042 +/- 0.041 | Active + 204 : WOPR_OP1_36 0.700 +/- 0.070 | 0.650 +/- 0.084 | Active + 205 : WOPR_OP1_72 0.500 +/- 0.050 | 0.405 +/- 0.170 | Active + 206 : WOPR_OP1_9 0.100 +/- 0.050 | 0.096 +/- 0.060 | Active + 207 : WPR_DIFF_1 0.000 +/- 0.100 | -0.011 +/- 0.060 | Active + 208 : WPR_DIFF_1 0.100 +/- 0.200 | 0.081 +/- 0.126 | Active + 209 : WPR_DIFF_1 0.200 +/- 0.150 | 0.073 +/- 0.130 | Active + 210 : WPR_DIFF_1 0.000 +/- 0.050 | 0.127 +/- 0.125 | Active diff --git a/tests/unit_tests/analysis/test_es_update.py b/tests/unit_tests/analysis/test_es_update.py index c16e78453c6..c005ecedad0 100644 --- a/tests/unit_tests/analysis/test_es_update.py +++ b/tests/unit_tests/analysis/test_es_update.py @@ -19,11 +19,11 @@ from ert.analysis._es_update import ( ObservationStatus, SmootherSnapshot, - UpdateSettings, _create_temporary_parameter_storage, _save_temp_storage_to_disk, ) from ert.config import Field, GenDataConfig, GenKwConfig +from ert.config.analysis_config import UpdateSettings from ert.config.analysis_module import ESSettings, IESSettings from ert.field_utils import Shape @@ -64,7 +64,9 @@ def remove_timestamp_from_logfile(log_file: Path): fout.write(buf) -@pytest.mark.parametrize("misfit_preprocess", [True, False]) +@pytest.mark.parametrize( + "misfit_preprocess", [[["*"]], [], [["FOPR"]], [["FOPR"], ["WOPR_OP1_1*"]]] +) def test_update_report( snake_oil_case_storage, snake_oil_storage, @@ -91,7 +93,7 @@ def test_update_report( "id", list(ert_config.observations.keys()), ert_config.ensemble_config.parameters, - UpdateSettings(misfit_preprocess=misfit_preprocess), + UpdateSettings(auto_scale_observations=misfit_preprocess), ESSettings(inversion="subspace"), log_path=Path("update_log"), ) diff --git a/tests/unit_tests/config/test_analysis_config.py b/tests/unit_tests/config/test_analysis_config.py index 3c11bd11a5b..7bf48d8dcdf 100644 --- a/tests/unit_tests/config/test_analysis_config.py +++ b/tests/unit_tests/config/test_analysis_config.py @@ -208,7 +208,7 @@ def test_default_std_cutoff_is_set(): @given(st.floats(allow_nan=False, allow_infinity=False)) def test_std_cutoff_is_set_from_corresponding_key(value): assert AnalysisConfig.from_dict({ConfigKeys.STD_CUTOFF: value}).std_cutoff == value - assert AnalysisConfig(std_cutoff=value).std_cutoff == value + assert AnalysisConfig(std_cutoff=value).observation_settings.std_cutoff == value def test_default_max_runtime_is_unlimited(): @@ -313,3 +313,48 @@ def test_incorrect_variable_deprecation_warning(config, expected): } ) assert expected in [str(warning.message) for warning in all_warnings] + + +@pytest.mark.parametrize( + "config, expected", + [ + ([["OBSERVATIONS", "AUTO_SCALE", "OBS_*"]], [["OBS_*"]]), + ([["OBSERVATIONS", "AUTO_SCALE", "ONE,TWO"]], [["ONE", "TWO"]]), + ( + [ + ["OBSERVATIONS", "AUTO_SCALE", "OBS_*"], + ["OBSERVATIONS", "AUTO_SCALE", "SINGLE"], + ], + [["OBS_*"], ["SINGLE"]], + ), + ], +) +def test_misfit_configuration(config, expected): + analysis_config = AnalysisConfig.from_dict( + { + ConfigKeys.ANALYSIS_SET_VAR: config, + } + ) + assert analysis_config.observation_settings.auto_scale_observations == expected + + +@pytest.mark.parametrize( + "config, expectation", + [ + ( + [["OBSERVATIONS", "SAUTO_SCALE", "OBS_*"]], + pytest.raises(ConfigValidationError, match="Unknown variable"), + ), + ( + [["NOT_A_THING", "AUTO_SCALE", "OBS_*"]], + pytest.raises(ConfigValidationError, match="ANALYSIS_SET_VAR NOT_A_THING"), + ), + ], +) +def test_config_wrong_module(config, expectation): + with expectation: + AnalysisConfig.from_dict( + { + ConfigKeys.ANALYSIS_SET_VAR: config, + } + )