From 80ef2d0dc2438b83365437c610b7958e556d442f Mon Sep 17 00:00:00 2001
From: Danilo Ferreira de Lima <danilo.enoque.ferreira.de.lima@xfel.de>
Date: Fri, 12 May 2023 16:10:09 +0200
Subject: [PATCH] Save plots as CSV for later replotting.

---
 pes_to_spec/test/offline_analysis.py | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/pes_to_spec/test/offline_analysis.py b/pes_to_spec/test/offline_analysis.py
index 7ea0441..a9ba794 100755
--- a/pes_to_spec/test/offline_analysis.py
+++ b/pes_to_spec/test/offline_analysis.py
@@ -16,6 +16,8 @@ from itertools import product
 import matplotlib
 matplotlib.use('Agg')
 
+import pandas as pd
+from copy import deepcopy
 import matplotlib.pyplot as plt
 from matplotlib.gridspec import GridSpec
 from mpl_toolkits.axes_grid1.inset_locator import InsetPosition
@@ -102,12 +104,24 @@ def plot_result(filename: str,
       intensity: The XGM intensity in uJ.
 
     """
-    fig = plt.figure(figsize=(12, 8))
-    gs = GridSpec(1, 1)
-    ax = fig.add_subplot(gs[0, 0])
     unc_stat = spec_pred["unc"]
     unc_pca = spec_pred["pca"]
     unc = np.sqrt(unc_stat**2 + unc_pca**2)
+    df = pd.DataFrame(dict(energy=spec_raw_pe,
+                           spec=spec_smooth,
+                           prediction=spec_pred["expected"],
+                           unc=unc,
+                           beam_intensity=intensity*1e-3*np.ones_like(spec_raw_pe)
+                           ))
+    df.to_csv(filename.replace('.png', '.csv'))
+    pes_data = deepcopy(pes)
+    pes_data['bin'] = np.arange(len(pes['channel_1_D']))
+    df = pd.DataFrame(pes_data)
+    df.to_csv(filename.replace('.png', '_pes.csv'))
+
+    fig = plt.figure(figsize=(12, 8))
+    gs = GridSpec(1, 1)
+    ax = fig.add_subplot(gs[0, 0])
     ax.plot(spec_raw_pe, spec_smooth, c='b', lw=3, label="High-res. measurement (smoothened)")
     ax.plot(spec_raw_pe, spec_pred["expected"], c='r', ls='--', lw=3, label="High-res. prediction")
     #ax.fill_between(spec_raw_pe, spec_pred["expected"] - unc, spec_pred["expected"] + unc, facecolor='green', alpha=0.6, label="68% unc.")
-- 
GitLab