From b29d04aa81c108b405bcf867fde119537d286b1d Mon Sep 17 00:00:00 2001
From: Egor Sobolev <egor.sobolev@xfel.eu>
Date: Fri, 28 Jul 2023 13:22:38 +0200
Subject: [PATCH] Add RMSd in computation of average displacements

---
 src/geomtools/sfx/misc.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/geomtools/sfx/misc.py b/src/geomtools/sfx/misc.py
index 39f968f..0a8e637 100644
--- a/src/geomtools/sfx/misc.py
+++ b/src/geomtools/sfx/misc.py
@@ -54,16 +54,17 @@ def get_peak_position(peaks, panels):
 
 def avg_pixel_displacement(match, panels):
     if 'panel_p' in match.columns:
-        pxdispl = match[['dx', 'dy', 'peakno', 'panel_p']].copy()
+        pxdispl = match[['dx', 'dy', 'r2', 'peakno', 'panel_p']].copy()
         pxdispl = pxdispl.rename(columns={'panel_p': 'panel'})
     else:
-        pxdispl = match[['dx', 'dy', 'peakno', 'panel']].copy()
+        pxdispl = match[['dx', 'dy', 'r2', 'peakno', 'panel']].copy()
     pxdispl['fsi'] = np.floor(match['fs_p']).astype(int)
     pxdispl['ssi'] = np.floor(match['ss_p']).astype(int)
 
     pxdispl = pxdispl.groupby(['panel', 'fsi', 'ssi']).agg(
         dx_avg=('dx', 'median'),
         dy_avg=('dy', 'median'),
+        rmsd=('r2', lambda x: np.sqrt(x.mean())),
         num=('peakno', 'count')
     )
     pxdispl['r_avg'] = np.sqrt(pxdispl.dx_avg * pxdispl.dx_avg +
-- 
GitLab