From 2cc95d92b5ea633e11499b4a23f88f74ffa6ebf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=B6ne=2C=20Tjark=20Leon=20Raphael?= <tjark.leon.raphael.groene@uni-hamburg.de> Date: Mon, 16 Jun 2025 17:54:31 +0200 Subject: [PATCH] Update file maxwell_integrate_to_h5.py --- maxwell_integrate_to_h5.py | 45 ++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/maxwell_integrate_to_h5.py b/maxwell_integrate_to_h5.py index 0bca638..43bd446 100644 --- a/maxwell_integrate_to_h5.py +++ b/maxwell_integrate_to_h5.py @@ -16,6 +16,8 @@ from watchdog.events import PatternMatchingEventHandler from multiprocessing.pool import ThreadPool as Pool import pandas as pd + + global NPROC @@ -50,9 +52,6 @@ def integrate_ims_in_dir(path_im, path_int, dtype_im=".tif", dtype_int=".dat"): global POLARIZATION global ERRORMODE - if not os.path.isdir(path_int): - os.mkdir(path_int) - im = fabio.open(fname_im).data basename_int = os.path.basename(fname_im)[:-len(dtype_im)] + dtype_int fname_int = os.path.join(path_int, basename_int) @@ -93,10 +92,14 @@ def integrate_ims_in_dir(path_im, path_int, dtype_im=".tif", dtype_int=".dat"): pool = Pool(int(NPROC)) for subdir in set(os.path.dirname(fname) for fname in fnames_ims): + + subdir_fnames = [fname for fname in fnames_ims if os.path.dirname(fname) == subdir] subdir_path_int = path_int_list[fnames_ims.index(subdir_fnames[0])] + + if not os.path.isdir(subdir_path_int): + os.mkdir(subdir_path_int) - results = [] filtered_fnames = [fname_im for fname_im in subdir_fnames if "metadata" not in fname_im] if filtered_fnames: @@ -107,24 +110,24 @@ def integrate_ims_in_dir(path_im, path_int, dtype_im=".tif", dtype_int=".dat"): filtered_fnames ) - pool.close() - pool.join() - - # Export the DataFrame to a CSV file with the name of the subdirectory - if async_result.ready(): - # Retrieve results from async_result - results_data = async_result.get() - results_df = pd.DataFrame(results_data) - results_df = results_df.sort_values(by="filename", key=lambda col: col.str.lower()) - subdir_name = os.path.basename(os.path.normpath(subdir_path_int)) - results_df.to_csv(os.path.join(subdir_path_int, f"{subdir_name}.csv"), index=False) - results_df.to_hdf(os.path.join(subdir_path_int, f"{subdir_name}.h5"), key='data', mode='w') - print(f"Results for subdirectory {subdir_name} saved to CSV and HDF5 files.") - del results_df - else: - print(f"No images were integrated in subdirectory {subdir}. No results DataFrame created.") + pool.close() + pool.join() + + # Export the DataFrame to a CSV file with the name of the subdirectory + if async_result.ready(): + # Retrieve results from async_result + results_data = async_result.get() + results_df = pd.DataFrame(results_data) + results_df = results_df.sort_values(by="filename", key=lambda col: col.str.lower()) + subdir_name = os.path.basename(os.path.normpath(subdir_path_int)) + results_df.to_csv(os.path.join(subdir_path_int, f"{subdir_name}.csv"), index=False) + results_df.to_hdf(os.path.join(subdir_path_int, f"{subdir_name}.h5"), key='data', mode='w') + print(f"Results for subdirectory {subdir_name} saved to CSV and HDF5 files.") + del results_df else: - print(f"No valid filenames found in subdirectory {subdir}.") + print(f"No images were integrated in subdirectory {subdir}. No results DataFrame created.") + else: + print(f"No valid filenames found in subdirectory {subdir}.") # Reset the pool for the next subdirectory pool = Pool(int(NPROC)) -- GitLab