From eae8a1bde4f05229edaae6bcc6694ae775a8948e Mon Sep 17 00:00:00 2001
From: Ivan Usov <ivan.usov@psi.ch>
Date: Fri, 29 Sep 2023 17:17:14 +0200
Subject: [PATCH]  Handle NaNs in magnetic_field/temp for hdf data

 Fix #58
---
 pyzebra/h5.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/pyzebra/h5.py b/pyzebra/h5.py
index 743ab97..394f3c5 100644
--- a/pyzebra/h5.py
+++ b/pyzebra/h5.py
@@ -147,11 +147,17 @@ def read_detector_data(filepath, cami_meta=None):
         # optional parameters
         if "/entry1/sample/magnetic_field" in h5f:
             scan["mf"] = h5f["/entry1/sample/magnetic_field"][:]
+        # TODO: NaNs are not JSON compliant, so replace them with None
+        # this is not a great solution, but makes it safe to use the array in bokeh
+        scan["mf"] = np.where(np.isnan(scan["mf"]), None, scan["mf"])
 
         if "/entry1/sample/temperature" in h5f:
             scan["temp"] = h5f["/entry1/sample/temperature"][:]
         elif "/entry1/sample/Ts/value" in h5f:
             scan["temp"] = h5f["/entry1/sample/Ts/value"][:]
+        # TODO: NaNs are not JSON compliant, so replace them with None
+        # this is not a great solution, but makes it safe to use the array in bokeh
+        scan["temp"] = np.where(np.isnan(scan["temp"]), None, scan["temp"])
 
         # overwrite metadata from .cami
         if cami_meta is not None:
-- 
GitLab