コード例 #1
0
ファイル: visitOverlap.py プロジェクト: surhudm/hscTools
def visitCcdToDataId(visit, ccd):
    visits = hscUtil.idSplit(visit)
    ccds   = hscUtil.idSplit(ccd)
    dataIds = []
    for v in visits:
        for c in ccds:
            dataId = {'visit':v, 'ccd':c}
            dataIds.append(dataId)
    return dataIds
コード例 #2
0
ファイル: visitOverlap.py プロジェクト: surhudm/hscTools
def visitCcdToDataId(visit, ccd):
    visits = hscUtil.idSplit(visit)
    ccds = hscUtil.idSplit(ccd)
    dataIds = []
    for v in visits:
        for c in ccds:
            dataId = {'visit': v, 'ccd': c}
            dataIds.append(dataId)
    return dataIds
コード例 #3
0
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('rerun')
    parser.add_argument('fakes')
    parser.add_argument("visits", help="visits or tracts")
    parser.add_argument("ccds", help="CCDS or patches (for coadds)")
    parser.add_argument("-f",
                        "--filt",
                        default=None,
                        help="filter, only set for tract/patches")
    parser.add_argument("-R", '--root', default="/lustre/Subaru/SSP")
    parser.add_argument('-r',
                        '--radius',
                        type=int,
                        default=20,
                        help='pixel radius to avoid')

    args = parser.parse_args()
    visits = hscUtil.idSplit(args.visits)
    ccds = hscUtil.idSplit(args.ccds)
    if args.filt is None:
        dataIds = [{'visit': v, 'ccd': c} for c in ccds for v in visits]
    else:
        dataIds = [{
            'tract': t,
            'patch': p,
            'filter': args.filt
        } for p in ccds for t in visits]

    main(args.rerun, dataIds, args.fakes, root=args.root, rad=args.radius)
コード例 #4
0
    outfile = out if out else "camview-%s.png" % infile
    fig.savefig(outfile)


    
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("--version", action='version', version="0.0")
    parser.add_argument("infile", type=str, help="")
    parser.add_argument("-C", "--camera", type=str, default="hsc", choices=("hsc","sc","lsst"),  help="")
    parser.add_argument("-m", "--cmap", type=str, default="copper",
                        choices=("copper","gray","jet", "prism"),  help="")
    parser.add_argument("-d", "--datacols", type=str, default="1:2", help="Columns format='CCD:datavalue'")
    parser.add_argument("-n", "--nsig", type=float, default=3.0, help="N standard devs for cmap")
    parser.add_argument("-p", "--percent", default=False, action='store_true',
                        help="display percent on complementary colorbar")
    parser.add_argument("-c", "--ccds", default=None, help="Ccds to show")
    parser.add_argument("-t", "--textcolor", default='k', help="Color for labels")
    parser.add_argument("-o", "--out", default=None, help="Output plot name")
    args = parser.parse_args()

    infile = None if args.infile == 'none' else args.infile
    
    cols = [int(x)-1 for x in args.datacols.split(":")]
    ccds=None
    if args.ccds:
        ccds = set([int(x) for x in hscUtil.idSplit(args.ccds)])
    
    main(infile, ccds=ccds, camera=args.camera, cmap=args.cmap, cols=cols,
         nsig=args.nsig, percent=args.percent, textcolor=args.textcolor, out=args.out)
コード例 #5
0
ファイル: sourceTable.py プロジェクト: surhudm/hscTools
            s.setRa(source.getRa())
            s.setDec(source.getDec())
            s.set('kronMag', srcmag[mask][i_s])
            s.set('nchild', source.get('deblend.nchild'))
            s.set('parent', source.get('parent'))

    srcList.writeFits('total_cat.fits')


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('rerun')
    parser.add_argument("visits", help="visits or tracts")
    parser.add_argument("ccds", help="CCDS or patches (for coadds)")
    parser.add_argument("-f", "--filt", 
                        default=None, help="filter, only set for tract/patches")
    parser.add_argument("-R", '--root', default="/lustre/Subaru/SSP")
    parser.add_argument('-k', '--fakes', default=None, help='fake catalog to exclude')

    args = parser.parse_args()
    visits = hscUtil.idSplit(args.visits)
    ccds = hscUtil.idSplit(args.ccds)
    if args.filt is None:
         dataIds = [{'visit':v, 'ccd':c} for c in ccds for v in visits]
    else:
        dataIds = [{'tract':t, 'patch':p, 'filter':args.filt} 
                   for p in ccds for t in visits]
    
    main(args.rerun, dataIds, root=args.root, fakes=args.fakes)
    
コード例 #6
0
ファイル: showVisit.py プロジェクト: surhudm/hscTools
def main(rerun,
         visit1,
         visit2,
         op,
         ccdno,
         datatype='calexp',
         scale=None,
         root=None,
         invert=False,
         cmap='gray',
         vmax=None,
         annotate=None,
         bins=16,
         rerun2=None,
         showCbar=False,
         vsig=None,
         showAnnotate=False,
         percent=None,
         hilite=None):

    vsigDefault = 5.0
    visit1 = int(visit1)
    if visit2:
        visit2 = int(visit2)
    ccdno = set([int(x) for x in hscUtil.idSplit(ccdno)])

    butler1 = hscUtil.getButler(rerun, root=root)
    if rerun2:
        butler2 = hscUtil.getButler(rerun2, root=root)
    else:
        butler2 = butler1

    if datatype not in calibTypes:
        dataIds1 = butler1.queryMetadata(datatype,
                                         "ccd",
                                         format=["visit", "ccd"],
                                         dataId={'visit': visit1})
        dataIds1 = [{'visit': x[0], 'ccd': x[1]} for x in dataIds1]
    else:
        dataIds1 = [{'visit': visit1, 'ccd': x} for x in range(104)]

    dataRef1 = None
    dataRef2 = None

    if visit2:
        dataIds2 = butler2.queryMetadata(datatype,
                                         "ccd",
                                         format=["visit", "ccd"],
                                         dataId={'visit': visit2})
        dataIds2 = [{'visit': x[0], 'ccd': x[1]} for x in dataIds2]

    # flip the color map
    if invert:
        cmap = re.sub("_r$", "", cmap) if re.match('_r$', cmap) else '_r'

    # sleezy, but if vmax isn't set and we're linear, just use ccd in the middle to norm
    if vmax is None and scale != 'histeq':
        vmax = 'c049'

    # handle the gray scale normalization
    vmin = 0.0
    mdRef1 = None
    mdRef2 = None
    if vmax:
        if scale == 'histeq':
            raise ValueError("Cannot specify vmax with histeq scaling.")

        # if it identifies a CCD to use
        if re.match("^c", vmax):
            vmaxCcd = int(re.sub("c", "", vmax))
            try:
                dataRef1 = hscButler.getDataRef(butler1, {
                    'visit': visit1,
                    'ccd': vmaxCcd
                })
                imgRef1 = dataRef1.get(
                    datatype).getMaskedImage().getImage().getArray()
                if datatype not in calibTypes:
                    mdRef1 = dataRef1.get(datatype + '_md', immediate=True)
                if visit2:
                    dataRef2 = hscButler.getDataRef(butler2, {
                        'visit': visit2,
                        'ccd': vmaxCcd
                    })
                    imgRef2 = dataRef2.get(
                        datatype).getMaskedImage().getImage().getArray()
                    mdRef2 = dataRef2.get(datatype + '_md', immediate=True)
                    img_op = hscUtil.rebin(compute(imgRef1, imgRef2, op), bins)
                    med = numpy.median(img_op)
                    std = numpy.std(img_op)
                    if not vsig:
                        vsig = vsigDefault
                    delta = vsig * std
                    if percent:
                        delta = percent * med
                    vmin = med - abs(delta)
                    vmax = med + abs(delta)
                else:
                    if showAnnotate:
                        exp1 = dataRef1.get(datatype)
                        aval = float(exp1.getMetadata().get(annotate))
                        med = aval
                        delta = vsig
                        if not vsig:
                            delta = 0.5 * aval
                        if percent:
                            delta = percent * aval
                        vmin = med - abs(delta)
                        vmax = med + abs(delta)
                    else:
                        img_op = imgRef1
                        med = numpy.median(img_op)
                        sig = numpy.sqrt(med)
                        delta = vsigDefault * sig
                        if vsig:
                            delta = vsig * sig
                        if percent:
                            delta = percent * med
                        vmin = med - abs(delta)
                        vmax = med + abs(delta)
                        if not vsig and not percent:
                            vmin = 0.5 * med
                            vmax = med + 5.0 * sig

            except Exception, e:
                raise RuntimeError("Could not get stats on vmax CCD" +
                                   str(vmax) + "  Exiting." + str(e))

        elif re.search(":", vmax):
            vmaxCcd = None
            vmin, vmax = [float(x) for x in vmax.split(":")]
            med = 0.5 * (vmax + vmin)
        else:
            vmaxCcd = None
            vmax = float(vmax)
            med = 0.5 * (vmax + vmin)
コード例 #7
0
                        action='store_true',
                        default=False,
                        help="Show the tract boundaries")
    parser.add_argument("-P",
                        "--showPatch",
                        action='store_true',
                        default=False,
                        help="Show the patch boundaries")
    parser.add_argument(
        "-F",
        '--showFootprint',
        action='store_true',
        default=False,
        help="Show the footprint of the visits instead of the CCDs")
    parser.add_argument("-o", "--out", default=None, help="Output filename")
    parser.add_argument("--filter",
                        default='HSC-I',
                        help="Specify filter for coadd")
    args = parser.parse_args()

    main(args.root,
         hscUtil.idSplit(args.tract),
         ccds=hscUtil.idSplit(args.ccds),
         visitsIn=hscUtil.idSplit(args.visits),
         patches=hscUtil.idSplit(args.patches),
         showPatch=args.showPatch,
         showTract=args.showTract,
         showFootprint=args.showFootprint,
         filter=args.filter,
         out=args.out)
コード例 #8
0
ファイル: showVisit.py プロジェクト: surhudm/hscTools
def main(rerun, visit1, visit2, op, ccdno,
         datatype='calexp', scale=None, root=None, invert=False, cmap='gray',
         vmax=None, annotate=None, bins=16, rerun2=None, showCbar=False, vsig=None,
         showAnnotate=False, percent=None, hilite=None):

    vsigDefault = 5.0
    visit1 = int(visit1)
    if visit2:
        visit2 = int(visit2)
    ccdno = set([int(x) for x in hscUtil.idSplit(ccdno)])
    
    butler1 = hscUtil.getButler(rerun, root=root)
    if rerun2:
        butler2 = hscUtil.getButler(rerun2, root=root)
    else:
        butler2 = butler1

    if datatype not in calibTypes:
        dataIds1 = butler1.queryMetadata(datatype, "ccd", format=["visit", "ccd"], dataId={'visit':visit1})
        dataIds1 = [{'visit':x[0], 'ccd':x[1]} for x in dataIds1]
    else:
        dataIds1 = [{'visit': visit1, 'ccd':x} for x in range(104)]
        
    dataRef1 = None
    dataRef2 = None
    
    if visit2:
        dataIds2 = butler2.queryMetadata(datatype, "ccd", format=["visit", "ccd"], dataId={'visit':visit2})
        dataIds2 = [{'visit':x[0], 'ccd':x[1]} for x in dataIds2]
    
    # flip the color map
    if invert:
        cmap = re.sub("_r$", "", cmap) if re.match('_r$', cmap) else '_r'

    # sleezy, but if vmax isn't set and we're linear, just use ccd in the middle to norm 
    if vmax is None and scale != 'histeq':
        vmax = 'c049'

    # handle the gray scale normalization
    vmin = 0.0
    mdRef1 = None
    mdRef2 = None
    if vmax:
        if scale == 'histeq':
            raise ValueError("Cannot specify vmax with histeq scaling.")
        
        # if it identifies a CCD to use
        if re.match("^c", vmax):
            vmaxCcd = int(re.sub("c", "", vmax))
            try:
                dataRef1 = hscButler.getDataRef(butler1, {'visit':visit1, 'ccd':vmaxCcd})
                imgRef1  = dataRef1.get(datatype).getMaskedImage().getImage().getArray()
                if datatype not in calibTypes:
                    mdRef1   = dataRef1.get(datatype+'_md', immediate=True)
                if visit2:
                    dataRef2 = hscButler.getDataRef(butler2, {'visit':visit2, 'ccd':vmaxCcd})
                    imgRef2  = dataRef2.get(datatype).getMaskedImage().getImage().getArray()
                    mdRef2   = dataRef2.get(datatype+'_md', immediate=True)
                    img_op  = hscUtil.rebin(compute(imgRef1, imgRef2, op), bins)
                    med     = numpy.median(img_op)
                    std     = numpy.std(img_op)
                    if not vsig:
                        vsig = vsigDefault
                    delta = vsig*std
                    if percent:
                        delta = percent*med
                    vmin    = med - abs(delta)
                    vmax    = med + abs(delta)
                else:
                    if showAnnotate:
                        exp1 = dataRef1.get(datatype)
                        aval   = float(exp1.getMetadata().get(annotate))
                        med = aval
                        delta = vsig
                        if not vsig:
                            delta = 0.5*aval
                        if percent:
                            delta = percent*aval
                        vmin    = med - abs(delta)
                        vmax    = med + abs(delta)
                    else:
                        img_op  = imgRef1
                        med     = numpy.median(img_op)
                        sig     = numpy.sqrt(med)
                        delta   = vsigDefault*sig
                        if vsig:
                            delta = vsig*sig
                        if percent:
                            delta = percent*med
                        vmin    = med - abs(delta)
                        vmax    = med + abs(delta)
                        if not vsig and not percent:
                            vmin    = 0.5*med
                            vmax    = med + 5.0*sig

                        
            except Exception, e:
                raise RuntimeError("Could not get stats on vmax CCD" + str(vmax)+ "  Exiting." + str(e))

        elif re.search(":", vmax):
            vmaxCcd = None
            vmin, vmax = [float(x) for x in vmax.split(":")]
            med = 0.5*(vmax + vmin)
        else:
            vmaxCcd = None
            vmax = float(vmax)
            med = 0.5*(vmax + vmin)
コード例 #9
0
ファイル: showVisitsInTract.py プロジェクト: surhudm/hscTools
    fig.savefig(outfile)
    

    
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("root", help="Root directory of data repository")
    parser.add_argument("tract", help="Tract to show")
    parser.add_argument("-v", "--visits", help="specify Visits")
    parser.add_argument("-c", "--ccds", help="specify CCDs")
    parser.add_argument("-p", "--patches", help="specify patches")
    parser.add_argument("-T", "--showTract", action='store_true', default=False,
                        help="Show the tract boundaries")
    parser.add_argument("-P", "--showPatch", action='store_true', default=False,
                        help="Show the patch boundaries")
    parser.add_argument("-F", '--showFootprint', action='store_true', default=False,
                        help="Show the footprint of the visits instead of the CCDs")
    parser.add_argument("-o", "--out", default=None, help="Output filename")
    parser.add_argument("--filter", default='HSC-I', help="Specify filter for coadd")
    args = parser.parse_args()
        
    main(args.root,
         hscUtil.idSplit(args.tract),
         ccds=hscUtil.idSplit(args.ccds),
         visitsIn=hscUtil.idSplit(args.visits),
         patches=hscUtil.idSplit(args.patches),
         showPatch=args.showPatch, showTract=args.showTract, showFootprint=args.showFootprint,
         filter=args.filter,
         out=args.out)