コード例 #1
0
ファイル: plot_bolo_temp.py プロジェクト: JohnRuhl/cmbtools
def plot_temp(band, band_width, eta):
    import pylab as plot
    import numpy, scipy, bolo_module
    global c, h, k, T_cmb, numpy
    c = float(299792456)
    h = 6.626068e-34
    k = 1.3806503e-23
    T_cmb = 2.725
    data = {'nuGHZ':numpy.arange(band - 0.5*band_width, band + 0.5*band_width,0.1, dtype = float)}
    data['T_bolos'] = numpy.arange(0.4,0.6,0.001)
    data['T_base'] = 0.28
    data['nu'] = data['nuGHZ']*float(1e9)
    data['band'] = numpy.ones(len(data['nu']),float)
    data['Npol'] = 1.0
    data['Nmodes'] = 1.0
    data['eta'] = 0.088
    data['tau'] = .018/eta
    data['L'] = 0.6
    datasrc1 = {'name':'CMB', 'eps':1, 'T':2.725, 'tau':data['tau']}
    datasrc2 = {'name':'atm', 'eps':1, 'T':230.0, 'tau':data['tau']}
    data['n'] = 3.0
    data['R_bolo'] = 0.9 #ohms (operating point)
    data['R_load'] = 0.03 #ohms (shunt)
    data['alpha'] = 10.0 #d(logR) / d(logT) at operating point
    data['beta'] = 0.0 #d(logR) / d(logT) at fixed T
    data['tau_0'] = 0.010 #seconds, = C/G
    data['tau_electronics'] = 0.0001 #wild guess - need to figure this out
    data['NEI_squid'] = float(5e-9) #wild guess
    datasrc = [datasrc1, datasrc2]
    empty = numpy.empty(len(data['T_bolos']), dtype = float)
    data['NET_cmb_phonon'] = empty
    data['NET_cmb_Johnson'] = empty
    data['NET_cmb_readout'] = empty
    data['NET_rj_phonon'] = empty
    data['NET_rj_Johnson'] = empty
    data['NET_rj_readout'] = empty
    bolo_module.optical_calcs(data, datasrc)
    data['W'] = 2*data['Qtot']
    for i in range(len(data['T_bolos'])):
        data['T_bolo'] = data['T_bolos'][i]
    bolo_calcs(data)
    data['NET_cmb_phonon'][i] = data['Phonon']['NET_CMB']
    data['NET_cmb_Johnson'][i] = sum(data['Johnson']['NET_CMB'])/len(data['Johnson']['NET_CMB'])
    data['NET_cmb_readout'][i] = sum(data['Readout']['NET_CMB'])/len(data['Readout']['NET_CMB'])
    data['NET_rj_phonon'][i] = data['Phonon']['NET_RJ']
    data['NET_rj_Johnson'][i] = sum(data['Johnson']['NET_RJ'])
    data['NET_rj_readout'][i] = sum(data['Readout']['NET_RJ'])
    plot.gca().set_color_cycle(['red', 'green', 'blue'])
    plot.plot(data['T_bolos'], data['NET_cmb_phonon'])
    print data['NET_cmb_phonon']
    plot.plot(data['T_bolos'], data['NET_cmb_Johnson'])
    print data['NET_cmb_Johnson']
    plot.plot(data['T_bolos'], data['NET_cmb_readout'])
    print data['NET_cmb_readout']
    plot.xlabel('Bolo temperature in K')
    plot.ylabel('NET in uK/sqrt(Hz)')
    plot.title('NET vs. T_bolo over band '+str(band)+' GHz')
    plot.show()
