Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 4
0
# 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)
Exemplo n.º 5
0
    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 = \
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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