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()
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',
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',
'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)):
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',
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 '-----------------------------------------------------'
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 '-----------------------------------------------------'
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()