From 7a9c83d4e9b9571c9da03be5f4766fe1e667047d Mon Sep 17 00:00:00 2001 From: Wouter de Bruin Date: Mon, 13 Jul 2020 12:14:44 +0200 Subject: [PATCH 1/6] Add early check for training set definition --- src/flownet/ahm/_run_ahm.py | 4 +--- src/flownet/config_parser/_config_parser.py | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/flownet/ahm/_run_ahm.py b/src/flownet/ahm/_run_ahm.py index 0a769ac63..15005dadf 100644 --- a/src/flownet/ahm/_run_ahm.py +++ b/src/flownet/ahm/_run_ahm.py @@ -37,10 +37,8 @@ def _find_training_set_fraction( if config.flownet.training_set_end_date is not None: if config.flownet.training_set_fraction is not None: - print( + raise ValueError( "\nTraining set fraction and training set end date are both defined in config file.\n" - "The input given for training set fraction will be ignored.\n" - "The training set end date will be used to calculate the training set fraction.\n" ) if ( not schedule.get_first_date() diff --git a/src/flownet/config_parser/_config_parser.py b/src/flownet/config_parser/_config_parser.py index bb19c8a67..240896d69 100644 --- a/src/flownet/config_parser/_config_parser.py +++ b/src/flownet/config_parser/_config_parser.py @@ -515,4 +515,10 @@ def _to_abs_path(path: Optional[str]) -> str: ): raise ValueError(f"The input case {suffix} file does not exist") + if config.flownet.training_set_end_date and config.flownet.training_set_fraction: + raise ValueError( + "Ambiguous configuration input: 'training_set_fraction' and 'training_set_end_date' are " + "mutually exclusive but are currently both defined in the configuration file." + ) + return config From d3d4bbb084e32f75b39ace8747b12268cc24049d Mon Sep 17 00:00:00 2001 From: Wouter de Bruin Date: Mon, 13 Jul 2020 12:33:05 +0200 Subject: [PATCH 2/6] Remove training set fraction from norne_parameters test file --- tests/configs/norne_parameters.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/configs/norne_parameters.yml b/tests/configs/norne_parameters.yml index a103011b3..9380b3872 100644 --- a/tests/configs/norne_parameters.yml +++ b/tests/configs/norne_parameters.yml @@ -10,7 +10,6 @@ flownet: random_seed: 999 perforation_handling_strategy: bottom_point fast_pyscal: True - training_set_fraction: 0.7 # Fraction of observations (from 0 to 1) to use as training data training_set_end_date: 2005-01-31 #YYYY-MM-DD. If defined training set fraction is calculated from this date fault_tolerance: 0.1 From aae6ff7e19c2a1274bb8489e2cc48429e8795774 Mon Sep 17 00:00:00 2001 From: Wouter de Bruin Date: Mon, 13 Jul 2020 12:46:55 +0200 Subject: [PATCH 3/6] AllowNone --- src/flownet/config_parser/_config_parser.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/flownet/config_parser/_config_parser.py b/src/flownet/config_parser/_config_parser.py index 240896d69..ffeb3d92a 100644 --- a/src/flownet/config_parser/_config_parser.py +++ b/src/flownet/config_parser/_config_parser.py @@ -46,8 +46,8 @@ def create_schema(_to_abs_path) -> Dict: }, }, "cell_length": {MK.Type: types.Number}, - "training_set_end_date": {MK.Type: types.Date}, - "training_set_fraction": {MK.Type: types.Number,}, + "training_set_end_date": {MK.Type: types.Date, MK.AllowNone: True}, + "training_set_fraction": {MK.Type: types.Number, MK.AllowNone: True}, "additional_flow_nodes": {MK.Type: types.Integer, MK.Default: 100}, "additional_node_candidates": { MK.Type: types.Integer, @@ -341,7 +341,7 @@ def create_schema(_to_abs_path) -> Dict: MK.Type: types.NamedDict, MK.Content: { "scheme": {MK.Type: types.String, MK.Default: "global"}, - "datum_depth": {MK.Type: types.Number}, + "datum_depth": {MK.Type: types.Number, MK.AllowNone: True}, "datum_pressure": { MK.Type: types.NamedDict, MK.Content: { From 790d5b03b2c51eece576dee8b91eecf369715550 Mon Sep 17 00:00:00 2001 From: Wouter de Bruin Date: Mon, 13 Jul 2020 13:25:47 +0200 Subject: [PATCH 4/6] black --- src/flownet/config_parser/_config_parser.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/flownet/config_parser/_config_parser.py b/src/flownet/config_parser/_config_parser.py index ffeb3d92a..20aa51d81 100644 --- a/src/flownet/config_parser/_config_parser.py +++ b/src/flownet/config_parser/_config_parser.py @@ -47,7 +47,10 @@ def create_schema(_to_abs_path) -> Dict: }, "cell_length": {MK.Type: types.Number}, "training_set_end_date": {MK.Type: types.Date, MK.AllowNone: True}, - "training_set_fraction": {MK.Type: types.Number, MK.AllowNone: True}, + "training_set_fraction": { + MK.Type: types.Number, + MK.AllowNone: True, + }, "additional_flow_nodes": {MK.Type: types.Integer, MK.Default: 100}, "additional_node_candidates": { MK.Type: types.Integer, From 173e12ad5780f07620fc8cb0d2d7cacf62a7609f Mon Sep 17 00:00:00 2001 From: Wouter de Bruin Date: Tue, 14 Jul 2020 11:49:39 +0200 Subject: [PATCH 5/6] Review changes --- src/flownet/config_parser/_config_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flownet/config_parser/_config_parser.py b/src/flownet/config_parser/_config_parser.py index 20aa51d81..423af4c2d 100644 --- a/src/flownet/config_parser/_config_parser.py +++ b/src/flownet/config_parser/_config_parser.py @@ -521,7 +521,7 @@ def _to_abs_path(path: Optional[str]) -> str: if config.flownet.training_set_end_date and config.flownet.training_set_fraction: raise ValueError( "Ambiguous configuration input: 'training_set_fraction' and 'training_set_end_date' are " - "mutually exclusive but are currently both defined in the configuration file." + "both defined in the configuration file." ) return config From 185355c6f2cc7da84830fe4b7676e3e10c7afbaf Mon Sep 17 00:00:00 2001 From: Wouter de Bruin Date: Tue, 14 Jul 2020 11:50:51 +0200 Subject: [PATCH 6/6] Changes after review 2 --- src/flownet/ahm/_run_ahm.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/flownet/ahm/_run_ahm.py b/src/flownet/ahm/_run_ahm.py index 15005dadf..4d725903b 100644 --- a/src/flownet/ahm/_run_ahm.py +++ b/src/flownet/ahm/_run_ahm.py @@ -36,10 +36,6 @@ def _find_training_set_fraction( training_set_fraction = 1.0 if config.flownet.training_set_end_date is not None: - if config.flownet.training_set_fraction is not None: - raise ValueError( - "\nTraining set fraction and training set end date are both defined in config file.\n" - ) if ( not schedule.get_first_date() <= config.flownet.training_set_end_date