Example #1
0
def bound_bOVERaRs_MTQ_2011(ModelParams):
    """ checks if b/aRs <= 1 """
    
    tT = ModelParams['tT']['value']
    tG = ModelParams['tG']['value']
    Period = tqe.computePeriod(ModelParams)
    
    Tags = {}
    for pname in ModelParams.keys():
        if pname.startswith('v1'):
            StrArray = map(str,pname.split('.'))
            Tags[pname] = tqe.getFilterTags(StrArray)
        if pname.startswith('v2'):
            StrArray = map(str,pname.split('.'))
            Tags[pname] = tqe.getFilterTags(StrArray)
        if pname.startswith('D'):
            StrArray = map(str,pname.split('.'))
            Tags[pname] = tqe.getFilterTags(StrArray)
    
    RefFilt = ModelParams['RefFilt']['printformat']
    Dref, v1ref, v2ref = MTQ_FilterParams(RefFilt,Tags,ModelParams)
    u1ref = (v1ref+v2ref)/2e0
    u2ref = (v1ref-v2ref)/2e0
    TransitRef = MTQ_getDerivedParams(Dref,tT,tG,u1ref,u2ref,Period)
    
    bound = True
    if TransitRef['b']/TransitRef['aRs'] > 1e0:
        bound = False
        
    return bound
Example #2
0
def MTQ_multidepth_tduration(ModelParams,ObservedData):
    """
    Computes model lightcurves given parameters and Observed times for multiple transits.
    
    Inputs - the tmcmc format 'ModelParams' dictionary and tmcmc format 'ObservedData' dictionary
    Output - the tmcmc format 'ModelData' dictionary
    """

    Period = tqe.computePeriod(ModelParams)
    RefFilt = ModelParams['RefFilt']['printformat']
    
    # get Filter and Transit time tags
    Tags = tqe.getTags(ModelParams)
    
    # compute parameters used to compute lightcurve using the reference filter
    Dref, v1ref, v2ref = MTQ_FilterParams(RefFilt,Tags,ModelParams)
    u1ref, u2ref = tqe.LDC_v2u(v1ref,v2ref)

    tT = ModelParams['tT']['value']
    tG = ModelParams['tG']['value']
    
    # compute 'b', 'i' and other parameters for the reference transit
    TransitRef = MTQ_getDerivedParams(Dref,tT,tG,u1ref,u2ref,Period)

    fmod = {}
    for key in ModelParams.keys():
        if key.startswith('T0'):
            # get the transit tag from a given transit time parameter
            split_TT = map(str,key.split('.'))
            transit_tag = split_TT[1].strip()
            
            # compute D, v1, v2 and then u1 and u2 for a given transit tag
            D, v1, v2 = MTQ_FilterParams(transit_tag,Tags,ModelParams)
            u1, u2 = tqe.LDC_v2u(v1,v2)
            
            # Compute various parameters for transit lightcurve
            F0 = ModelParams['f0']['value']
            timeIn = np.array(ObservedData[transit_tag]['x'])
            T0 = ModelParams['T0.'+transit_tag]['value']
            RpRs = tqe.computeRpRs(u1,u2,tT,tG,D)
            
            # Compute lightcurve
            fmodout = tqe.TransitLC(timeIn,F0,TransitRef['inc'],\
            TransitRef['aRs'],Period,RpRs,u1,u2,T0)
            fmod[transit_tag] = {'y':fmodout}

    # Stacking lightcurves from different nights
    all_fmodout = []
    Ntags = len(ObservedData['all']['tagorder'].keys())
    for tag in np.array(range(Ntags))+1:
        transit_tag = ObservedData['all']['tagorder'][tag]
        all_fmodout = np.hstack((all_fmodout,fmod[transit_tag]['y']))

    fmod['all'] = {'y':all_fmodout}
    return fmod
