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
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
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)
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)
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)
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)
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)
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)
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)