예제 #1
0
    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:
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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
예제 #5
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
예제 #6
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