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)
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)