changeset 196:9d2f9c470ba8 draft

Uploaded
author luca_milaz
date Fri, 05 Jul 2024 07:01:34 +0000
parents 41ac2759658a
children 6450c450253e
files marea_2_0/flux_sampling.py
diffstat 1 files changed, 21 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/marea_2_0/flux_sampling.py	Fri Jul 05 06:53:43 2024 +0000
+++ b/marea_2_0/flux_sampling.py	Fri Jul 05 07:01:34 2024 +0000
@@ -148,7 +148,7 @@
     pass
 
 
-def model_sampler(model_input:str, model_name:str)->None:
+def model_sampler(model_input:str, model_name:str, df_mean:pd.DataFrame, df_median:pd.DataFrame, df_quantiles:pd.DataFrame)->None:
 
     model = load_custom_model(
         utils.FilePath.fromStrPath(model_input), utils.FilePath.fromStrPath(model_name).ext)
@@ -165,15 +165,11 @@
     elif ARGS.algorithm == 'CBS':
         CBS_sampler(model,  name, ARGS.n_samples, ARGS.n_batches, ARGS.seed)
 
-    fluxes_statistics(name, ARGS.output_types)
+    fluxes_statistics(name, ARGS.output_types, df_mean, df_median, df_quantiles)
 
     pass
 
-def fluxes_statistics(model_name: str,  output_types:List):
-
-    global DF_MEAN
-    global DF_MEDIAN
-    global DF_QUANTILES
+def fluxes_statistics(model_name: str,  output_types:List, df_mean:pd.DataFrame, df_median:pd.DataFrame, df_quantiles:pd.DataFrame)->None:
 
     df_samples = pd.read_csv(ARGS.output_folder  +  model_name + '.csv', sep = '\t')
     for output_type in output_types:
@@ -182,13 +178,13 @@
             df_temp = df_temp.to_frame().T
             df_temp = df_temp.reset_index(drop=True)
             df_temp.index = [model_name]
-            DF_MEAN = pd.concat([DF_MEAN, df_temp])
+            df_mean = pd.concat([df_mean, df_temp])
         elif(output_type == "median"):
             df_temp = df_samples.median()
             df_temp = df_temp.to_frame().T
             df_temp = df_temp.reset_index(drop=True)
             df_temp.index = [model_name]
-            DF_MEDIAN = pd.concat([DF_MEDIAN, df_temp])
+            df_median = pd.concat([df_median, df_temp])
         elif(output_type == "quantiles"):
             df_quantile = df_samples.quantile([0.25, 0.5, 0.75])
             newRow = []
@@ -204,7 +200,7 @@
             df_temp.loc[0] = newRow
             df_temp = df_temp.reset_index(drop=True)
             df_temp.index = [model_name]
-            DF_QUANTILES = pd.concat([DF_QUANTILES, df_temp])
+            df_quantiles = pd.concat([df_quantiles, df_temp])
 
 
     if("fluxes" not in output_types):
@@ -266,28 +262,25 @@
     models_name = ARGS.name.split(",")
     ARGS.output_types = ARGS.output_type.split(",")
 
-    global DF_MEAN 
-    DF_MEAN = pd.DataFrame()
-
-    global DF_MEDIAN 
-    DF_MEDIAN= pd.DataFrame()
-
-    global DF_QUANTILES 
-    DF_QUANTILES= pd.DataFrame()
+    
+    df_mean = pd.DataFrame()
+    df_median= pd.DataFrame()
+    df_quantiles= pd.DataFrame()
  
-    Parallel(n_jobs=num_processors)(delayed(model_sampler)(model_input, model_name) for model_input, model_name in zip(models_input, models_name))
+    Parallel(n_jobs=num_processors)(delayed(model_sampler)(model_input, model_name, 
+                                                           df_mean, df_median, df_quantiles) for model_input, model_name in zip(models_input, models_name))
 
-    DF_MEAN = DF_MEAN.fillna(0.0)
-    DF_MEAN = DF_MEAN.sort_index()
-    write_to_file(DF_MEAN, "mean")
+    df_mean = df_mean.fillna(0.0)
+    df_mean = df_mean.sort_index()
+    write_to_file(df_mean, "mean")
 
-    DF_MEDIAN = DF_MEDIAN.fillna(0.0)
-    DF_MEDIAN = DF_MEDIAN.sort_index()
-    write_to_file(DF_MEDIAN, "median")
+    df_median = df_median.fillna(0.0)
+    df_median = df_median.sort_index()
+    write_to_file(df_median, "median")
 
-    DF_QUANTILES = DF_QUANTILES.fillna(0.0)
-    DF_QUANTILES = DF_QUANTILES.sort_index()
-    write_to_file(DF_QUANTILES, "quantiles")
+    df_quantiles = df_quantiles.fillna(0.0)
+    df_quantiles = df_quantiles.sort_index()
+    write_to_file(df_quantiles, "quantiles")
         
 ##############################################################################
 if __name__ == "__main__":