Exemplo n.º 1
0
            tmp_x = [i]
    outer_x.append(tmp_x)
    outer_y.append( iny[pl.array(tmp_x)] )
    return outer_x, outer_y




atoms = [ 'Ar','Cd','He','Hg','Na','Ne' ]
#atoms = [ 'Hg' ]

for a in atoms:

    dat = pl.loadtxt('spectrum_'+a+'.dat')

    x1 = pl.find( dat[:,1] > pl.median(dat[:,1])+5*mypy.nmad(dat[:,1]) )
    l1 = dat[:,0][ pl.find( dat[:,1] > pl.median(dat[:,1])+50*mypy.nmad(dat[:,1]) ) ]
    f1 = dat[:,1][ pl.find( dat[:,1] > pl.median(dat[:,1])+50*mypy.nmad(dat[:,1]) ) ]

    xp,fp = sep_peaks( x1, dat[:,1] )
    lp = [ dat[:,0][ij] for ij in xp ]

    peaks_l = []
    peaks_f = []
    for i in range(len(xp)):
        line_l = lp[i]
        line_f = fp[i]

        if len(line_l)<5: continue

        fit_l, fit_f = mypy.gaussfit( line_l, line_f )
Exemplo n.º 2
0
bg_V, noise_V = (-0.0007834, 0.003343)
bg_R, noise_R = (-0.0099281, 0.045694)
bg_I, noise_I = (-0.0103544, 0.067142)

pxscale = 0.2
dr_asec = 7. / 2
dr_px = int(dr_asec / pxscale)
cutouts, bgs, noises = [], [], []
for i_im in range(len(imnames)):

	sp = sp_cutouts[i_im]

	subimdat = imdats[i_im][5400:5600, 5500:5700]
	bg = pylab.median(subimdat)
	noise = mypy.nmad(subimdat)
	bgs.append(bg)
	noises.append(noise)

	vmin = bg - 3 * noise
	vmax = bg + 20 * noise

	cutouts.append(sp.imshow(pylab.ones((2*dr_px+1, 2*dr_px+1)), interpolation='nearest', cmap=pylab.cm.gray_r, vmin=vmin, vmax=vmax, zorder=1))
	ax = sp.axis()
	sp.axis([ax[0], ax[1], ax[3], ax[2]])

	t = sp.text(0.03, 0.07, imnames[i_im], transform=sp.transAxes, \
		        color='k', fontweight='bold', zorder=2, \
		        path_effects=[PathEffects.withStroke(linewidth=2, foreground='w')])

Exemplo n.º 3
0
lmassbars = (lmassbins[1:] + lmassbins[:-1]) / 2
zbins = pylab.arange(0.5, 1.4, 0.1)
zbars = (zbins[1:] + zbins[:-1]) / 2

digi_lmass = pylab.digitize(lmass_afta_1d, lmassbins)
digi_z = pylab.digitize(z_1d, zbins)

dm_medians = []
dm_nmads = []
z_medians = []
z_nmads = []

for dmi in range(1, len(lmassbins)):
    inds = pylab.find(digi_lmass == dmi)
    dm_medians.append(pylab.median(lmass_b4_1d[inds] - lmass_afta_1d[inds]))
    dm_nmads.append(mypy.nmad(lmass_b4_1d[inds] - lmass_afta_1d[inds]))

for zi in range(1, len(zbins)):
    inds = pylab.find(digi_z == zi)
    z_medians.append(pylab.median(lmass_b4_1d[inds] - lmass_afta_1d[inds]))
    z_nmads.append(mypy.nmad(lmass_b4_1d[inds] - lmass_afta_1d[inds]))

