def update_data(attrname, old, new): ################################ # RUN CORONAGRAPH MODEL ################################ print 'Updating model for exptime = ', exptime.value, ' for planet with R = ', radius.value, ' at distance ', distance.value, ' parsec ' # Run coronagraph with default LUVOIR telescope (aka no keyword arguments) lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Phi, radius.value, Teff, Rs, r, distance.value, Nez) # Calculate background photon count rates cb = (cz + cez + csp + cD + cR + cth) # Convert hours to seconds Dts = exptime.value * 3600. # Calculate signal-to-noise assuming background subtraction (the "2") SNR = cp * Dts / np.sqrt((cp + 2 * cb) * Dts) # Calculate 1-sigma errors sig = Cratio / SNR # Add gaussian noise to flux ratio spec = Cratio + np.random.randn(len(Cratio)) * sig planet.data = dict(lam=lam, cratio=Cratio * 1e9, spec=spec * 1e9, downerr=(spec - sig) * 1e9, uperr=(spec + sig) * 1e9)
def update_data(attrname, old, new): print 'Updating model for exptime = ', exptime.value, ' for planet with R = ', radius.value, ' at distance ', distance.value, ' parsec ' print ' exozodi = ', exozodi.value # Run coronagraph with default LUVOIR telescope (aka no keyword arguments) lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Phi, radius.value, Teff, Rs, semimajor.value, distance.value, exozodi.value) # Calculate background photon count rates cb = (cz + cez + csp + cD + cR + cth) # Convert hours to seconds Dts = exptime.value * 3600. # Calculate signal-to-noise assuming background subtraction (the "2") SNR = cp*Dts/np.sqrt((cp + 2*cb)*Dts) # Calculate 1-sigma errors sig= Cratio/SNR # Add gaussian noise to flux ratio spec = Cratio + np.random.randn(len(Cratio))*sig planet.data = dict(lam=lam, cratio=Cratio*1e9, spec=spec*1e9, downerr=(spec-sig)*1e9, uperr=(spec+sig)*1e9) format_button_group.active = None
################################ # RUN CORONAGRAPH MODEL ################################ # Run coronagraph with default LUVOIR telescope (aka no keyword arguments) #lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ # cg.count_rates(Ahr, lamhr, solhr, alpha, Phi, Rp, Teff, Rs, r, d, Nez\ # ) lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Rp, Teff, Rs, r, d, Nez, IWA=2., OWA=64., Tsys=270.,\ wantsnr=wantsnr, lammin=0.2, THERMAL=True, diam=15., \ De_UV=De_UV, De_VIS=De_VIS, De_NIR=De_NIR, Re_UV=Re_UV, Re_VIS=Re_VIS, Re_NIR=Re_NIR, \ Res=Res, Res_UV = Res_UV, Res_NIR = Res_NIR, Tput=Tput) lam_9, dlam_9, A_9, q_9, Cratio_9, cp_9, csp_9, cz_9, cez_9, cD_9, cR_9, cth_9, DtSNR_9 = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Rp, Teff, Rs, r, d, Nez, IWA=2., OWA=64., Tsys=270.,\ wantsnr=wantsnr, lammin=0.2, THERMAL=True, diam=9., \ De_UV=De_UV, De_VIS=De_VIS, De_NIR=De_NIR, Re_UV=Re_UV, Re_VIS=Re_VIS, Re_NIR=Re_NIR, \ Res=Res, Res_UV = Res_UV, Res_NIR = Res_NIR, Tput=Tput) lam_65, dlam_65, A_65, q_65, Cratio_65, cp_65, csp_65, cz_65, cez_65, cD_65, cR_65, cth_65, DtSNR_65 = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Rp, Teff, Rs, r, d, Nez, IWA=2., OWA=64., Tsys=270.,\ wantsnr=wantsnr, lammin=0.2, THERMAL=True, diam=6.5, \ De_UV=De_UV, De_VIS=De_VIS, De_NIR=De_NIR, Re_UV=Re_UV, Re_VIS=Re_VIS, Re_NIR=Re_NIR, \ Res=Res, Res_UV = Res_UV, Res_NIR = Res_NIR, Tput=Tput)
# RUN CORONAGRAPH MODEL ################################ # Run coronagraph with default LUVOIR telescope (aka no keyword arguments) lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Phi, Rp, Teff, Rs, r, d, Nez,\ GROUND = True, THERMAL = True, lammin = lammin, lammax = lammax, Res = Res , diam = diam , Tput = Tput , C = C , IWA = IWA , OWA = OWA , Tsys = Tsys , Tdet = Tdet , emis = emis , De = De , DNHpix = DNHpix, Re = Re , Dtmax = Dtmax , X = X , qe = qe , MzV = MzV , MezV = MezV ) # Calculate background photon count rates cb = (cz + cez + csp + cD + cR + cth)
solhr = cg.noise_routines.Fstar(lamhr, Teff, Rs, r, AU=True) #sun solhrM = cg.noise_routines.Fstar(lamhr, 3130., 0.3761, 0.12, AU=True) #gj876 ################################ # RUN CORONAGRAPH MODEL ################################ # Run coronagraph with default LUVOIR telescope (aka no keyword arguments) #lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ # cg.count_rates(Ahr, lamhr, solhr, alpha, Phi, Rp, Teff, Rs, r, d, Nez\ # ) lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Rp, Teff, Rs, r, d, Nez, IWA=1., OWA=40., Tsys=270.,\ wantsnr=wantsnr, lammin=0.2, THERMAL=True, diam=12.7, \ De_UV=De_UV, De_VIS=De_VIS, De_NIR=De_NIR, Re_UV=Re_UV, Re_VIS=Re_VIS, Re_NIR=Re_NIR, \ Res=Res, Res_UV = Res_UV, Res_NIR = Res_NIR) lam_M, dlam_M, A_M, q_M, Cratio_M, cp_M, csp_M, cz_M, cez_M, cD_M, cR_M, cth_M, DtSNR_M = \ cg.count_rates(Ahr, lamhr, solhrM, alpha, Rp, Teff2, Rs, rM, dm, Nez, IWA=1., OWA=40., Tsys=270.,\ wantsnr=wantsnr, lammin=0.2, THERMAL=True, diam=12., \ De_UV=De_UV, De_VIS=De_VIS, De_NIR=De_NIR, Re_UV=Re_UV, Re_VIS=Re_VIS, Re_NIR=Re_NIR, \ Res=Res, Res_UV = Res_UV, Res_NIR = Res_NIR) lam_7, dlam_7, A_7, q_7, Cratio_7, cp_7, csp_7, cz_7, cez_7, cD_7, cR_7, cth_7, DtSNR_7 = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Rp, Teff, Rs, r, d, Nez, IWA=1., OWA=40., Tsys=270.,\ wantsnr=wantsnr, lammin=0.2, THERMAL=True, diam=7.6, \ De_UV=De_UV, De_VIS=De_VIS, De_NIR=De_NIR, Re_UV=Re_UV, Re_VIS=Re_VIS, Re_NIR=Re_NIR, \ Res=Res, Res_UV = Res_UV, Res_NIR = Res_NIR) lam_M_7, dlam_M_7, A_M_7, q_M_7, Cratio_M_7, cp_M_7, csp_M_7, cz_M_7, cez_M_7, cD_M_7, cR_M_7, cth_M_7, DtSNR_M_7 = \
fn = 'planets/earth_quadrature_radiance_refl.dat' model = np.loadtxt(fn, skiprows=8) lamhr = model[:, 0] radhr = model[:, 1] solhr = model[:, 2] # Calculate hi-resolution reflectivity Ahr = np.pi * (np.pi * radhr / solhr) ################################ # RUN CORONAGRAPH MODEL ################################ # Run coronagraph with default LUVOIR telescope (aka no keyword arguments) lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Phi, Rp, Teff, Rs, r, d, Nez ) # Calculate background photon count rates cb = (cz + cez + csp + cD + cR + cth) # Convert hours to seconds Dts = Dt * 3600. # Calculate signal-to-noise assuming background subtraction (the "2") SNR = cp * Dts / np.sqrt((cp + 2 * cb) * Dts) # Calculate 1-sigma errors sig = Cratio / SNR # Add gaussian noise to flux ratio spec = Cratio + np.random.randn(len(Cratio)) * sig
fn = 'planets/earth_quadrature_radiance_refl.dat' model = np.loadtxt(fn, skiprows=8) lamhr = model[:,0] radhr = model[:,1] solhr = model[:,2] # Calculate hi-resolution reflectivity Ahr = np.pi*(np.pi*radhr/solhr) ################################ # RUN CORONAGRAPH MODEL ################################ # Run coronagraph with default LUVOIR telescope (aka no keyword arguments) lam, dlam, A, q, Cratio, cp, csp, cz, cez, cD, cR, cth, DtSNR = \ cg.count_rates(Ahr, lamhr, solhr, alpha, Phi, Rp, Teff, Rs, r, d, Nez) # Calculate background photon count rates cb = (cz + cez + csp + cD + cR + cth) # Convert hours to seconds Dts = Dt * 3600. # Calculate signal-to-noise assuming background subtraction (the "2") SNR = cp*Dts/np.sqrt((cp + 2*cb)*Dts) # Calculate 1-sigma errors sig= Cratio/SNR # Add gaussian noise to flux ratio spec = Cratio + np.random.randn(len(Cratio))*sig planet = ColumnDataSource(data=dict(lam=lam, cratio=Cratio*1e9, spec=spec*1e9, downerr=(spec-sig)*1e9, uperr=(spec+sig)*1e9)) ################################ # BOKEH PLOTTING