def incomplete_shear_preprocess(zmin, zmax): shear = fitsio.read("source_v2.fits", columns=[ "ra_gal", "dec_gal", "observed_redshift_gal", "gamma1", "gamma2" ]) ra, dec, z = shear["ra_gal"], shear["dec_gal"], shear[ "observed_redshift_gal"] g1, g2 = shear["gamma1"], shear["gamma2"] dz = 0.05 * (1 + z) #redshift uncertainties z = np.random.normal(z, dz) #perturbed redshifts mask = (z > zmax + 0.1) z = z[mask] ra, dec = ra[mask], dec[mask] g1, g2 = g1[mask], g2[mask] print("length of the catalog after applying the cut", len(ra)) coord = np.vstack([ra, dec]).T centers = np.loadtxt("flagship_jk_centers_v2.txt") NJK = centers.shape[0] print("Segmentation begins!") gal_labels_jk = kmeans_radec.find_nearest(coord, centers) print("Done with assigning jacknife labels to galaxies") gals = { "RA": ra, "DEC": dec, "gamma1": g1, "gamma2": g2, "redshift": z, "JK_LABEL": gal_labels_jk } fits = FITS('data/incomplete_shear_zmax_' + str(round(zmax, 1)) + '.fits', 'rw') fits.write(gals, names=["RA", "DEC", "gamma1", "gamma2", "redshift", "JK_LABEL"]) fits.close() for jk in range(len(centers)): gal_jk_mask = gals["JK_LABEL"] != jk gal_jk = { "RA": ra[gal_jk_mask], "DEC": dec[gal_jk_mask], "gamma1": g1[gal_jk_mask], "gamma2": g2[gal_jk_mask], "redshift": z[gal_jk_mask] } fits = FITS( 'data/incomplete_shear_zmax_' + str(round(zmax, 1)) + '_jk_' + str(jk) + '.fits', 'rw') fits.write(gal_jk, names=["RA", "DEC", "gamma1", "gamma2", "redshift"]) fits.close() return None
def mcalcat_write(cat, path): from os import remove if exists(path): remove(path) fits = FITS(path, 'rw') for c in cat: fits.write(c.reset_index().to_records(index=False)) fits.close()
def write_fit(data, names, filename): import fitsio from fitsio import FITS, FITSHDR import os.path if not os.path.isfile(filename): fits = FITS(filename, 'rw') fits.write(data, names=names, clobber=False) print("Writing file: ", filename) else: fits = FITS(filename, 'rw') fits[-1].append(data) print("Apending File: ", filename)
def random_preprocess(): randoms = fitsio.read('flagship_randoms_v2.fits') ra, dec, jk_label = randoms["RA"], randoms["DEC"], randoms["JK_LABEL"] centers = np.loadtxt("flagship_jk_centers_v2.txt") for jk in range(len(centers)): jk_mask = jk_label != jk random_jk = {"RA": ra[jk_mask], "DEC": dec[jk_mask]} fits = FITS('data/random_jk_' + str(jk) + '.fits', 'rw') fits.write(random_jk, names=["RA", "DEC"]) fits.close() return None
def incomplete_gal_preprocess(zmin, zmax): lens = fitsio.read("lens.fits", columns=["ra_gal", "dec_gal", "observed_redshift_gal"]) ra, dec, z = lens["ra_gal"], lens["dec_gal"], lens["observed_redshift_gal"] mask = (z > zmin) & (z < zmax) ra, dec, z = ra[mask], dec[mask], z[mask] random_choice = np.random.choice(np.arange(len(ra)), int(0.45 * len(ra)), replace=False) ra, dec, z = ra[random_choice], dec[random_choice], z[random_choice] print("length of the catalog after applying the cut", len(ra)) coord = np.vstack([ra, dec]).T centers = np.loadtxt("flagship_jk_centers_v2.txt") NJK = centers.shape[0] print("Segmentation begins!") gal_labels_jk = kmeans_radec.find_nearest(coord, centers) print("Done with assigning jacknife labels to galaxies") gals = {"RA": ra, "DEC": dec, "redshift": z, "JK_LABEL": gal_labels_jk} fits = FITS('data/incomplete_gal_zmax_' + str(round(zmax, 1)) + '.fits', 'rw') fits.write(gals, names=["RA", "DEC", "redshift", "JK_LABEL"]) fits.close() for jk in range(len(centers)): gal_jk_mask = gals["JK_LABEL"] != jk gal_jk = { "RA": ra[gal_jk_mask], "DEC": dec[gal_jk_mask], "redshift": z[gal_jk_mask] } fits = FITS( 'data/incomplete_gal_zmax_' + str(round(zmax, 1)) + '_jk_' + str(jk) + '.fits', 'rw') fits.write(gal_jk, names=["RA", "DEC", "redshift"]) fits.close() return None
def write_maps(self, maps, fname): f = FITS(fname, 'rw', clobber=True) f.write([self.goodpix], names=['pixels']) names = ['map_%d' % i for i in range(len(maps))] f.write(list(maps), names=names) f.close()
def write_maps(self, maps, fname): f = FITS(fname, 'rw', clobber=True) f.write(self.goodpix) f.write(maps) f.close()