sp1.errorbar(lmassbars,
             dm_medians,
             yerr=dm_nmads,
             ls='-',
             color='r',
             marker='o',
             ms=7,
             mew=2,
             elinewidth=2,
Exemplo n.º 4
0
        n_galaxies = []
        overdens_median = []
        sfr_median = []
        sfr_nmad = []

        for i_overdens in range(len(catalog.overdensbars)):

            inds_lmass_overdens = (catalog.UVJ_class > -1) & \
                                  (catalog.digi_lmass == i_lmass+1) & \
                                  (catalog.digi_overdens == i_overdens+1)

            n_galaxies.append(numpy.count_nonzero(inds_lmass_overdens))
            sfr_median.append(
                numpy.median(catalog.SFR_UVIR[inds_lmass_overdens]))
            sfr_nmad.append(mypy.nmad(catalog.SFR_UVIR[inds_lmass_overdens]))
            overdens_median.append(
                numpy.median(catalog.overdens[inds_lmass_overdens]))

        n_galaxies = numpy.array(n_galaxies)
        overdens_median = numpy.array(overdens_median)
        sfr_median = numpy.array(sfr_median)
        sfr_nmad = numpy.array(sfr_nmad)
        n = len(sfr_median)

        elog_sfr = numpy.log10(
            (sfr_median + sfr_nmad / n_galaxies**0.5) / sfr_median)

        color_lmass = cmap(i_lmass / (len(catalog.lmassbars) - 1.))

        ###  plotting SFR vs. overdensity
Exemplo n.º 5
0
	n_field = []
	mean_sfr_field = []
	median_sfr_field = []
	median_sfr_weighted_field = []
	nmad_sfr_field = []
	median_lmasses_field = []
	for i_bin in range(1, len(lmassbins)):
		inds = (digi_lmass == i_bin) & (digi_overdens == 1)
		inds_weighted = (digi_lmass_weighted == i_bin) & (digi_overdens_weighted == 1)
		n_field.append(numpy.count_nonzero(inds))
		median_lmasses_field.append(numpy.median(master_lmass[inds]))
		try:
			mean = numpy.average(master_sfr[inds], weights=master_weights[inds])
			median = numpy.median(master_sfr[inds])
			median_weighted = numpy.median(weighted_master_sfr[inds_weighted])
			nmad = mypy.nmad(master_sfr[inds])

			mean_sfr_field.append(mean)
			median_sfr_field.append(median)
			median_sfr_weighted_field.append(median_weighted)
			nmad_sfr_field.append(nmad)
		except:
			mean_sfr_field.append(10**-4)
			median_sfr_field.append(10**-4)
			median_sfr_weighted_field.append(10**-4)
			nmad_sfr_field.append(10**-4)

	n_field = numpy.array(n_field)
	mean_sfr_field = numpy.array(mean_sfr_field)
	median_sfr_field = numpy.array(median_sfr_field)
	median_sfr_weighted_field = numpy.array(median_sfr_weighted_field)
            for i_overdens in range(1, len(galaxies_catalog.overdensbins)):

                inds_lmass_overdens_sf = numpy.where((uvj_class == 1) & \
                                                     (digi_lmass2 == i_lmass) & \
                                                     (galaxies_catalog.digi_overdens == i_overdens))[0]

                ngals_sf = len(inds_lmass_overdens_sf)

                n_galaxies_sf[-1].append(ngals_sf)
                z_galaxies_sf[-1].append(
                    galaxies_catalog.zspec[inds_lmass_overdens_sf].tolist())
                sfr_median_sf[-1].append(
                    numpy.median(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf]))
                sfr_nmad_sf[-1].append(
                    mypy.nmad(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf]))
                ssfr_median_sf[-1].append(
                    numpy.median(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf] /
                        10**galaxies_catalog.lmass[inds_lmass_overdens_sf]))
                ssfr_nmad_sf[-1].append(
                    mypy.nmad(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf] /
                        10**galaxies_catalog.lmass[inds_lmass_overdens_sf]))
                overdens_median_sf[-1].append(
                    numpy.median(
                        galaxies_catalog.overdens[inds_lmass_overdens_sf]))
                overdens_nmad_sf[-1].append(
                    mypy.nmad(
                        galaxies_catalog.overdens[inds_lmass_overdens_sf]))
                lmass_median_sf[-1].append(
Exemplo n.º 7
0
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.)
	phot_dat = aperture_photometry(imdat, apers)
	phot_wht = aperture_photometry(whtdat, apers)
    schechter_covs[i] = numpy.array(schechter_covs[i])

print '\n\n'

###  print scatter in Schechter parameters
for i in range(5):

    print '%s' % voronoi_labels[i]

    ###  single Schechter alpha
    p16 = numpy.percentile(schechter_fits[i][:, 0], 16)
    p50 = numpy.percentile(schechter_fits[i][:, 0], 50)
    p84 = numpy.percentile(schechter_fits[i][:, 0], 84)

    print 'alpha = %5.2f +/- %.2f (%.2f)' % (
        p50, (p84 - p16) / 2., mypy.nmad(schechter_fits[i][:, 0]))

    ###  single Schechter Mstar
    p16 = numpy.percentile(schechter_fits[i][:, 1], 16)
    p50 = numpy.percentile(schechter_fits[i][:, 1], 50)
    p84 = numpy.percentile(schechter_fits[i][:, 1], 84)

    print 'Mstar = %5.2f +/- %.2f (%.2f)' % (
        p50, (p84 - p16) / 2., mypy.nmad(schechter_fits[i][:, 1]))

    print ''

    ###  double Schechter Mstar
    p16 = numpy.percentile(dschechter_fits[i][:, 0], 16)
    p50 = numpy.percentile(dschechter_fits[i][:, 0], 50)
    p84 = numpy.percentile(dschechter_fits[i][:, 0], 84)
            for i_overdens in range(1, len(galaxies_catalog.overdensbins)):

                inds_lmass_overdens_sf = numpy.where((galaxies_catalog.UVJ_class == 1) & \
                                                     (digi_lmass2 == i_lmass) & \
                                                     (galaxies_catalog.digi_overdens == i_overdens))[0]

                ngals_sf = len(inds_lmass_overdens_sf)

                n_galaxies_sf[-1].append(ngals_sf)
                z_galaxies_sf[-1].append(
                    galaxies_catalog.zspec[inds_lmass_overdens_sf].tolist())
                sfr_median_sf[-1].append(
                    numpy.median(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf]))
                sfr_nmad_sf[-1].append(
                    mypy.nmad(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf]))
                ssfr_median_sf[-1].append(
                    numpy.median(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf] /
                        10**lmass_array[inds_lmass_overdens_sf]))
                ssfr_nmad_sf[-1].append(
                    mypy.nmad(
                        galaxies_catalog.SFR_UVIR[inds_lmass_overdens_sf] /
                        10**lmass_array[inds_lmass_overdens_sf]))
                overdens_median_sf[-1].append(
                    numpy.median(
                        galaxies_catalog.overdens[inds_lmass_overdens_sf]))
                overdens_nmad_sf[-1].append(
                    mypy.nmad(
                        galaxies_catalog.overdens[inds_lmass_overdens_sf]))
                lmass_median_sf[-1].append(
Exemplo n.º 10
0
for i in range(len(fields)):

    f = fields[i]
    sp = sps[i]

    inds = pylab.find(f.cat.z_spec > 0)
    zspec = f.cat.z_spec[inds]
    zphot = f.zout.z_peak[inds]
    zspec_master += zspec.tolist()
    zphot_master += zphot.tolist()

zspec_master = pylab.array(zspec_master)
zphot_master = pylab.array(zphot_master)
dz1pluszspec_master = (zphot_master - zspec_master) / (1 + zspec_master)

nmad = mypy.nmad(dz1pluszspec_master)
foutlier = len(pylab.find(
    abs(dz1pluszspec_master) >= 0.15)) * 1. / len(dz1pluszspec_master)

###  major panel: all fields

nbins = 120
clo, chi = 0, 1.05  ###  colorbar limits
cmap = pylab.cm.spectral
hist2d, xedges, yedges = pylab.histogram2d(zspec_master,
                                           zphot_master,
                                           bins=(nbins, nbins),
                                           range=([axis1[0], axis1[1]],
                                                  [axis1[2], axis1[3]]))
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
Exemplo n.º 11
0
c=0
fig = pl.figure()
wvlnth_soln_dat = pf.getdata( 'NeCd.fits' )[3:-3]
for a in atoms:
    c += 1
    pl.subplot(3,2,c)

    restlam = pl.arange(4555,6820)
    restflux = pl.arange(4555,6820)*0.0
    imdat = pf.getdata( gl.glob('*'+a+'*pass1.fits')[0] )[3:-3]
    outerim = []

    for i in range(len(imdat)):

        wvlnth_flux = wvlnth_soln_dat[i]
        lines_x = pl.find( wvlnth_flux > pl.median(wvlnth_flux)+mypy.nmad(wvlnth_flux)*15 )
        lines_x, lines_f = sep_peaks( lines_x, wvlnth_flux )
        xpeaks = []
        for j in range(len(lines_x)): xpeaks.append( find_xpeak( lines_x[j], lines_f[j] ) )

        lam = get_wvlnth_soln( pl.arange(len(wvlnth_flux))+1, xpeaks )
        fiber_flux = imdat[i]

        interpflux = pl.interp( restlam, lam, fiber_flux )
        restflux += interpflux / len(imdat)
        outerim.append(interpflux)

    pf.writeto( 'arclamp_'+a+'_medi_spec_pass2.fits', pl.array(outerim) )

    pl.savetxt( 'spectrum_'+a+'.dat', [ [restlam[i],restflux[i]] for i in range(len(restlam)) ] )