@@ -1140,6 +1140,33 @@ def getAllGaussFieldNamesUsed(self) -> List[str]:
11401140 gfAllZones .append (gf )
11411141 return copy .copy (gfAllZones )
11421142
1143+ def getAllGaussFieldVariogramsUsed (self , job_name : str ) -> str :
1144+ content = job_name + '\n '
1145+ for key , zoneModel in self .__zoneModelTable .items ():
1146+ (zone_number , region_number ) = key
1147+
1148+ gfNames = zoneModel .used_gaussian_field_names
1149+ for gfname in gfNames :
1150+ if self .__debug_level >= Debug .VERY_VERBOSE :
1151+ print (
1152+ f'--- Get variogram data for zone:{ zone_number } region:{ region_number } for { gfname } '
1153+ )
1154+ content += (
1155+ str (zone_number ) + ' ' + str (region_number ) + ' ' + gfname + ' '
1156+ )
1157+ variogram_type = zoneModel .getVariogramType (gfname )
1158+ main_range = zoneModel .getMainRange (gfname )
1159+ perp_range = zoneModel .getPerpRange (gfname )
1160+ main_range = zoneModel .getMainRange (gfname )
1161+ vert_range = zoneModel .getVertRange (gfname )
1162+ azimuth = zoneModel .getAzimuthAngle (gfname )
1163+ content += str (variogram_type ) + ' '
1164+ content += str (main_range ) + ' '
1165+ content += str (perp_range ) + ' '
1166+ content += str (vert_range ) + ' '
1167+ content += str (azimuth ) + '\n '
1168+ return content
1169+
11431170 @property
11441171 def zone_parameter (self ) -> str :
11451172 return self .getZoneParamName ()
@@ -1462,6 +1489,7 @@ def write_model(
14621489 attributes_file_name : Optional [FilePath ] = None ,
14631490 param_file_name : Optional [FilePath ] = None ,
14641491 probability_distribution_file_name : Optional [FilePath ] = None ,
1492+ variogram_output_file_name : Optional [FilePath ] = None ,
14651493 current_job_name : Optional [str ] = None ,
14661494 debug_level : Debug = Debug .OFF ,
14671495 ) -> None :
@@ -1473,6 +1501,16 @@ def write_model(
14731501 top = ET .Element ('APSModel' , {'version' : self .__aps_model_version })
14741502 root_updated = self .XMLAddElement (top , fmu_attributes )
14751503 write_string_to_file (model_file_name , root_updated , debug_level = debug_level )
1504+ if variogram_output_file_name is not None :
1505+ if current_job_name is None :
1506+ current_job_name = 'apsgui_job_name'
1507+ content = self .getAllGaussFieldVariogramsUsed (current_job_name )
1508+ write_string_to_file (
1509+ variogram_output_file_name ,
1510+ content ,
1511+ debug_level = debug_level ,
1512+ )
1513+
14761514 if len (fmu_attributes ) == 0 :
14771515 return
14781516 if attributes_file_name is not None :
0 commit comments