Пример #1
0
    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'))
Пример #2
0
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 ''
Пример #5
0
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)
Пример #8
0
	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
Пример #12
0
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)

Пример #14
0
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)):
Пример #18
0
          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
Пример #19
0
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'),
Пример #20
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'
]

###  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,
Пример #21
0
	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'),
Пример #22
0
	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)