Skip to content

Commit 6ae0293

Browse files
authored
Merge pull request #64 from tankonst/master
added error_bar to _commonspeckle.Two_Time_Correlation_Function.py
2 parents 2ecdacf + 4f9c902 commit 6ae0293

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

pyCHX/v2/_commonspeckle/Two_Time_Correlation_Function.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,18 +1035,38 @@ def get_one_time_from_two_time(g12, norms=None, nopr=None):
10351035
m, n, noqs = g12.shape
10361036
if norms is None:
10371037
g2f12 = np.array([np.nanmean(g12.diagonal(i), axis=1) for i in range(m)])
1038+
g2f12_error = np.array(
1039+
[np.std(g12.diagonal(i), axis=1) / np.sqrt(m - i) for i in range(m)]
1040+
)
1041+
# propagate error to the last point
1042+
g2f12_error[-1, :] = g2f12_error[-2, :]
1043+
10381044
else:
1045+
if nopr is None:
1046+
print("Error: normalization option must have nopr")
1047+
return np.nan, np.nan
1048+
10391049
g2f12 = np.zeros([m, noqs])
1050+
g2f12_error = np.zeros([m, noqs])
10401051
for q in range(noqs):
10411052
yn = norms[:, q]
1042-
g2f12[i, q] = np.array(
1053+
scale = np.array(
1054+
[np.mean(yn[i:]) * np.mean(yn[: m - i]) * nopr[q] for i in range(m)]
1055+
)
1056+
g2f12[:, q] = np.array(
1057+
[np.nanmean(g12[:, :, q].diagonal(i)) / scale[i] for i in range(m)]
1058+
)
1059+
1060+
g2f12_error[:, q] = np.array(
10431061
[
1044-
np.nanmean(g12[:, :, q].diagonal(i))
1045-
/ (np.average(yn[i:]) * np.average(yn[: m - i]) * nopr[q])
1062+
np.std(g12[:, :, q].diagonal(i)) / np.sqrt(m - i) / scale[i]
10461063
for i in range(m)
10471064
]
10481065
)
1049-
return g2f12
1066+
# propagate error to the last point
1067+
g2f12_error[-1, :] = g2f12_error[-2, :]
1068+
1069+
return g2f12, g2f12_error
10501070

10511071

10521072
def get_four_time_from_two_time(g12, g2=None, rois=None):

0 commit comments

Comments
 (0)