r = np.linspace(0, 10, 1000) * b beam = bunch.Bunch(profile=np.exp(-0.5 * (r / b)**2), rmax=10 * b) beam_global = b if not args.oldformat: beam_global = 1.0 print "Using new model" else: print "Using old model" # prior on beam deformations beam_rel_min = 0.5 beam_rel_max = 2.0 beam_ratio_max = 3.0 # prior on position pos_rel_max = 5 * m2r log_level = log.verbosity2level(args.verbosity) L = log.init(level=log_level, rank=comm.rank, shared=False) bench.stats.info = [("time", "%6.2f", "%6.3f", 1e-3), ("cpu", "%6.2f", "%6.3f", 1e-3), ("mem", "%6.2f", "%6.2f", 2.0**30), ("leak", "%6.2f", "%6.3f", 2.0**30)] filelist = utils.read_lines(args.filelist) srcs = pointsrcs.read(args.srcs) posi, ampi, beami = [0, 1], [2, 3, 4], [5, 6, 7] nsrc = len(srcs) utils.mkdir(args.odir) if args.oldformat:
parser.add_argument("odir", help="Output directory") parser.add_argument("prefix", nargs="?", help="Output file name prefix") parser.add_argument("--dets", type=str, default=0, help="Detector slice") args = parser.parse_args() utils.mkdir(args.odir) comm = mpi.COMM_WORLD dtype = np.float32 if config.get("map_bits") == 32 else np.float64 ncomp = 3 tsize = 720 root = args.odir + "/" + (args.prefix + "_" if args.prefix else "") down = config.get("downsample") # Set up logging utils.mkdir(root + ".log") logfile = root + ".log/log%03d.txt" % comm.rank log_level = log.verbosity2level(config.get("verbosity")) L = log.init(level=log_level, file=logfile, rank=comm.rank, shared=True) # Set up our geometry shape, wcs = enmap.read_map_geometry(args.area) shape = (ncomp, ) + shape[-2:] msys = config.get("map_sys") dist = config.get("map_dist") # Filter parameters filter_fknee = 0.2 filter_alpha = -3 # Get our tod list filedb.init() ids = todinfo.get_tods(args.sel, filedb.scans) # Dump our settings
comm_world = mpi.COMM_WORLD comm_group = comm_world.Split(comm_world.rank%args.nsub, comm_world.rank/args.nsub) comm_sub = comm_world.Split(comm_world.rank/args.nsub, comm_world.rank%args.nsub) ids = todinfo.get_tods(args.sel, filedb.scans) tol = args.tol*utils.arcmin daz = args.daz*utils.arcmin dtype = np.float32 if config.get("map_bits") == 32 else np.float64 tods_per_map = args.group utils.mkdir(args.odir) root = args.odir + "/" + (args.prefix + "_" if args.prefix else "") # Set up logging utils.mkdir(root + "log") logfile = root + "log/log%03d.txt" % comm_world.rank log_level = log.verbosity2level(config.get("verbosity")) L = log.init(level=log_level, file=logfile, rank=comm_world.rank, shared=False) # Run through all tods to determine the scanning patterns L.info("Detecting scanning patterns") boxes = np.zeros([len(ids),2,2]) for ind in range(comm_world.rank, len(ids), comm_world.size): id = ids[ind] entry = filedb.data[id] try: d = actdata.read(entry, ["boresight","tconst","cut","cut_noiseest"]) d = actdata.calibrate(d, exclude=["autocut"]) if d.ndet == 0 or d.nsamp == 0: raise errors.DataMissing("no data") except errors.DataMissing as e: L.debug("Skipped %s (%s)" % (ids[ind], e.message)) continue
import numpy as np, argparse, os, healpy from enlib import sharp, utils, enmap, curvedsky, log, coordinates parser = argparse.ArgumentParser() parser.add_argument("ihealmap") parser.add_argument("template") parser.add_argument("ofile") parser.add_argument("-n", "--ncomp", type=int, default=1) parser.add_argument("-i", "--first", type=int, default=0) parser.add_argument("-v", "--verbosity", type=int, default=2) parser.add_argument("-r", "--rot", type=str, default=None) parser.add_argument("-u", "--unit", type=float, default=1) parser.add_argument("-O", "--order", type=int, default=0) parser.add_argument("-s", "--scalar", action="store_true") args = parser.parse_args() log_level = log.verbosity2level(args.verbosity) L = log.init(level=log_level) ncomp = args.ncomp assert ncomp == 1 or ncomp == 3, "Only 1 or 3 components supported" # Read the input maps L.info("Reading " + args.ihealmap) imap = np.atleast_2d(healpy.read_map(args.ihealmap, field=tuple(range(args.first,args.first+ncomp)))) nside = healpy.npix2nside(imap.shape[-1]) mask = imap < -1e20 dtype = imap.dtype bsize = 100 if args.unit != 1: imap[~mask]/= args.unit # Read the template
import numpy as np, argparse, h5py, enlib.cg, scipy.interpolate, time import astropy.io.fits from enlib import enmap, fft, coordinates, utils, bunch, interpol, bench, zipper, mpi, log, wcsutils parser = argparse.ArgumentParser() parser.add_argument("infos", nargs="+") parser.add_argument("odir") parser.add_argument("--nmax", type=int, default=0) parser.add_argument("-d", "--downgrade", type=int, default=1) parser.add_argument("-O", "--order", type=int, default=0) parser.add_argument("-U", "--unskew", type=str, default="shift") parser.add_argument("-C", "--cmode", type=int, default=0) args = parser.parse_args() fft.engine = "fftw" comm = mpi.COMM_WORLD log_level = log.verbosity2level(1) L = log.init(level=log_level, rank=comm.rank, shared=False) dtype = np.float32 ref_time = 55500 beam_sigma = 1.4 * utils.arcmin * utils.fwhm corrfun_smoothing = 5 * beam_sigma def prepare(map, hitmap=False): """Prepare a map for input by cutting off one pixel along each edge, as out-of-bounds data accumulates there, and downgrading to the target resolution.""" # Get rid of polarization for now. Remove this later. if map.ndim == 3: map = map[:1] # Cut off edge pixels map[..., :1, :] = 0
import numpy as np, argparse, h5py, enlib.cg, scipy.interpolate, time import astropy.io.fits from enlib import enmap, fft, coordinates, utils, bunch, interpol, bench, zipper, mpi, log, wcsutils parser = argparse.ArgumentParser() parser.add_argument("infos", nargs="+") parser.add_argument("odir") parser.add_argument("--nmax", type=int, default=0) parser.add_argument("-d", "--downgrade", type=int, default=1) parser.add_argument("-O", "--order", type=int, default=0) parser.add_argument("-U", "--unskew", type=str, default="shift") parser.add_argument("-C", "--cmode", type=int, default=0) args = parser.parse_args() fft.engine = "fftw" comm = mpi.COMM_WORLD log_level = log.verbosity2level(1) L = log.init(level=log_level, rank=comm.rank, shared=False) dtype = np.float32 ref_time = 55500 beam_sigma = 1.4*utils.arcmin*utils.fwhm corrfun_smoothing = 5*beam_sigma def prepare(map, hitmap=False): """Prepare a map for input by cutting off one pixel along each edge, as out-of-bounds data accumulates there, and downgrading to the target resolution.""" # Get rid of polarization for now. Remove this later. if map.ndim == 3: map = map[:1] # Cut off edge pixels map[...,:1,:] = 0 map[...,-1:,:] = 0