9.7 KiB
9.7 KiB
In [ ]:
In [9]:
import numpy as np from zcalib import read_curve calib_data_file='calib_data/calib%s_p%d_c%d.dat'
In [1]:
def merge(dates, chans, phases, newdate, dif=1e-2): # merge calib runs from dates. the newer points overwriting the older ones (when within 1 %) # newdate should be a date not yet used for measuring (recommended: last day +1) dif = 2 * dif chans = list(chans) phases = list(phases) for chan in chans: for phase in phases: merged = None for date in dates: try: xy = read_curve(calib_data_file % (date, phase, chan), 'zdat') except FileNotFoundError: continue a=np.array(xy) xy = a[:,a[0,:].argsort()] if merged is None: merged = xy else: idx = np.searchsorted(merged[0], xy[0]) l = len(merged[0]) mask = [True] * l for i, x, y in zip(idx, xy[0], xy[1]): match = None i0 = max(i -1, 0) i1 = min(i, l - 1) x0 = merged[0][i0] x1 = merged[0][i1] if abs(x - x0) > abs(x - x1): x0 = x1 i0 = i1 if abs(x0 - x) < abs(x0 + x) * dif: print('match', i0, x0, x) mask[i0] = False merged = np.concatenate((merged[:,mask], xy), axis=1) merged = merged[:, merged[0,:].argsort()] with open(calib_data_file % (newdate, phase, chan), 'w') as f: f.write('#zdat (zcalib by M.Zolliker 2018) merged from %r\n' % dates) f.write('#idx\tR ref\tR meas\tdummy sigma\n') for i, (x, y) in enumerate(zip(merged[0], merged[1])): f.write('%i\t%.7g\t%.7g\t%.2g\n' % (i, x, y, y*1e-4))
In [102]:
merge(['2021-04-26', '2021-04-29'], [1,2,4,5,6], [0,1,2], '2021-04-30')
zdat READ calib_data/calib2021-04-26_p0_c1.dat zdat READ calib_data/calib2021-04-29_p0_c1.dat match 0 60.6828 60.5225 match 0 60.6828 62.22 match 1 65.3199 65.2872 match 2 71.5522 71.7035 match 3 77.9688 79.2125 match 54 11969.96 11938.23 match 55 14495.35 14613.01 match 56 17491.93 17880.41 match 57 21464.01 21959.49 match 58 26788.25 26765.2 zdat READ calib_data/calib2021-04-26_p1_c1.dat zdat READ calib_data/calib2021-04-29_p1_c1.dat match 0 60.6401 60.4238 match 0 60.6401 62.0921 match 1 65.2441 65.1589 match 2 71.4937 71.5521 match 3 77.9248 79.0168 match 54 11970.07 11938.39 match 55 14496.17 14614.4 match 56 17491.71 17885.05 match 57 21463.69 21987.46 match 58 26789.83 26797.09 zdat READ calib_data/calib2021-04-26_p2_c1.dat zdat READ calib_data/calib2021-04-29_p2_c1.dat match 0 60.61 60.3502 match 0 60.61 61.9986 match 1 65.2153 65.0644 match 2 71.445 71.4354 match 3 77.9122 78.8533 match 54 11970.73 11938.91 match 55 14496.28 14615.56 match 56 17491.46 17885.1 match 57 21465.49 22002.05 match 58 26792.74 26845.82 zdat READ calib_data/calib2021-04-26_p0_c2.dat zdat READ calib_data/calib2021-04-29_p0_c2.dat match 0 60.6738 60.5019 match 0 60.6738 62.1941 match 1 65.3022 65.2622 match 2 71.5424 71.6725 match 3 77.9592 79.1747 match 54 11969.67 11937.73 match 55 14494.71 14613.29 match 56 17491.23 17878.45 match 57 21461.43 21967.88 zdat READ calib_data/calib2021-04-26_p1_c2.dat zdat READ calib_data/calib2021-04-29_p1_c2.dat match 0 60.6329 60.4077 match 0 60.6329 62.0709 match 1 65.236 65.138 match 2 71.4827 71.5259 match 3 77.9188 78.9836 match 54 11971.0 11937.87 match 55 14494.66 14613.6 match 56 17491.53 17888.38 match 57 21462.17 21995.97 zdat READ calib_data/calib2021-04-26_p2_c2.dat zdat READ calib_data/calib2021-04-29_p2_c2.dat match 0 60.6047 60.3381 match 0 60.6047 61.9834 match 1 65.2122 65.0488 match 2 71.4364 71.4159 match 3 77.9137 78.8249 match 54 11970.36 11938.86 match 55 14495.7 14615.54 match 56 17490.91 17883.25 match 57 21465.81 22002.38 zdat READ calib_data/calib2021-04-26_p0_c4.dat zdat READ calib_data/calib2021-04-29_p0_c4.dat match 0 60.6654 60.4822 match 0 60.6654 62.1667 match 1 65.2838 65.2365 match 2 71.5296 71.642 match 3 77.948 79.1353 match 54 11969.16 11937.58 match 55 14494.9 14612.55 match 56 17491.32 17871.27 zdat READ calib_data/calib2021-04-26_p1_c4.dat zdat READ calib_data/calib2021-04-29_p1_c4.dat match 0 60.6263 60.393 match 0 60.6263 62.0524 match 1 65.2303 65.119 match 2 71.4728 71.5025 match 3 77.9147 78.9508 match 54 11971.08 11937.77 match 55 14492.33 14612.57 match 56 17490.81 17882.02 zdat READ calib_data/calib2021-04-26_p2_c4.dat zdat READ calib_data/calib2021-04-29_p2_c4.dat match 0 60.5998 60.3267 match 0 60.5998 61.9687 match 1 65.2085 65.0359 match 2 71.4287 71.3971 match 3 77.9172 78.7986 match 54 11969.85 11939.03 match 55 14495.65 14617.38 match 56 17493.0 17883.93 zdat READ calib_data/calib2021-04-26_p0_c5.dat zdat READ calib_data/calib2021-04-29_p0_c5.dat match 0 60.6577 60.4638 match 0 60.6577 62.1421 match 1 65.2696 65.2109 match 2 71.5173 71.6141 match 3 77.9401 79.097 match 54 11967.54 11937.55 match 55 14495.17 14612.01 zdat READ calib_data/calib2021-04-26_p1_c5.dat zdat READ calib_data/calib2021-04-29_p1_c5.dat match 0 60.6216 60.3783 match 0 60.6216 62.0355 match 1 65.2252 65.1019 match 2 71.4646 71.4823 match 3 77.9127 78.9198 match 54 11968.57 11937.86 match 55 14489.46 14613.21 zdat READ calib_data/calib2021-04-26_p2_c5.dat zdat READ calib_data/calib2021-04-29_p2_c5.dat match 0 60.5956 60.3165 match 0 60.5956 61.9555 match 1 65.2047 65.0238 match 2 71.4227 71.3795 match 3 77.9208 78.7734 match 54 11968.67 11938.29 match 55 14495.33 14617.0 zdat READ calib_data/calib2021-04-26_p0_c6.dat zdat READ calib_data/calib2021-04-29_p0_c6.dat match 0 60.6543 60.4507 match 0 60.6543 62.1239 match 1 65.2614 65.1914 match 2 71.5115 71.5911 match 3 77.9375 79.0654 match 54 11967.5 11938.06 zdat READ calib_data/calib2021-04-26_p1_c6.dat zdat READ calib_data/calib2021-04-29_p1_c6.dat match 0 60.6207 60.3694 match 0 60.6207 62.0242 match 1 65.224 65.09 match 2 71.4602 71.4666 match 3 77.9164 78.8953 match 54 11967.81 11937.43 zdat READ calib_data/calib2021-04-26_p2_c6.dat zdat READ calib_data/calib2021-04-29_p2_c6.dat match 0 60.5959 60.311 match 0 60.5959 61.9487 match 1 65.2048 65.0151 match 2 71.4216 71.368 match 3 77.9299 78.7532 match 54 11967.56 11937.76
In [ ]:
In [ ]:
In [ ]: