Beispiel #1
0
    def test_readwrite_tractor(self):
        tractorfile = io.list_tractorfiles(self.datadir)[0]
        sweepfile = io.list_sweepfiles(self.datadir)[0]
        data = io.read_tractor(sweepfile)
        self.assertEqual(len(data), 6)  # - test data has 6 objects per file
        data = io.read_tractor(tractorfile)
        self.assertEqual(len(data), 6)  # - test data has 6 objects per file
        data, hdr = io.read_tractor(tractorfile, header=True)
        self.assertEqual(len(data), 6)  # - test data has 6 objects per file

        # ADM check that input and output columns are the same.
        _, filename = io.write_targets(self.testdir, data, indir=self.datadir)
        # ADM use fits read wrapper in io to correctly handle whitespace.
        d2, h2 = io.whitespace_fits_read(filename, header=True)
        self.assertEqual(list(data.dtype.names), list(d2.dtype.names))

        # ADM check HPXPIXEL got added writing targets with NSIDE request.
        _, filename = io.write_targets(self.testdir,
                                       data,
                                       nside=64,
                                       indir=self.datadir)
        # ADM use fits read wrapper in io to correctly handle whitespace.
        d2, h2 = io.whitespace_fits_read(filename, header=True)
        self.assertEqual(
            list(data.dtype.names) + ["HPXPIXEL"], list(d2.dtype.names))
        for column in data.dtype.names:
            kind = data[column].dtype.kind
            # ADM whitespace_fits_read() doesn't convert string data
            # ADM types identically for every version of fitsio.
            if kind == 'U' or kind == 'S':
                self.assertTrue(
                    np.all(
                        data[column] == d2[column].astype(data[column].dtype)))
            else:
                self.assertTrue(np.all(data[column] == d2[column]))
def main():
    ns = ap.parse_args()

    t0 = time()
    objects = read_mock_durham(ns.src_core, ns.src_photo)

    t1 = time()
    targetflags = select_targets(objects)
    keep = (targetflags !=0)

    targets = objects[keep]
    targetflag = targetflags[keep]

    t2 = time()
    numobs = calc_numobs(targets, targetflag)
    targets = desitarget.targets.finalize(targets, targetflag, numobs)

    t3 = time()
    write_targets(ns.dest, targets)
    t4 = time()
    if ns.verbose:
        print ('written {} targets to {}'.format(len(targets), ns.dest))
        print('Read mock file {:.1f} sec'.format(t1-t0))
        print('Make target selection  {:.1f} sec'.format(t2-t1))
        print('Compute numobs, finalize target selection {:.1f} sec'.format(t3-t2))
        print('Write output  {:.1f} sec'.format(t4-t3))
Beispiel #3
0
    def test_readwrite_tractor(self):
        tractorfile = io.list_tractorfiles(self.datadir)[0]
        sweepfile = io.list_sweepfiles(self.datadir)[0]
        data = io.read_tractor(sweepfile)
        self.assertEqual(len(data), 6)  #- test data has 6 objects per file
        data = io.read_tractor(tractorfile)
        self.assertEqual(len(data), 6)  #- test data has 6 objects per file
        data, hdr = io.read_tractor(tractorfile, header=True)
        self.assertEqual(len(data), 6)  #- test data has 6 objects per file

        #ADM check PHOTSYS got added in writing targets
        io.write_targets(self.testfile, data, indir=self.datadir)
        #ADM use fits read wrapper in io to correctly handle whitespace
        d2, h2 = io.whitespace_fits_read(self.testfile, header=True)
        self.assertEqual(
            list(data.dtype.names) + ["PHOTSYS"], list(d2.dtype.names))

        #ADM check PHOTSYS and HPXPIXEL got added writing targets with NSIDE request
        io.write_targets(self.testfile, data, nside=64, indir=self.datadir)
        #ADM use fits read wrapper in io to correctly handle whitespace
        d2, h2 = io.whitespace_fits_read(self.testfile, header=True)
        self.assertEqual(
            list(data.dtype.names) + ["HPXPIXEL", "PHOTSYS"],
            list(d2.dtype.names))

        for column in data.dtype.names:
            self.assertTrue(np.all(data[column] == d2[column]))
Beispiel #4
0
 def test_readwrite_tractor(self):
     tractorfile = io.list_tractorfiles(self.datadir)[0]
     sweepfile = io.list_sweepfiles(self.datadir)[0]
     data = io.read_tractor(sweepfile)
     data = io.read_tractor(tractorfile)
     self.assertEqual(len(data), 6)  #- test data has 6 objects per file
     data, hdr = io.read_tractor(tractorfile, header=True)
     self.assertEqual(len(data), 6)  #- test data has 6 objects per file
     
     io.write_targets(self.testfile, data, indir=self.datadir)
     d2, h2 = fits.getdata(self.testfile, header=True)
     self.assertEqual(h2['DEPVER02'], self.datadir)
     self.assertEqual(data.dtype.names, d2.dtype.names)
     for column in data.dtype.names:
         self.assertTrue(np.all(data[column] == d2[column]))
Beispiel #5
0
def main():

    # Build a catalog of all the grz, 3-pass sources.
    tracdir = '/project/projectdirs/cosmo/data/legacysurvey/dr2/tractor'
    outfile = 'lensedecals-parent.fits'
    
    ramin = 210
    ramax = 240 # 250
    rarange = np.arange(ramin, ramax+1, 1).astype(str)
    infiles = [io.list_tractorfiles(os.path.join(tracdir, this)) for this in rarange]
    infiles = np.concatenate(infiles).flatten()

    #infiles = io.list_tractorfiles(tracdir)

    print('Found {} tractor catalogs.'.format(len(infiles)))
    cat = select_targets(infiles, verbose=True)#, numproc=1)
    print('Selected {} objects.'.format(len(cat)))
    io.write_targets(outfile, cat)
Beispiel #6
0
def main():

    # Build a catalog of all the grz, 3-pass sources.
    tracdir = '/project/projectdirs/cosmo/data/legacysurvey/dr2/tractor'
    outfile = 'lensedecals-parent.fits'

    ramin = 210
    ramax = 240  # 250
    rarange = np.arange(ramin, ramax + 1, 1).astype(str)
    infiles = [
        io.list_tractorfiles(os.path.join(tracdir, this)) for this in rarange
    ]
    infiles = np.concatenate(infiles).flatten()

    #infiles = io.list_tractorfiles(tracdir)

    print('Found {} tractor catalogs.'.format(len(infiles)))
    cat = select_targets(infiles, verbose=True)  #, numproc=1)
    print('Selected {} objects.'.format(len(cat)))
    io.write_targets(outfile, cat)
Beispiel #7
0
start = time.time()


def flux_to_mag(flux):
    mag = 22.5 - 2.5 * np.log10(flux)
    return mag


targets = select_targets(infiles,
                         numproc=4,
                         mask=True,
                         tcnames=["BGS"],
                         survey='main',
                         backup=False)
bits = {'bright': 1, 'faint': 0, 'wise': 2}
#['BGS_FAINT', 'BGS_BRIGHT', 'BGS_FAINT_EXT', 'BGS_LOWQ', 'BGS_FIBMAG', ]

end = time.time()
print('Total run time: %f sec' % (end - start))

rmag = flux_to_mag(targets['FLUX_R'] / targets['MW_TRANSMISSION_R'])

for name, bit in zip(bits.keys(), bits.values()):
    bgsbit = ((targets['BGS_TARGET'] & 2**(bit)) != 0)
    print(name, np.sum(bgsbit))
    print('rmag min: %f, rmag max: %f' %
          (rmag[bgsbit].min(), rmag[bgsbit].max()))

# ADM write the targets to file.
io.write_targets(dest, targets, survey="main")