Example #3
0
def printDerivedParFile_MTQ_2011(ParFile,OutParFile):
    """
    print the derived parameters in the format of the parameter file
    """
    
    ModelParams = ReadStartParams(ParFile)
    derived = {}
    
    Period = computePeriod(ModelParams)
    derived['Period'] = {'value':Period,'printformat':'.9f','open':True,'step':0.0}
    RefFilt = ModelParams['RefFilt']['printformat']

    # get Filter and Transit time tags
    Tags = getTags(ModelParams)
    
    # compute parameters used to compute lightcurve using the reference filter
    Dref, v1ref, v2ref = MTQ_2011.MTQ_FilterParams(RefFilt,Tags,ModelParams)
    u1ref, u2ref = LDC_v2u(v1ref,v2ref)

    tT = ModelParams['tT']['value']
    tG = ModelParams['tG']['value']
    
    TransitRef = MTQ_2011.MTQ_getDerivedParams(Dref,tT,tG,u1ref,u2ref,Period)
    #print TransitRef
    derived['inc'] = {'value':TransitRef['inc']*180e0/np.pi,'printformat':'.4f','open':True,'step':0.0}
    derived['b'] = {'value':TransitRef['b'],'printformat':'.6f','open':True,'step':0.0}
    derived['aRs'] = {'value':TransitRef['aRs'],'printformat':'.6f','open':True,'step':0.0}
    derived['velRs'] = {'value':TransitRef['velRs'],'printformat':'.6f','open':True,'step':0.0}
    derived['rho_star'] = {'value':TransitRef['rho_star'],'printformat':'.6f','open':True,'step':0.0}
    derived['RpRs'+'.'+ModelParams['RefFilt']['printformat']] = \
    {'value':TransitRef['RpRs'],'printformat':'.9f','open':True,'step':0.0}
    
    for key in ModelParams.keys():
        if key.startswith('T0'):
            split_TT = map(str,key.split('.'))
            transit_tag = split_TT[1].strip()
    
            # compute D, v1, v2 and then u1 and u2 for a given transit tag
            D, v1, v2 = MTQ_2011.MTQ_FilterParams(transit_tag,Tags,ModelParams)
            u1, u2 = LDC_v2u(v1,v2)
            RpRs = computeRpRs(u1,u2,tT,tG,D)
            filterD = filterMatchD(transit_tag,Tags,ModelParams)
            #print filterD
            derived['RpRs'+'.'+filterD] = {'value':RpRs,'printformat':'.9f','open':True,'step':0.0}
    
    PrintModelParams(derived,OutParFile)
Example #4
0
def printDerived_MTQ_2011(STARTFILE,MCMCfile,DerivedFile):
    """ print a file with Derived parameters from the MCMC ensemble. """
    
    hdrKeys = readMCMChdr(MCMCfile)
    ModelParams = ReadStartParams(STARTFILE)
    
    mcmcFile = open(MCMCfile,'r')
    mcmcFile = mcmcFile.readlines()
    OutFileObject = open(DerivedFile,'w')
    
    for line in mcmcFile:
        derived = {}
        if not line.startswith('#'):
            data_line = ReadMCMCline(line,hdrKeys)
            print 'step/line = ',format(long(data_line['istep']),'n')
            for key in ModelParams.keys():
                if ModelParams[key]['open']:
                    ModelParams[key]['value'] = data_line[key]
            
            Period = computePeriod(ModelParams)
            derived['Period'] = {'value':Period,'printformat':'.9f'}
            RefFilt = ModelParams['RefFilt']['printformat']
    
            # get Filter and Transit time tags
            Tags = getTags(ModelParams)
            
            # compute parameters used to compute lightcurve using the reference filter
            Dref, v1ref, v2ref = MTQ_2011.MTQ_FilterParams(RefFilt,Tags,ModelParams)
            u1ref, u2ref = LDC_v2u(v1ref,v2ref)

            tT = ModelParams['tT']['value']
            tG = ModelParams['tG']['value']
            
            TransitRef = MTQ_2011.MTQ_getDerivedParams(Dref,tT,tG,u1ref,u2ref,Period)
            #print TransitRef
            derived['inc'] = {'value':TransitRef['inc']*180e0/np.pi,'printformat':'.4f'}
            derived['b'] = {'value':TransitRef['b'],'printformat':'.6f'}
            derived['aRs'] = {'value':TransitRef['aRs'],'printformat':'.6f'}
            derived['velRs'] = {'value':TransitRef['velRs'],'printformat':'.6f'}
            derived['rho_star'] = {'value':TransitRef['rho_star'],'printformat':'.6f'}
            derived['RpRs'+'.'+ModelParams['RefFilt']['printformat']] = \
            {'value':TransitRef['RpRs'],'printformat':'.9f'}
            
            for key in ModelParams.keys():
                if key.startswith('T0'):
                    split_TT = map(str,key.split('.'))
                    transit_tag = split_TT[1].strip()
            
                    # compute D, v1, v2 and then u1 and u2 for a given transit tag
                    D, v1, v2 = MTQ_2011.MTQ_FilterParams(transit_tag,Tags,ModelParams)
                    u1, u2 = LDC_v2u(v1,v2)
                    RpRs = computeRpRs(u1,u2,tT,tG,D)
                    filterD = filterMatchD(transit_tag,Tags,ModelParams)
                    #print filterD
                    derived['RpRs'+'.'+filterD] = {'value':RpRs,'printformat':'.9f'}
            
            DerivedLine = ''
            keylist = derived.keys()
            Nkeys = len(keylist)
            if data_line['istep'] == 0:
                keyorder = {}
                for i in range(len(keylist)):
                    keyorder[i] = keylist[i]
                for i in range(Nkeys):
                    if i == 0:
                        DerivedLine =\
                        str(format(derived[keylist[i]]['value'],\
                        derived[keylist[i]]['printformat']))
                    else:
                        DerivedLine =\
                        DerivedLine+'|'+str(format(derived[keylist[i]]['value'],\
                        derived[keylist[i]]['printformat']))
            else:
                for i in range(Nkeys):
                    if i == 0:
                        DerivedLine =\
                        str(format(derived[keylist[i]]['value'],\
                        derived[keylist[i]]['printformat']))
                    else:
                        DerivedLine = DerivedLine+'|'+str(format(derived[keylist[i]]['value'],\
                        derived[keylist[i]]['printformat']))

            DerivedLine = DerivedLine+'|'+str(format(data_line['istep'],'.0f'))+'|:'
            print >> OutFileObject, DerivedLine
    
    keyline = ''
    for i in range(Nkeys):
        if i == 0:
            keyline = '#'+keylist[i]
        else:
            keyline = keyline+'|'+keylist[i]
    keyline = keyline+'|istep|:'
    
    OutFileObject.close()
    
    #print >> OutFileObject, keyline
    opencopy = open(DerivedFile,'r')
    opencopy = opencopy.readlines()
    os.system('rm -v %s' % (DerivedFile))
    rearranged = open(DerivedFile,'w')
    print >> rearranged, keyline
    for iline in range(len(opencopy)):
        print >> rearranged, opencopy[iline].strip('\n')
    rearranged.close()
Example #5
0
def returnDerivedLine_MTQ2011(ModelParams,istep,keyList0):
    """ print a file with Derived parameters from the MCMC ensemble. """
        
    derived = {}
    
    Period = computePeriod(ModelParams)
    derived['Period'] = {'value':Period,'printformat':'.9f'}
    RefFilt = ModelParams['RefFilt']['printformat']

    # get Filter and Transit time tags
    Tags = getTags(ModelParams)
    
    # compute parameters used to compute lightcurve using the reference filter
    Dref, v1ref, v2ref = MTQ_2011.MTQ_FilterParams(RefFilt,Tags,ModelParams)
    u1ref, u2ref = LDC_v2u(v1ref,v2ref)

    tT = ModelParams['tT']['value']
    tG = ModelParams['tG']['value']
    
    TransitRef = MTQ_2011.MTQ_getDerivedParams(Dref,tT,tG,u1ref,u2ref,Period)
    #print TransitRef
    derived['inc'] = {'value':TransitRef['inc']*180e0/np.pi,'printformat':'.4f'}
    derived['b'] = {'value':TransitRef['b'],'printformat':'.6f'}
    derived['aRs'] = {'value':TransitRef['aRs'],'printformat':'.6f'}
    derived['velRs'] = {'value':TransitRef['velRs'],'printformat':'.6f'}
    derived['rho_star'] = {'value':TransitRef['rho_star'],'printformat':'.6f'}
    derived['RpRs'+'.'+ModelParams['RefFilt']['printformat']] = \
    {'value':TransitRef['RpRs'],'printformat':'.9f'}
    
    for key in ModelParams.keys():
        if key.startswith('T0'):
            split_TT = map(str,key.split('.'))
            transit_tag = split_TT[1].strip()
    
            # compute D, v1, v2 and then u1 and u2 for a given transit tag
            D, v1, v2 = MTQ_2011.MTQ_FilterParams(transit_tag,Tags,ModelParams)
            u1, u2 = LDC_v2u(v1,v2)
            RpRs = computeRpRs(u1,u2,tT,tG,D)
            filterD = filterMatchD(transit_tag,Tags,ModelParams)
            #print filterD
            derived['RpRs'+'.'+filterD] = {'value':RpRs,'printformat':'.9f'}
    
    DerivedLine = ''
    if istep == 0:
        keylist = derived.keys()
    else:
        keylist = keyList0

    Nkeys = len(keylist)
    if istep == 0:
        keyorder = {}
        for i in range(len(keylist)):
            keyorder[i] = keylist[i]
        for i in range(Nkeys):
            if i == 0:
                DerivedLine =\
                str(format(derived[keylist[i]]['value'],\
                derived[keylist[i]]['printformat']))
            else:
                DerivedLine =\
                DerivedLine+'|'+str(format(derived[keylist[i]]['value'],\
                derived[keylist[i]]['printformat']))
    else:
        for i in range(Nkeys):
            if i == 0:
                DerivedLine =\
                str(format(derived[keylist[i]]['value'],\
                derived[keylist[i]]['printformat']))
            else:
                DerivedLine = DerivedLine+'|'+str(format(derived[keylist[i]]['value'],\
                derived[keylist[i]]['printformat']))

    DerivedLine = DerivedLine+'|'+str(format(istep,'.0f'))+'|:'
    
    return DerivedLine, keylist