コード例 #2
0
ファイル: bolo_script.py プロジェクト: JohnRuhl/cmbtools
def run(name):
    global c, h, k, T_cmb, numpy
    import numpy, scipy, math, bolo_module
    import sys
    #physical constants in SI units
    c = float(299792456)
    h = 6.626068e-34
    k = 1.3806503e-23
    T_cmb = 2.725 #Kelvin
    #optical properties:
    #sources (eg CMB, atmos, 100K): eps(nu_vector), T
    #datasrc1[name]
    #datasrc1[eps]
    #datasrc1[T]
    #datasrc1[tau] = tau
    #tau (perhaps for each source)
    #data[eta]
    #data[Nmodes] (or A*Omega as f(nu))
    #data[Npol]
    #data[nu]
    #data[nuGHZ]
    #data[band]
    #set up data structure
    import imp
    f = open(name)
    global data
    experiment = imp.load_source('experiment', 'r', f)
    f.close()
    data = experiment.data
    datasrc = experiment.datasrc
    bolo_module.optical_calcs(data, datasrc)
    data['W'] = 2*data['Qtot'] #total power to put bolo at operating point
    #data['Qtot'] (calculated by optical_calcs, or explicitly defined if you don't run that)
    #note: P_elec = data['W'] - data['Qtot']
    bolo_module.bolo_calcs(data)
    NEP_total = 0
    # Print out a table of values for each source
    """print ' \t   Source\t',
コード例 #3
0
def run(name):
    global c, h, k, T_cmb, numpy
    import numpy, scipy, math, bolo_module
    import sys
    #physical constants in SI units
    c = float(299792456)
    h = 6.626068e-34
    k = 1.3806503e-23
    T_cmb = 2.725  #Kelvin
    #optical properties:
    #sources (eg CMB, atmos, 100K): eps(nu_vector), T
    #datasrc1[name]
    #datasrc1[eps]
    #datasrc1[T]
    #datasrc1[tau] = tau
    #tau (perhaps for each source)
    #data[eta]
    #data[Nmodes] (or A*Omega as f(nu))
    #data[Npol]
    #data[nu]
    #data[nuGHZ]
    #data[band]
    #set up data structure
    import imp
    f = open(name)
    global data
    experiment = imp.load_source('experiment', 'r', f)
    f.close()
    data = experiment.data
    datasrc = experiment.datasrc
    bolo_module.optical_calcs(data, datasrc)
    data['W'] = 2 * data['Qtot']  #total power to put bolo at operating point
    #data['Qtot'] (calculated by optical_calcs, or explicitly defined if you don't run that)
    #note: P_elec = data['W'] - data['Qtot']
    bolo_module.bolo_calcs(data)
    NEP_total = 0
    # Print out a table of values for each source
    """print ' \t   Source\t',
コード例 #4
0
    'tau': 0.996
}
datasrc11 = {
    'name': 'IR shaders 300K (2)',
    'eps': 0.002,
    'T': 270.0,
    'tau': 0.998
}
datasrc12 = {'name': 'window', 'eps': 0.005, 'T': 250.0, 'tau': 0.995}
#datasrc13 = {'name':'atm', 'eps':0.006, 'T':240.0, 'tau':0.977}  # low
datasrc13 = {'name': 'atm', 'eps': 0.047, 'T': 240.0, 'tau': 0.977}  # high
datasrc14 = {'name': 'CMB', 'eps': 1., 'T': 2.725, 'tau': 1.0}
datasrc = [datasrc1, datasrc2, datasrc3, datasrc4, datasrc5, datasrc6, datasrc7, datasrc8,\
datasrc9, datasrc10, datasrc11, datasrc12, datasrc13, datasrc14]

bolo_module.optical_calcs(data, datasrc)

data['W'] = 2 * data['Qtot']  #total power to put bolo at operating point
#data['Qtot'] (calculated by optical_calcs, or explicitly defined if you don't run that)
#note: P_elec = data['W'] - data['Qtot']
bolo_module.bolo_calcs(data)

# Print out a table of values for each source
print '               Source',
print '  eps ',
print '   T_src',
print 'eta_to_bolo',
print ' Q',
print '     T_RJ',
print '  NEP_photon  NET_photon_RJ NET_photon_cmb'
for i in range(len(datasrc)):
コード例 #5
0
datasrc4 = {'name':'stop', 'eps':0.2, 'T':3.0, 'tau':0.8}
datasrc5 = {'name':'nylon filter', 'eps':0.02, 'T':5.0, 'tau':0.98}
datasrc6 = {'name':'snout filter', 'eps':0.03, 'T':5.0, 'tau':0.97}
datasrc7 = {'name':'hwp', 'eps':0.05, 'T':20., 'tau':0.95}
datasrc8 = {'name':'Ade filter VCS1', 'eps':0.02, 'T':45., 'tau':0.97}
datasrc9 = {'name':'IR shaders VCS1 (3)', 'eps':0.003, 'T':45.0, 'tau':0.997}
datasrc10 = {'name':'IR shaders VCS2 (4)', 'eps':0.004, 'T':155.0, 'tau':0.996}
datasrc11 = {'name':'IR shaders 300K (2)', 'eps':0.002, 'T':270.0, 'tau':0.998}
datasrc12 = {'name':'window', 'eps':0.005, 'T':250.0, 'tau':0.995}
#datasrc13 = {'name':'atm', 'eps':0.006, 'T':240.0, 'tau':0.977}  # low
datasrc13 = {'name':'atm', 'eps':0.047, 'T':240.0, 'tau':0.977}  # high
datasrc14 = {'name':'CMB', 'eps':1., 'T':2.725, 'tau':1.0}
datasrc = [datasrc1, datasrc2, datasrc3, datasrc4, datasrc5, datasrc6, datasrc7, datasrc8,\
datasrc9, datasrc10, datasrc11, datasrc12, datasrc13, datasrc14]
    
bolo_module.optical_calcs(data, datasrc)


data['W'] = 2*data['Qtot'] #total power to put bolo at operating point
#data['Qtot'] (calculated by optical_calcs, or explicitly defined if you don't run that)
    #note: P_elec = data['W'] - data['Qtot']
bolo_module.bolo_calcs(data)


# Print out a table of values for each source
print '               Source',
print '  eps ',
print '   T_src',
print 'eta_to_bolo',
print ' Q',
print '     T_RJ',
コード例 #6
0
ファイル: bolo_script.py プロジェクト: Kemalakin/cmbtools
def run(name, P_opt):
    global c, h, k, T_cmb, numpy
    import numpy, scipy, math, bolo_module
    import sys
    #physical constants in SI units
    c = float(299792456)
    h = 6.626068e-34
    k = 1.3806503e-23
    T_cmb = 2.725  #Kelvin
    #optical properties:
    #sources (eg CMB, atmos, 100K): eps(nu_vector), T
    #datasrc1[name]
    #datasrc1[eps]
    #datasrc1[T]
    #datasrc1[tau] = tau
    #tau (perhaps for each source)
    #data[eta]
    #data[Nmodes] (or A*Omega as f(nu))
    #data[Npol]
    #data[nu]
    #data[nuGHZ]
    #data[band]
    #set up data structure
    import imp
    f = open(name)
    global data
    experiment = imp.load_source('experiment', 'r', f)
    f.close()
    data = experiment.data
    datasrc = experiment.datasrc
    bolo_module.optical_calcs(data, datasrc)
    data['W'] = 2 * data['Qtot']  #total power to put bolo at operating point
    #data['Qtot'] (calculated by optical_calcs, or explicitly defined if you don't run that)
    #note: P_elec = data['W'] - data['Qtot']
    data['G'] = 2 * P_opt
    bolo_module.bolo_calcs(data)
    NEP_total = 0
    # Print out a table of values for each source
    print ' \t   Source\t',
    print ' eps \t',
    print ' T_src',
    print 'eta_to_bolo',
    print ' Q\t',
    print '    T_RJ',
    print ' NEP_photon NET_photon_RJ NET_photon_cmb'
    for i in range(len(datasrc)):
        print "%20s" % datasrc[i]['name'],
        print "%7.3f" % datasrc[i]['eps'],
        print "%7.1f" % datasrc[i]['T'],
        print "%7.3f" % datasrc[i]['eta_to_bolo'],
        print "%10.3e" % datasrc[i]['Q'],
        print "%7.1f" % datasrc[i]['T_RJ'],
        print "%10.3e" % datasrc[i]['NEP_photon'],
        print "%12.3e" % datasrc[i]['NET_photon_RJ'],
        print "%12.3e" % datasrc[i]['NET_photon_cmb']
    NEP_total = numpy.sqrt(data['NEP_photon_total']**2 +
                           data['Johnson']['NEP'][0]**2 +
                           data['Phonon']['NEP']**2)
    NET_cmb_total = NEP_total / data['dPdT_cmb'] / numpy.sqrt(
        2)  # uKrtsec rather than uK/rtHz
    # print out the totals
    print 'Total: ----------------------------------------------'
    print ' Qtot = ' "%10.3e" % data['Qtot']
    print ' T_RJ_tot = ' "%10.1f" % data['T_RJ_tot']
    print ' dPdT_RJ = ' "%10.3e" % data['dPdT_RJ']
    print ' dPdT_cmb = ' "%10.3e" % data['dPdT_cmb']
    print ' NEP_photon_total = ' "%10.3e" % data['NEP_photon_total']
    print ' NEP_phonon_total = ' "%10.3e" % data['Phonon']['NEP']
    print ' NEP_Johnson_total = ' "%10.3e" % data['Johnson']['NEP'][0]
    #print ' NEP_Readout_total = ' "%10.3e" %data['Readout']['NEP'][0]
    print ' NET_photon_total_RJ = ' "%10.3e" % data['NET_photon_total_RJ']
    print ' NET_photon_total_cmb = ' "%10.3e" % data['NET_photon_total_cmb']
    print ' NEP_total = ' "%10.3e" % NEP_total  #[0]
    print ' NET_cmb_total = ' "%10.3e" % NET_cmb_total  #[0],
    print 'uKrtsec'
    print '-----------------------------------------------------'
コード例 #7
0
ファイル: bolo_script.py プロジェクト: JohnRuhl/cmbtools
def run(name, P_opt):
    global c, h, k, T_cmb, numpy
    import numpy, scipy, math, bolo_module
    import sys
    #physical constants in SI units
    c = float(299792456)
    h = 6.626068e-34
    k = 1.3806503e-23
    T_cmb = 2.725 #Kelvin
    #optical properties:
    #sources (eg CMB, atmos, 100K): eps(nu_vector), T
    #datasrc1[name]
    #datasrc1[eps]
    #datasrc1[T]
    #datasrc1[tau] = tau
    #tau (perhaps for each source)
    #data[eta]
    #data[Nmodes] (or A*Omega as f(nu))
    #data[Npol]
    #data[nu]
    #data[nuGHZ]
    #data[band]
    #set up data structure
    import imp
    f = open(name)
    global data
    experiment = imp.load_source('experiment', 'r', f)
    f.close()
    data = experiment.data
    datasrc = experiment.datasrc
    bolo_module.optical_calcs(data, datasrc)
    data['W'] = 2*data['Qtot'] #total power to put bolo at operating point
    #data['Qtot'] (calculated by optical_calcs, or explicitly defined if you don't run that)
    #note: P_elec = data['W'] - data['Qtot']
    data['G'] = 2*P_opt    
    bolo_module.bolo_calcs(data)
    NEP_total = 0
    # Print out a table of values for each source
    print ' \t   Source\t',
    print ' eps \t',
    print ' T_src',
    print 'eta_to_bolo',
    print ' Q\t',
    print '    T_RJ',
    print ' NEP_photon NET_photon_RJ NET_photon_cmb'
    for i in range(len(datasrc)):
        print "%20s" %datasrc[i]['name'],
        print "%7.3f" %datasrc[i]['eps'],
        print "%7.1f" %datasrc[i]['T'],
        print "%7.3f" %datasrc[i]['eta_to_bolo'],
        print "%10.3e" %datasrc[i]['Q'],
        print "%7.1f" %datasrc[i]['T_RJ'],
        print "%10.3e" %datasrc[i]['NEP_photon'],
        print "%12.3e" %datasrc[i]['NET_photon_RJ'],
        print "%12.3e" %datasrc[i]['NET_photon_cmb']
    NEP_total = numpy.sqrt(data['NEP_photon_total']**2 + data['Johnson']['NEP'][0]**2 + data['Phonon']['NEP']**2)
    NET_cmb_total = NEP_total/data['dPdT_cmb']/numpy.sqrt(2) # uKrtsec rather than uK/rtHz
    # print out the totals
    print 'Total: ----------------------------------------------'
    print ' Qtot = ' "%10.3e" %data['Qtot']
    print ' T_RJ_tot = ' "%10.1f" %data['T_RJ_tot']
    print ' dPdT_RJ = ' "%10.3e" %data['dPdT_RJ']
    print ' dPdT_cmb = ' "%10.3e" %data['dPdT_cmb']
    print ' NEP_photon_total = ' "%10.3e" %data['NEP_photon_total']
    print ' NEP_phonon_total = ' "%10.3e" %data['Phonon']['NEP']
    print ' NEP_Johnson_total = ' "%10.3e" %data['Johnson']['NEP'][0]
    #print ' NEP_Readout_total = ' "%10.3e" %data['Readout']['NEP'][0]
    print ' NET_photon_total_RJ = ' "%10.3e" %data['NET_photon_total_RJ']
    print ' NET_photon_total_cmb = ' "%10.3e" %data['NET_photon_total_cmb']
    print ' NEP_total = ' "%10.3e" %NEP_total#[0]
    print ' NET_cmb_total = ' "%10.3e" %NET_cmb_total#[0],
    print 'uKrtsec'
    print '-----------------------------------------------------' 
