Writing out regions of NASA-Sloan Atlas

want to create a file for each cluster that contains NSA galaxies in a fixed radial and redshift cut around the cluster.

DR < 3 deg (what we have used in the past, bigger than R200 by a lot)
delta v < 4000  km/s (big enough to include +/- 3 sigma for coma)


I have a program that does this already, but for the Local Cluster Survey sample.


In [1]:
import numpy as np
from matplotlib import pyplot as plt
from astropy.io import fits
%matplotlib inline

# read in NSA catalog
nsafile='/Users/rfinn/research/NSA/nsa_v0_1_2.fits'
nsa=fits.getdata(nsafile)
nsa.columns


Out[1]:
ColDefs(
    name = 'IAUNAME'; format = '19A'
    name = 'SUBDIR'; format = '27A'
    name = 'RA'; format = 'D'
    name = 'DEC'; format = 'D'
    name = 'ISDSS'; format = 'J'
    name = 'INED'; format = 'J'
    name = 'ISIXDF'; format = 'J'
    name = 'IALFALFA'; format = 'J'
    name = 'IZCAT'; format = 'J'
    name = 'ITWODF'; format = 'J'
    name = 'MAG'; format = 'E'
    name = 'Z'; format = 'E'
    name = 'ZSRC'; format = '7A'
    name = 'SIZE'; format = 'E'
    name = 'RUN'; format = 'I'
    name = 'CAMCOL'; format = 'B'
    name = 'FIELD'; format = 'I'
    name = 'RERUN'; format = '3A'
    name = 'XPOS'; format = 'E'
    name = 'YPOS'; format = 'E'
    name = 'ZLG'; format = 'E'
    name = 'ZDIST'; format = 'E'
    name = 'ZDIST_ERR'; format = 'E'
    name = 'NSAID'; format = 'J'
    name = 'NMGY'; format = '7E'
    name = 'NMGY_IVAR'; format = '7E'
    name = 'OK'; format = 'I'
    name = 'RNMGY'; format = '7E'
    name = 'ABSMAG'; format = '7E'
    name = 'AMIVAR'; format = '7E'
    name = 'EXTINCTION'; format = '7E'
    name = 'KCORRECT'; format = '7E'
    name = 'KCOEFF'; format = '5E'
    name = 'MTOL'; format = '7E'
    name = 'B300'; format = 'E'
    name = 'B1000'; format = 'E'
    name = 'METS'; format = 'E'
    name = 'MASS'; format = 'E'
    name = 'XCEN'; format = 'D'
    name = 'YCEN'; format = 'D'
    name = 'NPROF'; format = '7E'
    name = 'PROFMEAN'; format = '105E'; dim = '( 7, 15)'
    name = 'PROFMEAN_IVAR'; format = '105E'; dim = '( 7, 15)'
    name = 'QSTOKES'; format = '105E'; dim = '( 7, 15)'
    name = 'USTOKES'; format = '105E'; dim = '( 7, 15)'
    name = 'BASTOKES'; format = '105E'; dim = '( 7, 15)'
    name = 'PHISTOKES'; format = '105E'; dim = '( 7, 15)'
    name = 'PETROFLUX'; format = '7E'
    name = 'PETROFLUX_IVAR'; format = '7E'
    name = 'FIBERFLUX'; format = '7E'
    name = 'FIBERFLUX_IVAR'; format = '7E'
    name = 'BA50'; format = 'E'
    name = 'PHI50'; format = 'E'
    name = 'BA90'; format = 'E'
    name = 'PHI90'; format = 'E'
    name = 'SERSICFLUX'; format = '7E'
    name = 'SERSICFLUX_IVAR'; format = '7E'
    name = 'SERSIC_N'; format = 'E'
    name = 'SERSIC_BA'; format = 'E'
    name = 'SERSIC_PHI'; format = 'E'
    name = 'ASYMMETRY'; format = '7E'
    name = 'CLUMPY'; format = '7E'
    name = 'DFLAGS'; format = '7J'
    name = 'AID'; format = 'J'
    name = 'PID'; format = 'J'
    name = 'DVERSION'; format = '8A'
    name = 'PROFTHETA'; format = '15E'
    name = 'PETROTHETA'; format = 'E'
    name = 'PETROTH50'; format = 'E'
    name = 'PETROTH90'; format = 'E'
    name = 'SERSIC_TH50'; format = 'E'
    name = 'OBJNO'; format = 'J'
    name = 'PLATE'; format = 'J'
    name = 'FIBERID'; format = 'J'
    name = 'MJD'; format = 'J'
    name = 'COEFF'; format = '7E'
    name = 'VDISP'; format = 'E'
    name = 'D4000'; format = 'E'
    name = 'D4000ERR'; format = 'E'
    name = 'FA'; format = 'E'
    name = 'FAERR'; format = 'E'
    name = 'S2FLUX'; format = 'E'
    name = 'S2FLUXERR'; format = 'E'
    name = 'S2EW'; format = 'E'
    name = 'S2EWERR'; format = 'E'
    name = 'S2VMEAS'; format = 'E'
    name = 'S2VMERR'; format = 'E'
    name = 'S2RATIO'; format = 'E'
    name = 'HAFLUX'; format = 'E'
    name = 'HAFLUXERR'; format = 'E'
    name = 'HAEW'; format = 'E'
    name = 'HAEWERR'; format = 'E'
    name = 'HAVMEAS'; format = 'E'
    name = 'HAVMERR'; format = 'E'
    name = 'N2FLUX'; format = 'E'
    name = 'N2FLUXERR'; format = 'E'
    name = 'N2EW'; format = 'E'
    name = 'N2EWERR'; format = 'E'
    name = 'N2VMEAS'; format = 'E'
    name = 'N2VMERR'; format = 'E'
    name = 'HBFLUX'; format = 'E'
    name = 'HBFLUXERR'; format = 'E'
    name = 'HBEW'; format = 'E'
    name = 'HBEWERR'; format = 'E'
    name = 'HBVMEAS'; format = 'E'
    name = 'HBVMERR'; format = 'E'
    name = 'O1FLUX'; format = 'E'
    name = 'O1FLUXERR'; format = 'E'
    name = 'O1EW'; format = 'E'
    name = 'O1EWERR'; format = 'E'
    name = 'O1VMEAS'; format = 'E'
    name = 'O1VMERR'; format = 'E'
    name = 'O2FLUX'; format = 'E'
    name = 'O2FLUXERR'; format = 'E'
    name = 'O2EW'; format = 'E'
    name = 'O2EWERR'; format = 'E'
    name = 'O2VMEAS'; format = 'E'
    name = 'O2VMERR'; format = 'E'
    name = 'O3FLUX'; format = 'E'
    name = 'O3FLUXERR'; format = 'E'
    name = 'O3EW'; format = 'E'
    name = 'O3EWERR'; format = 'E'
    name = 'O3VMEAS'; format = 'E'
    name = 'O3VMERR'; format = 'E'
    name = 'AHGEW'; format = 'E'
    name = 'AHGEWERR'; format = 'E'
    name = 'AHDEW'; format = 'E'
    name = 'AHDEWERR'; format = 'E'
    name = 'NE3EW'; format = 'E'
    name = 'NE3EWERR'; format = 'E'
    name = 'NE5EW'; format = 'E'
    name = 'NE5EWERR'; format = 'E'
    name = 'AV'; format = 'E'
    name = 'S2NSAMP'; format = 'E'
    name = 'RACAT'; format = 'D'
    name = 'DECCAT'; format = 'D'
    name = 'ZSDSSLINE'; format = 'E'
    name = 'SURVEY'; format = '6A'
    name = 'PROGRAMNAME'; format = '23A'
    name = 'PLATEQUALITY'; format = '8A'
    name = 'TILE'; format = 'J'
    name = 'PLUG_RA'; format = 'D'
    name = 'PLUG_DEC'; format = 'D'
)

In [2]:
# create a figure of Dec vs RA for NSA galaxies
plt.figure()
plt.plot(nsa.RA,nsa.DEC,'k.',markersize=1,alpha=.1)
plt.xlabel('RA (deg)')
plt.ylabel('Dec (deg)')
plt.show()


Read in RA and Dec of RASSCALS phase space sample


In [3]:
infile=open('sample.dat','r')
ra=[]
dec=[]
vr=[]
name=[]
for line in infile:
    #print line
    t=line.split()
    name.append(t[0])
    ra.append(float(t[1]))
    dec.append(float(t[2]))
    vr.append(float(t[3]))
# convert the lists into an array
ra=np.array(ra,'f')
dec=np.array(dec,'f')
vr=np.array(vr,'f')

Write a file for each cluster


In [4]:
for i in range(len(name)):
    keepflag = (np.sqrt((ra[i] - nsa.RA)**2 + (dec[i]-nsa.DEC)**2) < 3.) & (abs(vr[i] - nsa.ZDIST*3.e5) < 4000.)
    outfile=name[i]+'_NSA.fits'
    fits.writeto(outfile,nsa[keepflag],clobber=True)

In [ ]: