Files
2026-02-13 14:42:24 +01:00

139 KiB

Scripts for Calibration of Cernox Sensors

Make a copy of this notebook for an other run.

See also http://samenv.psi.ch:8080/sample_environment/83

In [4]:
import numpy as np
import matplotlib.pyplot as plt
import math
from scipy.interpolate import splrep, splev
from zcalib import read_curve, convert_res, compare_calib, make_calib, logrange, Sensor, CalibRun, nplog, npexp
In [15]:
run = CalibRun([
        Sensor(3, 'X75610'), # the reference sensor must be the first
        Sensor(1, 'X161269', 'CX-1050-CU-HT-1.4M'),
        Sensor(2, 'X163059', 'CX-1050-CU-HT'),
        Sensor(4, 'X163060', 'CX-1050-CU-HT'),
        Sensor(5, 'X163061', 'CX-1050-CU-HT'),
        Sensor(6, 'X163062', 'CX-1050-CU-HT'),
    ],
    #t_points = (1.0, 1.2) + logrange(1.4, 310, n=194) + (330,),  # the points to be used in the cal file
    t_points = (1.38, 1.42, 1.51) + logrange(1.55, 288, n=57) + (302,310),  # the points to be used in the cal file
    caldate = '2021-04-30',  # the first measuring day!
    logT = False,
    logR = True,
    calib_data_file = '/home/l_samenv/sea/calib_scripts/calib_data/calib%s_p%d_c%d.dat',
    outputpath='%s/%s.340')
# smooth depends on number of measured points (1e-7 for 60, 0.8e-7 for 48 and 0.4e-7 for 24 points)
run.make(diflim=0.001, smoothref=1e-7, smoothtst=0.4e-7)
('lsdat', 'READ /afs/psi.ch/project/SampleEnvironment/SE_internal/Thermometer_calibs/2012/73027 Cernox 5/X75610.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c1.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c1.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c1.dat')
{'selected': 0, 'averaged': 62}
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c2.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c2.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c2.dat')
{'selected': 1, 'averaged': 61}
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c4.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c4.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c4.dat')
{'selected': 0, 'averaged': 62}
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c5.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c5.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c5.dat')
{'selected': 2, 'averaged': 60}
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c6.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c6.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c6.dat')
{'selected': 0, 'averaged': 62}
In [16]:
# compare known sensors
if True:  # set to True when known sensors are measured
    plt.figure(figsize=(10, 6))
    tmin,tmax,dmax=1.4,310,0.001
    testlist = [('X161269', 'z340')]
    for sensno, kind in testlist:
        r0, t0 = read_curve('/home/l_samenv/sea/tcl/calcurves/%s.340' % sensno, 'z340')
        r1, t1 = read_curve('2021-05-04/%s.340' % sensno, kind)
        diff = compare_calib(r1, t1, r0, t0)
        plt.plot(t0, diff, '-')
    plt.plot([tmin,tmax,tmax,tmin,tmin], [-dmax,-dmax,dmax,dmax,-dmax], '-')
    plt.legend([sensno + "." + kind[-3:] for sensno, kind in testlist] + ["window"])
    plt.xscale('log')
    plt.yscale('symlog',linthreshy=dmax)
    plt.grid(True, axis='y')
    plt.axis([1.0,350,-1,1])
    plt.show()
('z340', 'READ /home/l_samenv/sea/tcl/calcurves/X161269.340')
('z340', 'READ 2021-05-04/X161269.340')
No description has been provided for this image
In [17]:
# compare calibration files from points 0,1,2
# with the optimized (average or selection of best)

for sensor in run.sensors:
    r0, t0 = read_curve(sensor.outputpath, sensor.outputkind)
    plt.figure()
    dif = [0,0,0]
    for j in range(3):
        rr, rt = read_curve(sensor.caldat_file[j], 'zdat')
        rc, tc = make_calib(run.rref, run.tref, rr, rt, run.t_points)
        dif[j] = compare_calib(r0, t0, rc, tc)
        plt.plot(t0, dif[j], '-')
    plt.xscale('log')
    plt.yscale('symlog', linthreshy=0.001)
    plt.grid(True, axis='y')
    plt.axis([min(t0),max(t0),-1,1])
    # plt.axis([240,330,-1,1])

    # plt.legend(['dif1','dif2','dif3','est'])
    plt.show()
('z340', 'READ 2021-04-30/X161269.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c1.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c1.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c1.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163059.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c2.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c2.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c2.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163060.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c4.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c4.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c4.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163061.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c5.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c5.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c5.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163062.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c6.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c6.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c6.dat')
No description has been provided for this image
In [18]:
for sensor in run.sensors:
        r0, t0 = read_curve(sensor.outputpath, sensor.outputkind)
        plt.figure()
        dif = [0,0,0]
        for j in range(3):
            rr, rt = read_curve(sensor.caldat_file[j], 'zdat')
            rc, tc = make_calib(run.rref, run.tref, rr, rt, run.t_points)
            plt.plot(t0, r0, '-')
            plt.plot(tc, rc, '.')
        plt.xscale('log')
        plt.yscale('log')
        plt.grid(True, axis='y')
        # plt.axis([min(t0),max(t0),-1,1])
        # plt.axis([240,330,-1,1])

        # plt.legend(['dif1','dif2','dif3','est'])
        plt.show()

  
('z340', 'READ 2021-04-30/X161269.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c1.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c1.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c1.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163059.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c2.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c2.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c2.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163060.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c4.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c4.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c4.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163061.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c5.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c5.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c5.dat')
No description has been provided for this image
('z340', 'READ 2021-04-30/X163062.340')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p0_c6.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p1_c6.dat')
('zdat', 'READ /home/l_samenv/sea/calib_scripts/calib_data/calib2021-04-30_p2_c6.dat')
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: