def classQSO(parser): (options,args)= parser.parse_args() if len(args) == 0: parser.print_help() return if os.path.exists(args[0]): print filename+" exists" print "Remove this file before running ..." print "Returning ..." return None #Load fit params: Quasars if options.qsomodel == 'test': if len(options.band) == 1: qsoparams= [{'gamma':0.3,'logA':-2.}] else:#Multi-band qsoparams= [{'gamma':0.2,'logA':-2., 'gammagr':0.0001,'logAgr':-2.}] qsoweights= [1.] elif options.qsomodel == 'zero': qsoparams= [{}] qsoweights= [1.] elif os.path.exists(options.qsomodel): qsofile= open(options.qsomodel,'rb') qsoparams= pickle.load(qsofile) qsoweights= nu.array(pickle.load(qsofile),dtype='float64') qsofile.close() else: print "Input to 'qsomodel' not recognized ..." print "Returning ..." return #Stars if options.starmodel == 'test': if len(options.band) == 1: starparams= [{'gamma':0.0001,'logA':-3.5}] else:#Multi-band starparams= [{'gamma':0.1,'logA':-3., 'gammagr':0.0001,'logAgr':-2.}] starweights= [1.] elif options.starmodel == 'zero': starparams= [{}] starweights= [1.] elif os.path.exists(options.starmodel): starfile= open(options.starmodel,'rb') starparams= pickle.load(starfile) starweights= nu.array(pickle.load(starfile),dtype='float64') starfile.close() else: print "Input to 'starmodel' not recognized ..." print "Returning ..." return #RR Lyrae if options.rrlyraemodel == 'test': if len(options.band) == 1: rrlyraeparams= [{'gamma':0.0001,'logA':-2.}] else:#Multi-band rrlyraeparams= [{'gamma':0.1,'logA':-2., 'gammagr':0.0001,'logAgr':-2.}] rrlyraeweights= [1.] elif options.rrlyraemodel == 'zero': rrlyraeparams= [{}] rrlyraeweights= [1.] elif os.path.exists(options.rrlyraemodel): rrlyraefile= open(options.rrlyraemodel,'rb') rrlyraeparams= pickle.load(rrlyraefile) rrlyraeweights= nu.array(pickle.load(rrlyraefile),dtype='float64') rrlyraefile.close() else: print "Input to 'rrlyraemodel' not recognized ..." print "Returning ..." return #normalize weights qsoweights/= nu.sum(qsoweights) starweights/= nu.sum(starweights) rrlyraeweights/= nu.sum(rrlyraeweights) #Load location of the data if options.resampled: if os.path.exists(options.sample): samplefile= open(options.sample,'rb') objs= pickle.load(samplefile) samplefile.close() else: print "'--resampled' is set, but --sample= filename does not exist ..." print "Returning ..." return None else: if options.sample == 'nuvx': dir= '../data/nuvx/' if options.sample == 'nuvxall': dir= '../data/nuvx_all/' if options.sample == 'uvx': dir= '../data/uvx/' objs= QSOfilenames(dir=dir) #Classify each source out= [] allcount, count= 0, 0 for obj in objs: allcount+= 1 if options.resampled: key= obj[0] else: key= os.path.basename(obj) #if key != 'SDSSJ013306.18-004523.8.fit': # continue print "Working on "+str(count)+"(%i/%i): " % (allcount,len(objs))+key if options.resampled: v= obj[1] else: v= VarQso(obj) if v.nepochs(options.band) < options.minepochs: print "This object does not have enough epochs ..." continue varout= VarClass() varout.key= key #quasar likelihoods qsolike= [] for ii in range(len(qsoparams)): qsolike.append(v.loglike(band=options.band,type=options.type, params=qsoparams[ii]) +nu.log(qsoweights[ii])) qsolike= logsum(qsolike) varout.qsologlike= qsolike #star likelihoods starlike= [] for ii in range(len(starparams)): starlike.append(v.loglike(band=options.band,type=options.type, params=starparams[ii]) +nu.log(starweights[ii])) starlike= logsum(starlike) varout.starloglike= starlike #RR Lyrae likelihoods rrlyraelike= [] for ii in range(len(rrlyraeparams)): rrlyraelike.append(v.loglike(band=options.band,type=options.type, params=rrlyraeparams[ii]) +nu.log(rrlyraeweights[ii])) rrlyraelike= logsum(rrlyraelike) varout.rrlyraeloglike= rrlyraelike #print qsolike, starlike if qsolike > starlike and qsolike > rrlyraelike: print qsolike, starlike, rrlyraelike out.append(varout) count+= 1 #if count > 500: break #Save for jj in range(len(out)): if out[jj].qsologlike > out[jj].starloglike and out[jj].qsologlike > out[jj].rrlyraeloglike: print out[jj].key saveClass(out,args[0]) return None
def classQSO(parser): (options, args) = parser.parse_args() if len(args) == 0: parser.print_help() return if os.path.exists(args[0]): print filename + " exists" print "Remove this file before running ..." print "Returning ..." return None #Load fit params: Quasars if options.qsomodel == 'test': if len(options.band) == 1: qsoparams = [{'gamma': 0.3, 'logA': -2.}] else: #Multi-band qsoparams = [{ 'gamma': 0.2, 'logA': -2., 'gammagr': 0.0001, 'logAgr': -2. }] qsoweights = [1.] elif options.qsomodel == 'zero': qsoparams = [{}] qsoweights = [1.] elif os.path.exists(options.qsomodel): qsofile = open(options.qsomodel, 'rb') qsoparams = pickle.load(qsofile) qsoweights = nu.array(pickle.load(qsofile), dtype='float64') qsofile.close() else: print "Input to 'qsomodel' not recognized ..." print "Returning ..." return #Stars if options.starmodel == 'test': if len(options.band) == 1: starparams = [{'gamma': 0.0001, 'logA': -3.5}] else: #Multi-band starparams = [{ 'gamma': 0.1, 'logA': -3., 'gammagr': 0.0001, 'logAgr': -2. }] starweights = [1.] elif options.starmodel == 'zero': starparams = [{}] starweights = [1.] elif os.path.exists(options.starmodel): starfile = open(options.starmodel, 'rb') starparams = pickle.load(starfile) starweights = nu.array(pickle.load(starfile), dtype='float64') starfile.close() else: print "Input to 'starmodel' not recognized ..." print "Returning ..." return #RR Lyrae if options.rrlyraemodel == 'test': if len(options.band) == 1: rrlyraeparams = [{'gamma': 0.0001, 'logA': -2.}] else: #Multi-band rrlyraeparams = [{ 'gamma': 0.1, 'logA': -2., 'gammagr': 0.0001, 'logAgr': -2. }] rrlyraeweights = [1.] elif options.rrlyraemodel == 'zero': rrlyraeparams = [{}] rrlyraeweights = [1.] elif os.path.exists(options.rrlyraemodel): rrlyraefile = open(options.rrlyraemodel, 'rb') rrlyraeparams = pickle.load(rrlyraefile) rrlyraeweights = nu.array(pickle.load(rrlyraefile), dtype='float64') rrlyraefile.close() else: print "Input to 'rrlyraemodel' not recognized ..." print "Returning ..." return #normalize weights qsoweights /= nu.sum(qsoweights) starweights /= nu.sum(starweights) rrlyraeweights /= nu.sum(rrlyraeweights) #Load location of the data if options.resampled: if os.path.exists(options.sample): samplefile = open(options.sample, 'rb') objs = pickle.load(samplefile) samplefile.close() else: print "'--resampled' is set, but --sample= filename does not exist ..." print "Returning ..." return None else: if options.sample == 'nuvx': dir = '../data/nuvx/' if options.sample == 'nuvxall': dir = '../data/nuvx_all/' if options.sample == 'uvx': dir = '../data/uvx/' objs = QSOfilenames(dir=dir) #Classify each source out = [] allcount, count = 0, 0 for obj in objs: allcount += 1 if options.resampled: key = obj[0] else: key = os.path.basename(obj) #if key != 'SDSSJ013306.18-004523.8.fit': # continue print "Working on " + str(count) + "(%i/%i): " % (allcount, len(objs)) + key if options.resampled: v = obj[1] else: v = VarQso(obj) if v.nepochs(options.band) < options.minepochs: print "This object does not have enough epochs ..." continue varout = VarClass() varout.key = key #quasar likelihoods qsolike = [] for ii in range(len(qsoparams)): qsolike.append( v.loglike(band=options.band, type=options.type, params=qsoparams[ii]) + nu.log(qsoweights[ii])) qsolike = logsum(qsolike) varout.qsologlike = qsolike #star likelihoods starlike = [] for ii in range(len(starparams)): starlike.append( v.loglike(band=options.band, type=options.type, params=starparams[ii]) + nu.log(starweights[ii])) starlike = logsum(starlike) varout.starloglike = starlike #RR Lyrae likelihoods rrlyraelike = [] for ii in range(len(rrlyraeparams)): rrlyraelike.append( v.loglike(band=options.band, type=options.type, params=rrlyraeparams[ii]) + nu.log(rrlyraeweights[ii])) rrlyraelike = logsum(rrlyraelike) varout.rrlyraeloglike = rrlyraelike #print qsolike, starlike if qsolike > starlike and qsolike > rrlyraelike: print qsolike, starlike, rrlyraelike out.append(varout) count += 1 #if count > 500: break #Save for jj in range(len(out)): if out[jj].qsologlike > out[jj].starloglike and out[ jj].qsologlike > out[jj].rrlyraeloglike: print out[jj].key saveClass(out, args[0]) return None