diff --git a/DSSC1module.py b/DSSC1module.py
index 6762de88540aec03e0a68a0c5e83dea5ca08649d..eea4232590bfded8f7c13a1c9ac7b9baeebd0147 100644
--- a/DSSC1module.py
+++ b/DSSC1module.py
@@ -290,6 +290,7 @@ class DSSC1module:
                 warnings.warn(f'Overwriting file: {save_path}')
                 os.remove(save_path)
             data.to_netcdf(save_path, group='data')
+            data.close()
             os.chmod(save_path, 0o664)
             print('saving: ', save_path)
         else:
@@ -306,7 +307,7 @@ class DSSC1module:
             save_folder = self.save_folder
             
         self.run_nr = dark_runNB
-        self.dark_data = xr.open_dataset(os.path.join(save_folder, f'run{dark_runNB}_dark.h5'), group='data')
+        self.dark_data = xr.load_dataset(os.path.join(save_folder, f'run{dark_runNB}_dark.h5'), group='data')
         self.plot_title = f"{self.proposal} dark: {self.dark_data['run'].values}"
 
     def show_rois(self):
@@ -422,4 +423,4 @@ def process_one_module(job):
             module_data['std_data'] += (temp**2).sum(dim='trainId')
             module_data['counts'] += n_trains
        
-    return module_data
\ No newline at end of file
+    return module_data
diff --git a/FastCCD.py b/FastCCD.py
index 32e21ab0816bc0aaba3bb0c1ef56b7d6b34d8975..e919dc131aaaba49c0a8f80487e55cb22302b539 100644
--- a/FastCCD.py
+++ b/FastCCD.py
@@ -369,6 +369,7 @@ class FastCCD:
                 warnings.warn(f'Overwriting file: {save_path}')
                 os.remove(save_path)
             self.module_data.to_netcdf(save_path, group='data')
+            self.module_data.close()
             os.chmod(save_path, 0o664)
             print('saving: ', save_path)
         else:
@@ -389,10 +390,10 @@ class FastCCD:
 
         self.plot_title = f'{self.proposal} run: {runNB} dark: {dark_runNB}'
                    
-        binned = xr.open_dataset(os.path.join(save_folder, f'run{runNB}.h5'), group='data', cache=False)
+        binned = xr.load_dataset(os.path.join(save_folder, f'run{runNB}.h5'), group='data')
                    
         if dark_runNB is not None:
-            dark = xr.open_dataset(os.path.join(save_folder, f'run{dark_runNB}_dark.h5'), group='data', cache=False)
+            dark = xr.load_dataset(os.path.join(save_folder, f'run{dark_runNB}_dark.h5'), group='data')
             binned['pumped'] = self.gain*(binned['pumped'] - dark['pumped'].squeeze(drop=True))
             binned['unpumped'] = self.gain*(binned['unpumped'] - dark['unpumped'].squeeze(drop=True))
                    
@@ -638,4 +639,4 @@ def process_one_module(job):
         module_data['xgm_unpumped'] = data_unpumped['xgm']
         module_data['workerId'] = workerId
         
-    return module_data
\ No newline at end of file
+    return module_data