@@ -103,6 +103,58 @@ def load(cls, data_dir: Path):
103103 ),
104104 )
105105
106+ def save_to_parquet (self , output_dir : Path ):
107+ """
108+ Saves the MeraResults to the given directory in parquet format
109+
110+ Parameters
111+ ----------
112+ output_dir: Path
113+ Directory to save the MeraResults files
114+ """
115+ self .event_res_df .to_parquet (output_dir / "event_res_df.parquet" )
116+ self .event_cond_std_df .to_parquet (output_dir / "event_cond_std_df.parquet" )
117+ self .rem_res_df .to_parquet (output_dir / "rem_res_df.parquet" )
118+ self .bias_std_df .to_parquet (output_dir / "bias_std_df.parquet" )
119+ self .fit_df .to_parquet (output_dir / "fit_df.parquet" )
120+
121+ if self .site_res_df is not None :
122+ self .site_res_df .to_parquet (output_dir / "site_res_df.parquet" )
123+ if self .site_cond_std_df is not None :
124+ self .site_cond_std_df .to_parquet (output_dir / "site_cond_std_df.parquet" )
125+
126+ def load_from_parquet (cls , data_dir : Path ):
127+ """
128+ Loads the MeraResults from the given directory in parquet format
129+
130+ Parameters
131+ ----------
132+ data_dir: Path
133+ Directory containing the MeraResults files
134+
135+ Returns
136+ -------
137+ MeraResults:
138+ Loaded MeraResults
139+ """
140+ return cls (
141+ pd .read_parquet (data_dir / "event_res_df.parquet" ),
142+ pd .read_parquet (data_dir / "event_cond_std_df.parquet" ),
143+ pd .read_parquet (data_dir / "rem_res_df.parquet" ),
144+ pd .read_parquet (data_dir / "bias_std_df.parquet" ),
145+ pd .read_parquet (data_dir / "fit_df.parquet" ),
146+ (
147+ pd .read_parquet (data_dir / "site_res_df.parquet" )
148+ if (data_dir / "site_res_df.parquet" ).exists ()
149+ else None
150+ ),
151+ (
152+ pd .read_parquet (data_dir / "site_cond_std_df.parquet" )
153+ if (data_dir / "site_cond_std_df.parquet" ).exists ()
154+ else None
155+ ),
156+ )
157+
106158
107159def run_mera (
108160 residual_df : pd .DataFrame ,
@@ -190,7 +242,9 @@ def run_mera(
190242 )
191243 results .append (cur_result )
192244 else :
193- with mp .Pool (processes = n_procs , maxtasksperchild = 1 , initializer = _init_worker ) as pool :
245+ with mp .Pool (
246+ processes = n_procs , maxtasksperchild = 1 , initializer = _init_worker
247+ ) as pool :
194248 results = pool .starmap (
195249 _run_im_mera ,
196250 [
@@ -220,6 +274,7 @@ def run_mera(
220274 )
221275 event_cond_std_df .columns = ims
222276 rem_res_df = pd .concat ([cur_result ["rem_res_df" ] for cur_result in results ], axis = 1 )
277+ rem_res_df [event_cname ] = residual_df [event_cname ]
223278 bias_std_df = pd .DataFrame (
224279 [cur_result ["bias_std_series" ] for cur_result in results ], index = ims
225280 )
@@ -340,7 +395,7 @@ def _run_im_mera(
340395 name = im ,
341396 )
342397 rem_res_df = pd .DataFrame (index = residual_df .index .values , columns = [im ], dtype = float )
343- rem_res_df [event_cname ] = residual_df [event_cname ]
398+ # rem_res_df[event_cname] = residual_df[event_cname]
344399 fit_series = pd .Series (index = residual_df .index .values , dtype = float , name = im )
345400 site_res_series , site_cond_std_series = None , None
346401 if site_cname is not None :
0 commit comments