def __init__(self, name, zclust, sigmaz, voronoi_bin=''): self.name = name self.zclust = zclust self.sigmaz = sigmaz self.masslimits = mypy.readcat( '../data/completeness/masslimits_%s_master.dat' % name) self.data = mypy.readcat('%s/MF_%s_LSS%s.dat' % (data_dir, name, voronoi_bin)) #self.data_2filter = mypy.readcat('%s/MF_%s_LSS%s_2filter.dat' % (data_dir, name, voronoi_bin)) self.mf_field = pickle.load( open('../data/MF_%s_field.pickle' % name, 'rb')) self.mf_voronoi_slices = pickle.load( open('../data/MF_%s_voronoi_slices.pickle' % name, 'rb'))
def gunzip_read_gzip(path2file, readcat=0, readzout=0, dtype=float, delimiter=None, comments='#'): if readcat == readzout: raise IOError('Need to specify either readcat or readzout!') print ' reading: %s' % os.path.basename(path2file) subprocess.call('gunzip %s' % path2file, shell=1) if readcat: outer = mypy.readcat(path2file[:-3], dtype=dtype, delimiter=delimiter, comments=comments) elif readzout: outer = mypy.readzout(path2file[:-3]) subprocess.call('gzip %s' % path2file[:-3], shell=1) return outer
def __init__(self, name, name2, zclust, sigmaz, filterinfo=['', -1], maglim=0): self.name = name self.name2 = name2 self.zclust = zclust self.sigmaz = sigmaz self.filterinfo = filterinfo self.maglim = maglim self.data = mypy.readcat('%s/masslimits_%s_%s.dat' % (data_dir, name, filterinfo[0]))
def __init__(self, name, version, zclust, sigmaz, alpha=50, chi2red_thresh=10, uvj_slope=0.88, uvj_intercept=0.59): self.name = name # e.g. "NEP 200" self.version = version # e.g. "nep200_v0.0.4" self.zclust = zclust # cluster redshift self.sigmaz = sigmaz # 1sigma scatter in (zphot-zspec)/(1+zspec) self.zspec_lo = 0 # lower redshift bound for specz self.zspec_hi = 0 # upper redshift bound for specz self.substructures = [] self.alpha = alpha self.cat = gunzip_read_gzip('%s/%s/%s.cat.gz' % (github_dir, version, version), readcat=1) self.zout = gunzip_read_gzip('%s/%s/%s.zout.gz' % (github_dir, version, version), readzout=1) self.fout = gunzip_read_gzip('%s/%s/%s_ZFparams.fout.gz' % (github_dir, version, version), readcat=1) self.restframe = gunzip_read_gzip('%s/%s/%s.restframe.gz' % (github_dir, version, version), readcat=1) #self.rfcolors = gunzip_read_gzip('%s/%s/%s.restframe_colors.gz' % (github_dir, version, version), readcat=1) ### SETTING OBJECTS IDENTIFIED AS SECURE STARS FROM SPECTROSCOPY TO use=0 self.crossmatch = gunzip_read_gzip('%s/%s/%s.crossmatch.gz' % (github_dir, version, version), readcat=1, dtype=str) self.star_inds = pylab.find(self.crossmatch.Q == '-1') for i_star in self.star_inds: id_phot_arr = self.crossmatch.id_phot[i_star].split(',') for id_phot in id_phot_arr: if id_phot != '-1': self.cat.use[int(id_phot)-1] *= 0 print ' reading: %s_voronoi.pickle' % name self.voronoi = pickle.load(open('/Users/atomczak/Dropbox/ORELSE/DATA/VORONOI/%s_voronoi.pickle' % name, 'rb')) self.overdens_max = [] for vi in range(len(self.voronoi.overdens_matrix)): self.overdens_max.append(self.voronoi.overdens_matrix[vi].max()) self.overdens_max = pylab.array(self.overdens_max) ### mass completeness limits self.masslimits = mypy.readcat('../data/completeness/masslimits_%s_master.dat' % name) ### UPDATING USE FLAG WITH REDUCE CHI**2 THRESHOLD chi2red = self.zout.chi_p / (self.zout.nfilt - 1.) cinds = pylab.find((chi2red > chi2red_thresh) & (self.cat.z_spec < 0)) self.cat.use[cinds] = 0. ### UVJ classification self.UV_color = -2.5 * pylab.log10(self.restframe.restflux_U / self.restframe.restflux_V) self.VJ_color = -2.5 * pylab.log10(self.restframe.restflux_V / self.restframe.restflux_J) self.UV_color_err = pylab.sqrt((2.5 / pylab.log(10))**2 * \ ((self.restframe.errflux_U / self.restframe.restflux_U)**2 + \ (self.restframe.errflux_V / self.restframe.restflux_V)**2)) self.VJ_color_err = pylab.sqrt((2.5 / pylab.log(10))**2 * \ ((self.restframe.errflux_V / self.restframe.restflux_V)**2 + \ (self.restframe.errflux_J / self.restframe.restflux_J)**2)) self.uvj_class = uvj_select(self.UV_color, self.VJ_color, self.fout.z, uvj_slope=uvj_slope, uvj_intercept=uvj_intercept) ### UVJ classification based on EAZY in 2-filter mode #self.UV_color_2filter = self.rfcolors.U_V_color #self.VJ_color_2filter = self.rfcolors.V_J_color #self.uvj_class_2filter = mypy.uvj_select(self.UV_color_2filter, self.VJ_color_2filter, self.fout.z) ### NUVrJ classification self.NUVr_color = -2.5 * pylab.log10(self.restframe.restflux_NUV / self.restframe.restflux_r) self.rJ_color = -2.5 * pylab.log10(self.restframe.restflux_r / self.restframe.restflux_J) self.nuvrj_class = mypy.nuvrj_select(self.NUVr_color, self.rJ_color, self.fout.z) xyrd1 = self.cat.x[0], self.cat.y[0], self.cat.ra[0], self.cat.dec[0] xyrd2 = self.cat.x[1], self.cat.y[1], self.cat.ra[1], self.cat.dec[1] d_arcsec = mypy.radec_sep(xyrd1[2], xyrd1[3], xyrd2[2], xyrd2[3]) d_pixel = ((xyrd1[0]-xyrd2[0])**2 + (xyrd1[1] - xyrd2[1])**2)**0.5 self.px_scale = d_arcsec / d_pixel ### getting z band magnitude try: self.zmagnitude = 25 - 2.5 * pylab.log10(self.cat.fluxauto_z) except: pass if name != 'SC1324': try: self.zmagnitude = 25 - 2.5 * pylab.log10(self.cat.fluxauto_Zplus) except: pass ### setting spatial flag based on Convex Hull method #zspecinds = pylab.find(self.cat.z_spec > 0) #self.spatial_flag = checkPoint(self.cat.ra[zspecinds], self.cat.dec[zspecinds], self.cat.ra, self.cat.dec) #self.inds_spatial = pylab.find(self.spatial_flag == 1) ### setting spatial flag based on Concave Hull method (creates a "tighter" spatial selection than Cnvex Hull) zspecinds = pylab.find(self.cat.z_spec > 0) points = pylab.array(zip(self.cat.x[zspecinds], self.cat.y[zspecinds])) self.concave_hull, self.edge_points = alpha_shape(points, alpha) self.inds_spatial = CheckPoints(self.concave_hull.buffer(10), self.cat.x, self.cat.y) self.area_pix2 = self.concave_hull.buffer(10).area self.area_arcmin2 = self.area_pix2 * (self.px_scale/60.)**2 print ''
def readcat_gzip(catname): subprocess.call('gunzip %s.gz' % catname, shell=1) output = mypy.readcat(catname) subprocess.call('gzip %s' % catname, shell=1) return output
def __init__(self, name, version, zclust, sigmaz, alpha=50, chi2red_thresh=10): self.name = name # e.g. "NEP 200" self.version = version # e.g. "nep200_v0.0.4" self.zclust = zclust # cluster redshift self.sigmaz = sigmaz # 1sigma scatter in (zphot-zspec)/(1+zspec) self.zspec_lo = 0 # lower redshift bound for specz self.zspec_hi = 0 # upper redshift bound for specz self.substructures = [] self.alpha = alpha self.chi2red_thresh = chi2red_thresh self.cat = gunzip_read_gzip('%s/%s/%s.cat.gz' % (data_dir, version, version), readcat=1) self.zout = gunzip_read_gzip('%s/%s/%s.zout.gz' % (data_dir, version, version), readzout=1) self.fout = gunzip_read_gzip('%s/%s/%s.fout.gz' % (data_dir, version, version), readcat=1) self.restframe = gunzip_read_gzip('%s/%s/%s.restframe.gz' % (data_dir, version, version), readcat=1) self.masslimits = mypy.readcat( '../data/completeness/masslimits_%s.dat' % name) ### UPDATING USE FLAG WITH REDUCE CHI**2 THRESHOLD chi2red = self.zout.chi_p / (self.zout.nfilt - 1.) cinds = pylab.find((chi2red > chi2red_thresh) & (self.cat.z_spec < 0)) self.cat.use[cinds] = 0. ### UVJ classification self.UV_color = -2.5 * pylab.log10( self.restframe.restflux_U / self.restframe.restflux_V) self.VJ_color = -2.5 * pylab.log10( self.restframe.restflux_V / self.restframe.restflux_J) self.uvj_class = mypy.uvj_select(self.UV_color, self.VJ_color, self.fout.z) xyrd1 = self.cat.x[0], self.cat.y[0], self.cat.ra[0], self.cat.dec[0] xyrd2 = self.cat.x[1], self.cat.y[1], self.cat.ra[1], self.cat.dec[1] d_arcsec = mypy.radec_sep(xyrd1[2], xyrd1[3], xyrd2[2], xyrd2[3]) d_pixel = ((xyrd1[0] - xyrd2[0])**2 + (xyrd1[1] - xyrd2[1])**2)**0.5 self.px_scale = d_arcsec / d_pixel ### getting z band magnitude try: self.zmagnitude = 25 - 2.5 * pylab.log10(self.cat.fluxauto_z) except: pass if name != 'SC1324': try: self.zmagnitude = 25 - 2.5 * pylab.log10( self.cat.fluxauto_Zplus) except: pass ### setting spatial flag based on Convex Hull method #zspecinds = pylab.find(self.cat.z_spec > 0) #self.spatial_flag = checkPoint(self.cat.ra[zspecinds], self.cat.dec[zspecinds], self.cat.ra, self.cat.dec) #self.inds_spatial = pylab.find(self.spatial_flag == 1) ### setting spatial flag based on Concave Hull method (creates a "tighter" spatial selection than Cnvex Hull) zspecinds = pylab.find(self.cat.z_spec > 0) points = pylab.array(zip(self.cat.x[zspecinds], self.cat.y[zspecinds])) self.concave_hull, self.edge_points = alpha_shape(points, alpha) self.inds_spatial = CheckPoints(self.concave_hull.buffer(10), self.cat.x, self.cat.y) self.area_pix2 = self.concave_hull.buffer(10).area self.area_arcmin2 = self.area_pix2 * (self.px_scale / 60.)**2 print ''
[8, 0.17, 12.63, 5.04], [9, 0.18, 12.46, 4.49], [10, 0.20, 12.25, 3.98], [11, 0.22, 12.01, 3.53], [12, 0.25, 11.66, 3.02], [13, 0.29, 11.16, 2.48], [14, 0.31, 10.86, 2.24], [15, 0.33, 10.53, 2.01], [16, 0.37, 10.05, 1.74], [17, 0.40, 9.49, 1.49], [18, 0.44, 8.86, 1.26], [19, 0.50, 7.93, 1.00], [20, 0.54, 7.37, 0.87], [21, 0.58, 6.71, 0.74], [22, 0.62, 6.01, 0.62], [23, 0.67, 5.19, 0.50], [24, 0.73, 4.16, 0.37], [25, 0.79, 3.23, 0.27], [26, 0.85, 2.29, 0.18], [27, 0.91, 1.34, 0.10], [28, 1.00, 0.00, 0.00]] snapshots = [snapshot(*info) for info in snapshots_info] ### mass-completeness limits masslim_catalogs = glob.glob('../data/completeness/masslimits_*_master.dat') masslim_data = [mypy.readcat(mi) for mi in masslim_catalogs] masslim95 = pylab.array([mi.masslim95 for mi in masslim_data]) masslim95_zax = masslim_data[0].z masslim95_average = masslim95.sum(axis=0) / len(masslim95) eagle_dir = '../data/eagle_simulations' sim_catalogs = glob.glob('%s/snap*.dat' % eagle_dir) t0 = time.time() for si in range(15, 24 + 1): simdata = mypy.readcat(sim_catalogs[si]) ### selecting galaxies above the average ORELSE mass limit masslim = pylab.interp(snapshots[si].redshift, masslim95_zax, masslim95_average)
def __init__(self, name, version, zclust, sigmaz, alpha=50, chi2red_thresh=10, uvj_slope=0.88, uvj_intercept=0.59, radio_AGN_filename=None, readcats=True): self.name = name # e.g. "NEP 200" self.version = version # e.g. "nep200_v0.0.4" self.zclust = zclust # cluster redshift self.sigmaz = sigmaz # 1sigma scatter in (zphot-zspec)/(1+zspec) self.zspec_lo = 0 # lower redshift bound for specz self.zspec_hi = 0 # upper redshift bound for specz self.alpha = alpha if readcats: print ' reading: %s.cat' % version self.cat = mypy.readcat('%s/%s/%s/%s.cat.gz' % (github_dir, github_photo_cats, version, version)) print ' reading: %s.zout' % version self.zout = mypy.readzout('%s/%s/%s/%s.zout.gz' % (github_dir, github_photo_cats, version, version)) print ' reading: %s_ZFparams.fout' % version self.fout = mypy.readcat('%s/%s/%s/%s_ZFparams.fout.gz' % (github_dir, github_photo_cats, version, version)) print ' reading: %s.fir' % version self.fir = mypy.readcat('%s/%s/%s/%s.fir.gz' % (github_dir, github_photo_cats, version, version)) print ' reading: %s.restframe' % version self.restframe = mypy.readcat('%s/%s/%s/%s.restframe.gz' % (github_dir, github_photo_cats, version, version)) #print ' reading: %s.restframe_colors' % version #self.rfcolors = mypy.readcat('%s/%s/%s/%s.restframe_colors.gz' % (github_dir, github_photo_cats, version, version)) ### SETTING OBJECTS IDENTIFIED AS SECURE STARS FROM SPECTROSCOPY TO use=0 self.crossmatch = mypy.readcat('%s/%s/%s/%s.crossmatch.gz' % (github_dir, github_photo_cats, version, version), dtype=str) self.star_inds = self.crossmatch.Q == '-1' for i_star in self.star_inds: id_phot_arr = self.crossmatch.id_phot[i_star].split(',') for id_phot in id_phot_arr: if id_phot != '-1': self.cat.use[int(id_phot)-1] *= 0 print ' reading: %s_voronoi.pickle' % name self.voronoi = pickle.load(open('/Users/atomczak/Dropbox/ORELSE/DATA/VORONOI/%s_voronoi.pickle' % name, 'rb')) self.overdens_max = [] for vi in range(len(self.voronoi.overdens_matrix)): self.overdens_max.append(self.voronoi.overdens_matrix[vi].max()) self.overdens_max = numpy.array(self.overdens_max) ### UPDATING USE FLAG WITH REDUCE CHI**2 THRESHOLD chi2red = self.zout.chi_p / (self.zout.nfilt - 1.) cinds = (chi2red > chi2red_thresh) & (self.cat.z_spec < 0) self.cat.use[cinds] = 0. ### UVJ classification self.UV_color = -2.5 * numpy.log10(self.restframe.restflux_U / self.restframe.restflux_V) self.VJ_color = -2.5 * numpy.log10(self.restframe.restflux_V / self.restframe.restflux_J) self.uvj_class = mypy.uvj_select(self.UV_color, self.VJ_color, self.fout.z) #self.uvj_class = uvj_select(self.UV_color, self.VJ_color, self.fout.z, uvj_slope=uvj_slope, uvj_intercept=uvj_intercept) ### UVJ classification based on EAZY in 2-filter mode #self.UV_color_2filter = self.rfcolors.U_V_color #self.VJ_color_2filter = self.rfcolors.V_J_color #self.uvj_class_2filter = mypy.uvj_select(self.UV_color_2filter, self.VJ_color_2filter, self.fout.z) ### NUVrJ classification self.NUVr_color = -2.5 * numpy.log10(self.restframe.restflux_NUV / self.restframe.restflux_r) self.rJ_color = -2.5 * numpy.log10(self.restframe.restflux_r / self.restframe.restflux_J) self.nuvrj_class = mypy.nuvrj_select(self.NUVr_color, self.rJ_color, self.fout.z) ########################### ### adding Radio AGN flag ########################### self.radio_AGN_cat = None self.AGN_flag_radio = numpy.zeros(len(self.cat.id)) if radio_AGN_filename != None: self.radio_AGN_cat = mypy.readcat('%s/%s/%s' % (github_dir, github_radio_cats, radio_AGN_filename), dtype=str) ids_radio_AGN = self.radio_AGN_cat.id_phot.astype(int) self.AGN_flag_radio[ids_radio_AGN - 1] = 1 ########################### ### adding Xray AGN flag ########################### self.xray_AGN_cat = None self.AGN_flag_xray = numpy.zeros(len(self.cat.id)) xyrd1 = self.cat.x[0], self.cat.y[0], self.cat.ra[0], self.cat.dec[0] xyrd2 = self.cat.x[1], self.cat.y[1], self.cat.ra[1], self.cat.dec[1] d_arcsec = mypy.radec_sep(xyrd1[2], xyrd1[3], xyrd2[2], xyrd2[3]) d_pixel = ((xyrd1[0]-xyrd2[0])**2 + (xyrd1[1] - xyrd2[1])**2)**0.5 self.px_scale = d_arcsec / d_pixel ### getting z band magnitude try: self.zmagnitude = 25 - 2.5 * numpy.log10(self.cat.fluxauto_z) except: pass if name != 'SC1324': try: self.zmagnitude = 25 - 2.5 * numpy.log10(self.cat.fluxauto_Zplus) except: pass ### setting spatial flag based on Convex Hull method #zspecinds = self.cat.z_spec > 0 #self.spatial_flag = checkPoint(self.cat.ra[zspecinds], self.cat.dec[zspecinds], self.cat.ra, self.cat.dec) #self.inds_spatial = self.spatial_flag == 1 ### setting spatial flag based on Concave Hull method (creates a "tighter" spatial selection than Cnvex Hull) zspecinds = self.cat.z_spec > 0 points = numpy.array(zip(self.cat.x[zspecinds], self.cat.y[zspecinds])) self.concave_hull, self.edge_points = mypy.alpha_shape(points, alpha) self.inds_spatial = mypy.CheckPoints(self.concave_hull.buffer(10), self.cat.x, self.cat.y) self.area_pix2 = self.concave_hull.buffer(10).area self.area_arcmin2 = self.area_pix2 * (self.px_scale/60.)**2 print ''
sp.plot(xmodel, ymodel, color='r', label='2x Schechter fit', zorder=1) if zi == 3: title = 'All fields minus LSS' leg = sp.legend(loc=3, fontsize=15, title=title) leg.get_title().set_fontsize(15) fig.savefig('../output/schechter_fits.png') pylab.close() ### plotting schechter params vs. redshift dschechter_fits = pylab.array(dschechter_fits) dschechter_errs = pylab.array(dschechter_errs) zfourge_params = mypy.readcat( '/Users/atomczak/PROJECTS/MASS-FUNCTIONS_v2/tables/table2_TOT.dat') inds = pylab.arange(len(zbins)) fig = pylab.figure(figsize=(23, 8.5)) sp1 = fig.add_subplot(131) sp2 = fig.add_subplot(132) sp3 = fig.add_subplot(133) sp1.minorticks_on() sp2.minorticks_on() sp3.minorticks_on() sp1.grid() sp2.grid() sp3.grid()
self.z = redshift snapshots_info = [[15, 0.33, 10.53, 2.01], [16, 0.37, 10.05, 1.74], [17, 0.40, 9.49, 1.49], [18, 0.44, 8.86, 1.26], [19, 0.50, 7.93, 1.00], [20, 0.54, 7.37, 0.87], [21, 0.58, 6.71, 0.74], [22, 0.62, 6.01, 0.62], [23, 0.67, 5.19, 0.50], [24, 0.73, 4.16, 0.37]] snapshots = [snapshot(*info) for info in snapshots_info] redshifts = pylab.array([snp.redshift for snp in snapshots]) age = cosmo.age(redshifts).value ### reading catalogs eagle_dir = '../data/eagle_simulations' cats = [ mypy.readcat('%s/snap%02i.dat' % (eagle_dir, snp.id)) for snp in snapshots ] ### reading overdensity maps vmaps = [ fits.getdata('%s/medVoronoi.overdens.%02i.fits' % (eagle_dir, snp.id)) for snp in snapshots ] ### indices of galaxies to track inds0 = pylab.find((cats[0].stellarMass)) pylab.shuffle(inds0) x_all = pylab.zeros((len(inds0), len(snapshots))) y_all = pylab.zeros((len(inds0), len(snapshots)))
rxj1716_voronoi_maps = fits.open('%s/RXJ1716.mastermedVoronoi.overdens.100iterations.fits' % voronoi_dir) ind = 18 # index of voronoi map centered on zclust voronoi_map = rxj1716_voronoi_maps[ind].data voronoi_wcs = wcs.WCS(rxj1716_voronoi_maps[18].header) z1, z2 = rxj1716_voronoi_maps[ind].header['Z1'], rxj1716_voronoi_maps[ind].header['Z2'] xgrid = pylab.arange(0., voronoi_map.shape[0], 1) ygrid = pylab.arange(0., voronoi_map.shape[1], 1) ragrid, decgrid = voronoi_wcs.wcs_pix2world(xgrid, ygrid, 1) kernel = mypy.gauss2d(3, 3, 1, 1, 1, 0.5, 0.5) kernel /= kernel.sum() voronoi_map = signal.convolve2d(voronoi_map, kernel, mode='same') cat = mypy.readcat('%s/%s/%s.cat.gz' % (data_dir, version, version)) fout = mypy.readcat('%s/%s/%s.fout.gz' % (data_dir, version, version)) zout = mypy.readzout('%s/%s/%s.zout.gz' % (data_dir, version, version)) ### coordinates and size of large box (size in arcmin) ra0, dec0, box_size_amin, cutout_size_amin = 259.1919, 67.147616, 14., 2.5
xx, yy = pylab.meshgrid(range(-dx/2+1, dx/2+1), range(-dy/2+1, dy/2+1)) rr = (xx**2 + yy**2)**0.5 fratios = psfdat_zoom / psfdat_zoom.max() ind = pylab.where(abs(fratios - 0.5) == abs(fratios - 0.5).min()) fwhm_px = 2 * rr[ind][0] ### search for existing catalog of empty sky positions try: sky_positions = mypy.readcat('./catalogs/sky-positions_%s.cat' % (os.path.basename(imname)[:-5])) xy_final = pylab.array(zip(sky_positions.x, sky_positions.y)) noise_estimate = mypy.nmad(sky_positions.flux_aper) except: print '\nidentifying empty sky positions...' ### finding empty sky positions, must be 3 hwhms away from nearest object N0 = 3 * 10**3 xy_rand = pylab.rand(N0, 2) xy_rand[:,0] *= (imdat.shape[1] - 3*dx) xy_rand[:,1] *= (imdat.shape[0] - 3*dx) xy_rand[:,0] += 1.5*dx xy_rand[:,1] += 1.5*dx apers = CircularAperture(xy_rand, r=3*fwhm_px/2.)
sub_xlo = xlo + dx * rect[0] sub_ylo = ylo + dy * rect[1] inset = subplot.figure.add_axes([sub_xlo, sub_ylo, sub_dx, sub_dy]) return inset ##################################################################### ### Reading photometric catalog to obtain reference for galaxy ages ##################################################################### print '\nReading XLSS005 catalogs for reference ages...' t0 = time.time() data_dir = '/Users/atomczak/GitHub/ORELSE/Catalogs/tomczak_catalogs' version = 'xlss005_v0.0.3' cat_xlss005 = mypy.readcat('%s/%s/%s.cat.gz' % (data_dir, version, version)) fout_xlss005 = mypy.readcat('%s/%s/%s_ZFparams.fout.gz' % (data_dir, version, version)) inds_ages = numpy.where((cat_xlss005.use == 1) & (fout_xlss005.z > 0.5) & (fout_xlss005.z < 1.5) & -numpy.isnan(fout_xlss005.lmass))[0] lmass_xlss005 = fout_xlss005.lmass[inds_ages] lage_xlss005 = fout_xlss005.lage[inds_ages] del cat_xlss005, fout_xlss005 tf = time.time() print 'done! %i seconds\n' % (tf - t0)
dschechter_fits = [[] for i_vbin in range(5)] dschechter_covs = [[] for i_vbin in range(5)] p0_double = [10.9, -0.4, -1.5, 1.5e-2, 1.2e-3] p0_single = [-1., 10.9, 5.e-3] voronoi_labels = [ '-0.5 < log(1+$\delta_{\mathrm{gal}}$) < 0.0', '0.0 < log(1+$\delta_{\mathrm{gal}}$) < 0.5', '0.5 < log(1+$\delta_{\mathrm{gal}}$) < 1.0', '1.0 < log(1+$\delta_{\mathrm{gal}}$) < 1.5', '1.5 < log(1+$\delta_{\mathrm{gal}}$) < 2.0' ] ### multi-dimensional list to encapsulate all the SMFs from each jack-knife iteration smfdat_8fields = mypy.readcat( '../data/massFunctions_TOT_Tomczak+2017_8fields_N200_SC1324_RCS0224_RXJ1716_N5281_SC1604_SC0910_SC0849.dat' ) master_phis = [[[] for i_lmassbin in range(len(smfdat_8fields.lmass))] for i_vbin in range(5)] widgets = [ ' Running: ', progressbar.Percentage(), ' ', progressbar.Bar(marker=progressbar.RotatingMarker()), ' ', progressbar.ETA(), ' ', progressbar.FileTransferSpeed() ] pbar = progressbar.ProgressBar(widgets=widgets, maxval=len(files) + 1).start() for i_file in range(len(files)):
sub_xlo = xlo + dx * rect[0] sub_ylo = ylo + dy * rect[1] inset = subplot.figure.add_axes([sub_xlo, sub_ylo, sub_dx, sub_dy]) return inset ##################################################################### ### Reading photometric catalog to obtain reference for galaxy ages ##################################################################### print '\nReading XLSS005 catalogs for reference ages...' t0 = time.time() data_dir = '/Users/atomczak/GitHub/ORELSE/Catalogs/tomczak_catalogs' version = 'xlss005_v0.0.3' cat_xlss005 = mypy.readcat('%s/%s/%s.cat.gz' % (data_dir, version, version)) fout_xlss005 = mypy.readcat('%s/%s/%s_ZFparams.fout.gz' % (data_dir, version, version)) inds_ages = pylab.find((cat_xlss005.use == 1) & (fout_xlss005.z > 0.5) & (fout_xlss005.z < 1.5) & -numpy.isnan(fout_xlss005.lmass)) lmass_xlss005 = fout_xlss005.lmass[inds_ages] lage_xlss005 = fout_xlss005.lage[inds_ages] del cat_xlss005, fout_xlss005 tf = time.time() print 'done! %i seconds\n' % (tf - t0)
fields[ii].substructures.append(substructure('SC0849C+', 132.24443, 44.866012, 1.2631, 1006.8, 310.8, 17, 766.2, 97.6, 25, 14.540, 0.166)) fields[ii].substructures.append(substructure('SC0849D', 132.15110, 44.899400, 1.2700, 930.9, 147.7, 15, 788.7, 136.1, 24, 14.576, 0.225)) fields[ii].substructures.append(substructure('SC0849E+', 132.27496, 44.959253, 1.2600, 366.0, 205.9, 10, 414.1, 107.8, 14, 13.739, 0.339)) ### Note: I'm removing sg0023 because we feel that it isn't belong in this ### study due, in large part, to the fact that it's a lower-mass system. #fields[].substructures.append(substructure('0023-A*', 6.02560, 4.3590, 0.8396, 507.0, 125.5, 10, 412.8, 119.2, 14, 13.836, 0.578)) #fields[].substructures.append(substructure('0023-B1**', 5.97570, 4.3884, 0.8290, 106.2, 51.4, 12, 176.3, 29.6, 23, 12.730, 0.336)) #fields[].substructures.append(substructure('0023-B2+', 5.96970, 4.3820, 0.8453, 231.3, 53.8, 18, 277.8, 41.0, 38, 13.319, 0.295)) #fields[].substructures.append(substructure('0023-C', 5.92470, 4.3807, 0.8466, 543.8, 58.7, 22, 385.3, 54.3, 45, 13.744, 0.282)) #fields[].substructures.append(substructure('0023-M++', 5.96740, 4.3199, 0.8472, 487.3, 84.8, 7, 418.8, 68.9, 14, 13.853, 0.330)) print '\nreading expanded parameter space FAST catalogs...' fields[0].fout = mypy.readcat('%s/nep200_v0.0.7/nep200_v0.0.7_ZFparams.fout.gz' % github_dir) fields[1].fout = mypy.readcat('%s/sc1324_v0.0.4/sc1324_v0.0.4_ZFparams.fout.gz' % github_dir) fields[2].fout = mypy.readcat('%s/rcs0224-0002_v0.0.4/rcs0224-0002_v0.0.4_ZFparams.fout.gz' % github_dir) fields[3].fout = mypy.readcat('%s/rxj1716+6708_v0.0.8/rxj1716+6708_v0.0.8_ZFparams.fout.gz' % github_dir) fields[4].fout = mypy.readcat('%s/nep5281_v0.0.4/nep5281_v0.0.4_ZFparams.fout.gz' % github_dir) fields[5].fout = mypy.readcat('%s/sc1604_v0.0.6/sc1604_v0.0.6_ZFparams.fout.gz' % github_dir) #fields[6].fout = mypy.readcat('%s/cl1429+4241_v0.0.1/cl1429+4241_v0.0.1_ZFparams.fout.gz' % github_dir) fields[6].fout = mypy.readcat('%s/cl0910+5422_v0.0.5/cl0910+5422_v0.0.5_ZFparams.fout.gz' % github_dir) fields[7].fout = mypy.readcat('%s/sc0849+4452_v0.0.4/sc0849+4452_v0.0.4_ZFparams.fout.gz' % github_dir) print 'done!\n'
lmassbars = (lmassbins[1:] + lmassbins[:-1]) / 2. corr_factor = pylab.array([ 1.167, 1.091, 1.250, 0.917, 1.071, 1.231, 1.000, 1.000, 1.000, 1.000]) corr_factor_sf = pylab.array([ 0.895, 0.876, 0.787, 0.848, 0.756, 0.936, 0.791, 1.067, 1.000, 1.000]) corr_factor_qu = pylab.array([ 0.333, 1.455, 0.929, 0.831, 0.924, 0.892, 0.889, 0.858, 0.979, 0.979]) #corr_factor_sf = pylab.ones(len(corr_factor)) #corr_factor_qu = pylab.ones(len(corr_factor)) for i_mc in range(100): ### reading in MC fout files print 'reading MC iter %04i fout catalogs ...\n' % i_mc for f in fields: f.fout = mypy.readcat('../data/mc/mc_fouts/%s/%s_mc%04i.fout' % (f.version, f.version, i_mc)) ################################## ### calculating full MFs for LSS ################################## nfinal = pylab.zeros((len(fields), len(lmassbars))) nfinal_sf = pylab.zeros((len(fields), len(lmassbars))) nfinal_qu = pylab.zeros((len(fields), len(lmassbars))) for i in range(len(fields)):
0.031, alpha=1. / 500, chi2red_thresh=10)) fields0.append( field('SC0849', 'sc0849+4452_v0.0.4', 1.261, 0.029, alpha=1. / 600, chi2red_thresh=10, uvj_intercept=0.54)) print '' ### X-ray catalog xray_filename = '/Users/atomczak/GitHub/ORELSE/Catalogs/X-ray/X-ray_lum_cat.7.17.16.dat' xray_catalog = mypy.readcat(xray_filename, dtype=str) xray_lum_tot = xray_catalog.lum_full.astype(float) xray_ra = xray_catalog.RA.astype(float) xray_dec = xray_catalog.Dec.astype(float) fields = [] fields.append(fields0[0]) # RXJ1221 fields.append(fields0[1]) # RCS0224 fields.append(fields0[2]) # CL1350 fields.append(fields0[3]) # RXJ1716 fields.append(fields0[4]) # N5281 fields.append(fields0[5]) # SG0023 fields.append(fields0[6]) # SC1604 fields.append(fields0[7]) # CL1429 fields.append(fields0[8]) # XLSS005
print '\nreading in catalogs...' sexcats = [mypy.read_sexcat('../images/sextractor/catalog_B.cat'), mypy.read_sexcat('../images/sextractor/catalog_V.cat'), mypy.read_sexcat('../images/sextractor/catalog_Rsup.cat'), mypy.read_sexcat('../images/sextractor/catalog_Isup.cat'), mypy.read_sexcat('../images/sextractor/catalog_r.cat'), mypy.read_sexcat('../images/sextractor/catalog_i.cat'), mypy.read_sexcat('../images/sextractor/catalog_z.cat'), mypy.read_sexcat('../images/sextractor/catalog_J.cat'), mypy.read_sexcat('../images/sextractor/catalog_K.cat')] detect_i = 2 detection_sexcat = mypy.read_sexcat('../images/sextractor/catalog_detect_RIsup.cat') iraccat = mypy.readcat('../images/tphot_test_RIsup-detect/combine.cat') #irac1_cat = mypy.read_sexcat('../images/tphot_test_riz-detect/LRI_I1_SingleFit/lores_I1_tphot.cat_pass1_best') #irac2_cat = mypy.read_sexcat('../images/tphot_test_riz-detect/LRI_I2_SingleFit/lores_I2_tphot.cat_pass1_best') weight_ch1 = pylab.loadtxt('../images/sextractor/weights_I1.txt') weight_ch2 = pylab.loadtxt('../images/sextractor/weights_I2.txt') irac1_zp = 10**6 * (2.91e-6)**2 * 10**((25 - 8.9) / 2.5) irac2_zp = 10**6 * (2.91e-6)**2 * 10**((25 - 8.9) / 2.5) weightcats = [pylab.loadtxt('../images/sextractor/weights_B.txt'), pylab.loadtxt('../images/sextractor/weights_V.txt'), pylab.loadtxt('../images/sextractor/weights_Rsup.txt'), pylab.loadtxt('../images/sextractor/weights_Isup.txt'), pylab.loadtxt('../images/sextractor/weights_r.txt'), pylab.loadtxt('../images/sextractor/weights_i.txt'),
'0.0 < log(1+$\delta_{\mathrm{gal}}$) < 0.5', '0.5 < log(1+$\delta_{\mathrm{gal}}$) < 1.0', '1.0 < log(1+$\delta_{\mathrm{gal}}$) < 1.5', '1.5 < log(1+$\delta_{\mathrm{gal}}$) < 2.0' ] ### Field Mass Functions - ZFOURGE 2014 ### /Users/atomczak/PROJECTS/MASS-FUNCTIONS_v2/tables/table1_TOT.dat zfourge_dir = '/Users/atomczak/PROJECTS/MASS-FUNCTIONS_v2/tables' zfourge_massfunc_tot = pylab.loadtxt('%s/table1_TOT.dat' % zfourge_dir) zfourge_massfunc_sf = pylab.loadtxt('%s/table1_SF.dat' % zfourge_dir) zfourge_massfunc_qu = pylab.loadtxt('%s/table1_QUI.dat' % zfourge_dir) dm_zfourge = zfourge_massfunc_tot[1][0] - zfourge_massfunc_tot[0][0] ### GCLASS vdB13 = mypy.readcat('../data/table3_vanderBurg+2013.dat') if True: #outname = '../output/massFunctions_from_summed_voronoi_slices2.pdf' #pdf = PdfPages(outname) lmassbins = plot_fields[0].mf_voronoi_slices.lmassbins lmassbars = plot_fields[0].mf_voronoi_slices.lmassbars dm = lmassbins[1] - lmassbins[0] overdens_bins = plot_fields[0].mf_voronoi_slices.overdens_bins overdens_bars = plot_fields[0].mf_voronoi_slices.overdens_bars d_overdens = overdens_bins[1] - overdens_bins[0] ### master 3d array of number counts. Axes are LSSfield, overdensity bin, massbin,
inset = subplot.figure.add_axes([sub_xlo, sub_ylo, sub_dx, sub_dy]) return inset version = 'sg0023+0423_v0.1.5' cat = mypy.readzout('/Users/atomczak/DATA/ORELSE/%s.zspec.cat' % version) zout = mypy.readzout('/Users/atomczak/DATA/ORELSE/EAZY/%s.zout' % version) fout = mypy.readcat('/Users/atomczak/DATA/ORELSE/%s.fout' % version) imnames = ['B', 'V', 'R$_+$', 'I$_+$', 'r\'', 'i\'', 'z\'', 'J', 'K', '[3.6]', '[4.5]'] i_red, i_grn, i_blu = 3, 2, 1 imdats = [fits.getdata('/Users/atomczak/DATA/ORELSE/Cl_0023+0423_tomczak_B_zp25.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/Cl_0023+0423_tomczak_V_zp25.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_CL0023_tomczak_R.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_CL0023_tomczak_I.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_cl0023_r_shift_norm_unwarp.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_cl0023_i_shift_norm_unwarp.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_cl0023_z_shift_norm_unwarp.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_Cl_0023+0423_J.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_Cl_0023+0423_K.fits'), fits.getdata('/Users/atomczak/DATA/ORELSE/wreg_Cl_0023+0423_I1.fits'),
digi_overdens = numpy.digitize(master_overdens, overdensbins) ########################################### ### grabbing galaxies from saved txt file ########################################### if True: data = mypy.readcat('../data/table_SFing_galaxies.dat') master_id_field = data.ID_field master_id_gal = data.ID_gal master_ra = data.ra master_dec = data.dec master_z = data.z_spec master_sfr = data.SFR_UVIR master_lmass = data.lmass master_overdens = data.log_overdens digi_lmass = numpy.digitize(master_lmass, lmassbins) digi_overdens = numpy.digitize(master_overdens, overdensbins)