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