def determine_sweeps(self):
"""
Determine if input interferogram is single-sweep or
double-sweep (Forward-Backward).
"""
# Just testing 1st row for now
# assuming all in a group were collected the same way
data = self.data.X[0]
zpd = irfft.peak_search(data)
middle = data.shape[0] // 2
# Allow variation of +/- 0.4 % in zpd location
var = middle // 250
if zpd >= middle - var and zpd <= middle + var:
# single, symmetric
self.sweeps = 0
else:
try:
data = np.hsplit(data, 2)
except ValueError:
# odd number of data points, probably single
self.sweeps = 0
return
zpd1 = irfft.peak_search(data[0])
zpd2 = irfft.peak_search(data[1][::-1])
# Forward / backward zpds never perfectly match
if zpd1 >= zpd2 - var and zpd1 <= zpd2 + var:
# forward-backward, symmetric and asymmetric
self.sweeps = 1
else:
# single, asymetric
self.sweeps = 0
评论列表
文章目录