Exemple #1
0
def redshiftDistributionValidation(dbobj, obs_metadata, doSaveFigs, fileBase):
    dmag = 1.
    magbins = numpy.arange(18., 25., dmag)
    dz = 0.1
    zbins = numpy.arange(0., 3.+dz, dz)
    zbinx = [(el1+el2)/2. for el1,el2 in zip(zbins[:-1], zbins[1:])]
    #These are the values for z_o from Coil (2004) for the mag ranges above
    z_o_corr = [0.091, 0.136, 0.197, 0.239, 0.288, 0.324]
    z_o_err = [0.01, 0.007, 0.005, 0.005, 0.006, 0.01]

    #z_o_corr = 0.0417*numpy.array([(el1+el2)/2. for el1,el2 in zip(magbins[:-1], magbins[1:])]) - 0.744
    histData = []
    area = (2.*2.25)*(2.*2.25)
    for i in magbins:
        #from Lupton: http://www.sdss.org/dr5/algorithms/sdssUBVRITransform.html#Lupton2005
        t = dbobj.getCatalog("ref_catalog_galaxy", 
                             obs_metadata=obs_metadata, 
                             constraint="i_ab-0.1 between %f and %f"%(i, i+dmag))
                             #constraint="r_ab - 1.24444*(r_ab-i_ab) - 0.3820 between %f and %f"%(i,i+dmag))
        hist = None
        ii = 0
        for chunk, colMap in t.iter_catalog_chunks(chunk_size=100000):
            redshift = chunk[colMap['redshift']]
            thist = numpy.histogram(redshift, bins=zbins, normed=False)
            print "Done %i -- %f to %f"%(ii, i, i+dmag )
            if hist is None:
                hist = thist[0]
            else:
                hist += thist[0]
            ii += 1
        histData.append(hist)
    if doSaveFigs:
        ValidationUtils.plotNofz(histData, zbinx, magbins, z_o_corr, z_o_err, area, filename=fileBase+"_galaxyNofz.png")
    else:
        ValidationUtils.plotNofz(histData, zbinx, magbins, z_o_corr, z_o_err, area)
Exemple #2
0
def galaxyCountValidation(dbobj, doSaveFigs, fileBase):
    binsize = 0.5
    bins = numpy.arange(14.1, 28.6, binsize)
    compx, compy, comperr = ValidationUtils.read_Durham_counts("baseValidation/test_data/idata.txt")
    compx = numpy.array(compx)
    compy = numpy.array(compy)
    comperr = numpy.array(comperr)
    compx += 0.6
    comp_means = numpy.histogram(compx, bins=bins, weights=compy)[0]/numpy.histogram(compx, bins=bins)[0]
    norm = (2.*2.25)*(2.*2.25)
    ii = 0
    basemean = []
    binx = []
    for i in bins[:-1]:
        qstr = "select count(*) from %s where i_ab_orig between %f and %f"%(dbobj.tableid, i, i+binsize)
        cur = dbobj.engine.execute(qstr)
        result = cur.fetchone()
        basemean.append(result[0]/norm)
        binx.append((i+i+binsize)/2.)
        print i, result[0], result[0]/(result[0]/norm/comp_means[ii]) - result[0], result[0]/norm, comp_means[ii], result[0]/norm/comp_means[ii]
        ii += 1
    if doSaveFigs:
        ValidationUtils.plotN(compx, compy, comperr, basemean, binx, filename=fileBase+"_galaxyCounts.png")
        ValidationUtils.plotNResidCume(compx, compy, comperr, basemean, binx, filename=fileBase+"_galaxyCountsResidCume.png")
    else:
        ValidationUtils.plotN(compx, compy, comperr, basemean, binx)
        ValidationUtils.plotNResidCume(compx, compy, comperr, basemean, binx)