From 4457a718c06d126cb6193280219ad866afce957d Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Fri, 29 Sep 2023 11:45:45 +0200
Subject: [PATCH] bayesian example now reading data as 1D table

---
 auto/Examples/bayesian/likelihood_sampling.py | 22 ++++++++-----------
 .../bayesian/likelihood_sampling.py           | 22 ++++++++-----------
 rawEx/bayesian/likelihood_sampling.py         | 22 ++++++++-----------
 3 files changed, 27 insertions(+), 39 deletions(-)

diff --git a/auto/Examples/bayesian/likelihood_sampling.py b/auto/Examples/bayesian/likelihood_sampling.py
index 49ccddbce6b..1fa6401c3e3 100755
--- a/auto/Examples/bayesian/likelihood_sampling.py
+++ b/auto/Examples/bayesian/likelihood_sampling.py
@@ -57,9 +57,12 @@ def run_simulation(points, ni_thickness, ti_thickness):
 
 if __name__ == '__main__':
     filepath = os.path.join(datadir, "specular/genx_alternating_layers.dat.gz")
-    data = ba.readData2D(filepath).npArray()
-    data[:, 0] *= np.pi/360 # convert incident angles from deg to rad
-    data[:, 2] = data[:, 1]*0.1 # arbitrary uncertainties of 10%
+    flags = ba.ImportSettings1D("2alpha (deg)", "#", "", 1, 2)
+    data = ba.readData1D(filepath, ba.csv1D, flags)
+
+    q = data.npXcenters()
+    y = data.npArray()
+    dy = y * 0.1 # arbitrary uncertainties
 
     def log_likelihood(P):
         """
@@ -70,9 +73,6 @@ if __name__ == '__main__':
         :array yerr: the ordinate uncertainty (dR-values)
         :return: log-likelihood
         """
-        q = data[:, 0]
-        y = data[:, 1]
-        dy = data[:, 2]
         y_sim = run_simulation(q, *P)
         sigma2 = dy**2 + y_sim**2
         return -0.5*np.sum((y - y_sim)**2/sigma2 + np.log(sigma2))
@@ -104,14 +104,10 @@ if __name__ == '__main__':
     plt.show()
 
     # Plot and show MLE and data of reflectivity
-    plt.errorbar(data[:, 0],
-                 data[:, 1],
-                 data[:, 2],
-                 marker='.',
-                 ls='')
+    plt.errorbar(q, y, dy, marker='.', ls='')
     plt.plot(
-        data[:, 0],
-        run_simulation(data[:, 0], *flat_samples.mean(axis=0)),
+        q,
+        run_simulation(q, *flat_samples.mean(axis=0)),
         '-')
     plt.xlabel('$\\alpha$/rad')
     plt.ylabel('$R$')
diff --git a/auto/MiniExamples/bayesian/likelihood_sampling.py b/auto/MiniExamples/bayesian/likelihood_sampling.py
index 91444312293..c5094bd6514 100755
--- a/auto/MiniExamples/bayesian/likelihood_sampling.py
+++ b/auto/MiniExamples/bayesian/likelihood_sampling.py
@@ -57,9 +57,12 @@ def run_simulation(points, ni_thickness, ti_thickness):
 
 if __name__ == '__main__':
     filepath = os.path.join(datadir, "specular/genx_alternating_layers.dat.gz")
-    data = ba.readData2D(filepath).npArray()
-    data[:, 0] *= np.pi/360 # convert incident angles from deg to rad
-    data[:, 2] = data[:, 1]*0.1 # arbitrary uncertainties of 10%
+    flags = ba.ImportSettings1D("2alpha (deg)", "#", "", 1, 2)
+    data = ba.readData1D(filepath, ba.csv1D, flags)
+
+    q = data.npXcenters()
+    y = data.npArray()
+    dy = y * 0.1 # arbitrary uncertainties
 
     def log_likelihood(P):
         """
@@ -70,9 +73,6 @@ if __name__ == '__main__':
         :array yerr: the ordinate uncertainty (dR-values)
         :return: log-likelihood
         """
-        q = data[:, 0]
-        y = data[:, 1]
-        dy = data[:, 2]
         y_sim = run_simulation(q, *P)
         sigma2 = dy**2 + y_sim**2
         return -0.5*np.sum((y - y_sim)**2/sigma2 + np.log(sigma2))
@@ -104,14 +104,10 @@ if __name__ == '__main__':
     # plt.show()
 
     # Plot and show MLE and data of reflectivity
-    plt.errorbar(data[:, 0],
-                 data[:, 1],
-                 data[:, 2],
-                 marker='.',
-                 ls='')
+    plt.errorbar(q, y, dy, marker='.', ls='')
     plt.plot(
-        data[:, 0],
-        run_simulation(data[:, 0], *flat_samples.mean(axis=0)),
+        q,
+        run_simulation(q, *flat_samples.mean(axis=0)),
         '-')
     plt.xlabel('$\\alpha$/rad')
     plt.ylabel('$R$')
diff --git a/rawEx/bayesian/likelihood_sampling.py b/rawEx/bayesian/likelihood_sampling.py
index ce7f70578fd..be2f4332cfe 100755
--- a/rawEx/bayesian/likelihood_sampling.py
+++ b/rawEx/bayesian/likelihood_sampling.py
@@ -57,9 +57,12 @@ def run_simulation(points, ni_thickness, ti_thickness):
 
 if __name__ == '__main__':
     filepath = os.path.join(datadir, "specular/genx_alternating_layers.dat.gz")
-    data = ba.readData2D(filepath).npArray()
-    data[:, 0] *= np.pi/360 # convert incident angles from deg to rad
-    data[:, 2] = data[:, 1]*0.1 # arbitrary uncertainties of 10%
+    flags = ba.ImportSettings1D("2alpha (deg)", "#", "", 1, 2)
+    data = ba.readData1D(filepath, ba.csv1D, flags)
+
+    q = data.npXcenters()
+    y = data.npArray()
+    dy = y * 0.1 # arbitrary uncertainties
 
     def log_likelihood(P):
         """
@@ -70,9 +73,6 @@ if __name__ == '__main__':
         :array yerr: the ordinate uncertainty (dR-values)
         :return: log-likelihood
         """
-        q = data[:, 0]
-        y = data[:, 1]
-        dy = data[:, 2]
         y_sim = run_simulation(q, *P)
         sigma2 = dy**2 + y_sim**2
         return -0.5*np.sum((y - y_sim)**2/sigma2 + np.log(sigma2))
@@ -104,14 +104,10 @@ if __name__ == '__main__':
     <%= sm ? "# " : "" %>plt.show()
 
     # Plot and show MLE and data of reflectivity
-    plt.errorbar(data[:, 0],
-                 data[:, 1],
-                 data[:, 2],
-                 marker='.',
-                 ls='')
+    plt.errorbar(q, y, dy, marker='.', ls='')
     plt.plot(
-        data[:, 0],
-        run_simulation(data[:, 0], *flat_samples.mean(axis=0)),
+        q,
+        run_simulation(q, *flat_samples.mean(axis=0)),
         '-')
     plt.xlabel('$\\alpha$/rad')
     plt.ylabel('$R$')
-- 
GitLab