From 5756d62664676f140742ec5235514cf9a8a2f04d Mon Sep 17 00:00:00 2001
From: Danilo Ferreira de Lima <danilo.enoque.ferreira.de.lima@xfel.de>
Date: Mon, 27 Feb 2023 13:46:12 +0100
Subject: [PATCH] Saving density.

---
 pes_to_spec/model.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/pes_to_spec/model.py b/pes_to_spec/model.py
index 6fc1bd0..91bfa8a 100644
--- a/pes_to_spec/model.py
+++ b/pes_to_spec/model.py
@@ -708,6 +708,8 @@ class Model(TransformerMixin, BaseEstimator):
         #self.fit_model = FitModel()
 
         self.kde_xgm = None
+        self.mu_xgm = np.nan
+        self.std_xgm = np.nan
         self.kde_intensity = None
         self.mu_intensity = np.nan
         self.std_intensity = np.nan
@@ -767,7 +769,9 @@ class Model(TransformerMixin, BaseEstimator):
         Return: weights.
         """
         self.kde_xgm = KernelDensity()
-        self.kde_xgm.fit(intensity)
+        self.kde_xgm.fit(intensity.reshape(-1, 1))
+        self.mu_xgm = np.mean(intensity, axis=0)
+        self.sigma_xgm = np.mean(intensity, axis=0)
         q = np.quantile(intensity, [0.10, 0.90])
         l, h = q[0], q[1]
         x = intensity*((intensity > l) & (intensity < h)) + l*(intensity <= l) + h*(intensity >= h)
@@ -805,7 +809,7 @@ class Model(TransformerMixin, BaseEstimator):
         y_t = self.y_model.fit_transform(high_res_data, smoothen__energy=high_res_photon_energy)
         intensity = np.sum(y_t, axis=1)
         self.kde_intensity = KernelDensity()
-        self.kde_intensity.fit(intensity)
+        self.kde_intensity.fit(intensity.reshape(-1, 1))
         self.mu_intensity = np.mean(intensity, axis=0)
         self.sigma_intensity = np.mean(intensity, axis=0)
         #self.fit_model.set_params(fex__gamma=1.0/float(x_t.shape[0]))
@@ -931,6 +935,8 @@ class Model(TransformerMixin, BaseEstimator):
                      #self.channel_fit_model
                      DataHolder(self.mu_intensity),
                      DataHolder(self.sigma_intensity),
+                     DataHolder(self.mu_xgm),
+                     DataHolder(self.sigma_xgm),
                      self.ood,
                      self.kde_xgm,
                      self.kde_intensity,
@@ -952,6 +958,8 @@ class Model(TransformerMixin, BaseEstimator):
          #channel_fit_model
          mu_intensity,
          sigma_intensity,
+         mu_xgm,
+         sigma_xgm,
          ood,
          kde_xgm,
          kde_intensity,
@@ -966,6 +974,8 @@ class Model(TransformerMixin, BaseEstimator):
         obj.ood = ood
         obj.mu_intensity = mu_intensity.get_data()
         obj.sigma_intensity = sigma_intensity.get_data()
+        obj.mu_xgm = mu_xgm.get_data()
+        obj.sigma_xgm = sigma_xgm.get_data()
         obj.kde_xgm = kde_xgm
         obj.kde_intensity = kde_intensity
         return obj
-- 
GitLab