コード例 #8
0
def plot_temp(band, band_width, eta):
    import pylab as plot
    import numpy, scipy, bolo_module
    global c, h, k, T_cmb, numpy
    c = float(299792456)
    h = 6.626068e-34
    k = 1.3806503e-23
    T_cmb = 2.725
    data = {
        'nuGHZ':
        numpy.arange(band - 0.5 * band_width,
                     band + 0.5 * band_width,
                     0.1,
                     dtype=float)
    }
    data['T_bolos'] = numpy.arange(0.4, 0.6, 0.001)
    data['T_base'] = 0.28
    data['nu'] = data['nuGHZ'] * float(1e9)
    data['band'] = numpy.ones(len(data['nu']), float)
    data['Npol'] = 1.0
    data['Nmodes'] = 1.0
    data['eta'] = 0.088
    data['tau'] = .018 / eta
    data['L'] = 0.6
    datasrc1 = {'name': 'CMB', 'eps': 1, 'T': 2.725, 'tau': data['tau']}
    datasrc2 = {'name': 'atm', 'eps': 1, 'T': 230.0, 'tau': data['tau']}
    data['n'] = 3.0
    data['R_bolo'] = 0.9  #ohms (operating point)
    data['R_load'] = 0.03  #ohms (shunt)
    data['alpha'] = 10.0  #d(logR) / d(logT) at operating point
    data['beta'] = 0.0  #d(logR) / d(logT) at fixed T
    data['tau_0'] = 0.010  #seconds, = C/G
    data['tau_electronics'] = 0.0001  #wild guess - need to figure this out
    data['NEI_squid'] = float(5e-9)  #wild guess
    datasrc = [datasrc1, datasrc2]
    empty = numpy.empty(len(data['T_bolos']), dtype=float)
    data['NET_cmb_phonon'] = empty
    data['NET_cmb_Johnson'] = empty
    data['NET_cmb_readout'] = empty
    data['NET_rj_phonon'] = empty
    data['NET_rj_Johnson'] = empty
    data['NET_rj_readout'] = empty
    bolo_module.optical_calcs(data, datasrc)
    data['W'] = 2 * data['Qtot']
    for i in range(len(data['T_bolos'])):
        data['T_bolo'] = data['T_bolos'][i]
    bolo_calcs(data)
    data['NET_cmb_phonon'][i] = data['Phonon']['NET_CMB']
    data['NET_cmb_Johnson'][i] = sum(data['Johnson']['NET_CMB']) / len(
        data['Johnson']['NET_CMB'])
    data['NET_cmb_readout'][i] = sum(data['Readout']['NET_CMB']) / len(
        data['Readout']['NET_CMB'])
    data['NET_rj_phonon'][i] = data['Phonon']['NET_RJ']
    data['NET_rj_Johnson'][i] = sum(data['Johnson']['NET_RJ'])
    data['NET_rj_readout'][i] = sum(data['Readout']['NET_RJ'])
    plot.gca().set_color_cycle(['red', 'green', 'blue'])
    plot.plot(data['T_bolos'], data['NET_cmb_phonon'])
    print data['NET_cmb_phonon']
    plot.plot(data['T_bolos'], data['NET_cmb_Johnson'])
    print data['NET_cmb_Johnson']
    plot.plot(data['T_bolos'], data['NET_cmb_readout'])
    print data['NET_cmb_readout']
    plot.xlabel('Bolo temperature in K')
    plot.ylabel('NET in uK/sqrt(Hz)')
    plot.title('NET vs. T_bolo over band ' + str(band) + ' GHz')
    plot.show()