@@ -147,6 +147,12 @@ def get_specification(spec: dict) -> tuple:
147147 default_ranges = get_ranges (
148148 default_field_settings , "ranges" , "default_field_settings"
149149 )
150+ min_range_hwell = get_value (
151+ default_field_settings , "min_range_hwell" , "default_field_settings"
152+ )
153+ mult_hwell_length = get_value (
154+ default_field_settings , "mult_hwell_length" , "default_field_settings"
155+ )
150156
151157 # Optional
152158 field_settings = get_dict (local_dict , "field_settings" , kw_main , required = False )
@@ -163,6 +169,8 @@ def get_specification(spec: dict) -> tuple:
163169 ert_config_field_param_file ,
164170 rms_field_correlation_file ,
165171 default_ranges ,
172+ min_range_hwell ,
173+ mult_hwell_length ,
166174 zone_dict ,
167175 field_settings ,
168176 expand_specification ,
@@ -304,6 +312,17 @@ def get_ranges(input_dict: dict, kw: str, parent_kw: str) -> tuple:
304312 return ranges
305313
306314
315+ def get_value (input_dict : dict , kw : str , parent_kw : str ):
316+ if kw not in input_dict :
317+ raise KeyError (f"Missing keyword { kw } under keyword { parent_kw } " )
318+ value = float (input_dict [kw ])
319+ if value <= 0.0 :
320+ raise ValueError (
321+ f"Specified value for { kw } under { parent_kw } must be positive"
322+ )
323+ return value
324+
325+
307326def read_renaming_table (filename : str ) -> dict :
308327 with open (filename , "r" ) as file :
309328 all_lines = file .readlines ()
@@ -710,8 +729,8 @@ def write_localisation_obs_attributes(
710729
711730 xpos = float (obs_dict ["xpos" ])
712731 ypos = float (obs_dict ["ypos" ])
713- main_range = float (obs_dict ["xrange " ])
714- perp_range = float (obs_dict ["yrange " ])
732+ main_range = float (obs_dict ["main_range " ])
733+ perp_range = float (obs_dict ["perp_range " ])
715734 rotation_angle = float (obs_dict ["anisotropy_angle" ])
716735 content = ""
717736 content += f"{ wellname :<{max_well_name_length }} "
@@ -759,6 +778,8 @@ def create_obs_local(project, config_file):
759778 field_param_config_file ,
760779 rms_field_correlation_file ,
761780 default_ranges ,
781+ min_range_hwell ,
782+ mult_hwell_length ,
762783 zone_dict ,
763784 field_settings_spec_list ,
764785 expand_specification ,
@@ -789,7 +810,6 @@ def create_obs_local(project, config_file):
789810 defined_zone_names = get_defined_zone_names (defined_field_names , zone_dict )
790811
791812 # Set default settings for all observations initially
792- min_hlength = 100
793813 output_dict_default = {}
794814 output_dict = {}
795815 for zone_name in defined_zone_names :
@@ -798,16 +818,16 @@ def create_obs_local(project, config_file):
798818 ert_id = obs_dict ["ert_id" ]
799819 result_id = (zone_name , ert_id )
800820 obs_localisation_dict = copy .deepcopy (obs_dict )
801- obs_localisation_dict ["xrange " ] = default_ranges [0 ]
802- obs_localisation_dict ["yrange " ] = default_ranges [1 ]
821+ obs_localisation_dict ["main_range " ] = default_ranges [0 ]
822+ obs_localisation_dict ["perp_range " ] = default_ranges [1 ]
803823 obs_localisation_dict ["anisotropy_angle" ] = default_ranges [2 ]
804824 obs_localisation_dict ["summary_key" ] = obs_dict ["KEY" ]
805- if obs_localisation_dict ["hlength" ] > min_hlength :
825+ if obs_localisation_dict ["hlength" ] > min_range_hwell :
806826 well_path_angle = obs_localisation_dict ["well_path_angle" ]
807827 obs_localisation_dict ["anisotropy_angle" ] = well_path_angle
808- obs_localisation_dict ["xrange " ] = max (
828+ obs_localisation_dict ["main_range " ] = max (
809829 obs_localisation_dict ["hlength" ],
810- 1.5 * obs_localisation_dict ["xrange " ],
830+ mult_hwell_length * obs_localisation_dict ["main_range " ],
811831 )
812832
813833 if result_id not in output_dict_default :
@@ -881,8 +901,8 @@ def create_obs_local(project, config_file):
881901 # print(f"Add {result_id}")
882902 obs_localisation_dict = {}
883903 obs_localisation_dict = copy .deepcopy (obs_dict )
884- obs_localisation_dict ["xrange " ] = ranges [0 ]
885- obs_localisation_dict ["yrange " ] = ranges [1 ]
904+ obs_localisation_dict ["main_range " ] = ranges [0 ]
905+ obs_localisation_dict ["perp_range " ] = ranges [1 ]
886906 obs_localisation_dict ["anisotropy_angle" ] = ranges [2 ]
887907 obs_localisation_dict ["summary_key" ] = obs_dict ["KEY" ]
888908 output_dict [result_id ] = obs_localisation_dict
0 commit comments