diff --git a/lofargen_from_file.py b/lofargen_from_file.py
index c961bf093ae2cef906e54887eb8f5f1c7483dd18..c1bd02d13c9bb0e7a16937ce5d6b8f15259492db 100644
--- a/lofargen_from_file.py
+++ b/lofargen_from_file.py
@@ -95,7 +95,7 @@ def main():
     for index in range(start_index, end_index):
         row = observation_table.iloc[index]
         logger.info('processing observation %s/%s', index, nrows)
-
+        sas_id = observation_table.index[index]
         ra, dec = row['RIGHTASCENSION'], row['DECLINATION']
         ra, dec = ra_dec_into_radians(ra, dec)
         station_list = row['STATIONS'].split(',')
@@ -115,7 +115,7 @@ def main():
                                            observation_duration_in_seconds)
         rotated_uvw, pca, r_pca = rotate_ellipse_points(uvw)
         ecc, filling_factor, sampling, mean_coverage, mean_d = compute_parameters(rotated_uvw)
-        path = f'{arguments.save_image_to}/{index}_{beam}/'
+        path = f'{arguments.save_image_to}/{sas_id}_{beam}/'
         os.makedirs(path, exist_ok=True)
         if (arguments.make_uvw_plot):
             make_plots(uvw, rotated_uvw, sampling, filter_to_frequency[filter], pca, r_pca, path)
@@ -125,21 +125,18 @@ def main():
                     end_time=end_time.isoformat(),
                     duration=observation_duration_in_seconds,
                     ra=ra, dec=dec, e=ecc,
-                    sas_id=int(index), beam=int(beam),
+                    sas_id=int(sas_id), beam=int(beam),
                     filling_factor=filling_factor, average_coverage=mean_coverage,
                     average_scale=mean_d)
 
         summary_table = summary_table.append(data, ignore_index=True)
-        summary_table['sas_id'] = summary_table['sas_id'].astype(int)
-        summary_table['beam'] = summary_table['beam'].astype(int)
-
-        summary_table.to_csv(arguments.full_table, index=None)
-
         with open(path + '/parameters.json', 'w') as f_out:
             json.dump(data, f_out)
 
         gc.collect()
-
+    summary_table['sas_id'] = summary_table['sas_id'].astype(int)
+    summary_table['beam'] = summary_table['beam'].astype(int)
+    summary_table.to_csv(arguments.full_table, index=None)
 
 if __name__ == '__main__':
     main()