Esempio n. 1
0
if dist:
    geo = dmap.geometry(shape,
                        wcs,
                        bbox=data.bbox,
                        tshape=(tsize, tsize),
                        dtype=dtype,
                        comm=comm)
    signal = mapmaking.SignalDmap(data.scans,
                                  data.subs,
                                  dmap.zeros(geo),
                                  sys=msys,
                                  name="sky")
else:
    signal = mapmaking.SignalMap(data.scans,
                                 enmap.zeros(shape, wcs, dtype),
                                 comm,
                                 sys=msys,
                                 name="sky")

# Set up our output maps
rhs = signal.zeros()
div = signal.zeros(mat=True)
hit = signal.zeros()
rhs_work = signal.prepare(rhs)
div_work = signal.prepare(div)
hit_work = signal.prepare(hit)
# Input for div calculation
div_tmp = signal.work()


def filter_common_mean(scan, tod):
Esempio n. 2
0
                                       myinds,
                                       actscan.ACTScan,
                                       filedb.data,
                                       dets=args.dets,
                                       downsample=config.get("downsample"))

L.info("Reading input map")
if not is_dmap: imap = enmap.read_map(args.imap)
else: imap = dmap.read_map(args.imap, bbox=mybbox, tshape=tshape, comm=comm)
dtype = "=f" if imap.dtype == np.float32 else "=d"
imap = imap.astype(dtype, copy=True)

L.info("Initializing signals")
signal_cut = mapmaking.SignalCut(myscans, imap.dtype, comm=comm)
if not is_dmap:
    signal_map = mapmaking.SignalMap(myscans, imap, comm=comm)
    precon = mapmaking.PreconMapBinned(signal_map,
                                       signal_cut,
                                       myscans, [],
                                       noise=False,
                                       hits=False)
else:
    signal_map = mapmaking.SignalDmap(myscans, mysubs, imap, sys=args.sys)
    precon = mapmaking.PreconDmapBinned(signal_map,
                                        signal_cut,
                                        myscans, [],
                                        noise=False,
                                        hits=False)

# We can now actually perform the postfilter
L.info("Postfiltering")
Esempio n. 3
0
 if param["type"] == "cut":
     signal = mapmaking.SignalCut(active_scans,
                                  dtype=dtype,
                                  comm=comm,
                                  name=effname,
                                  ofmt=param["ofmt"],
                                  output=param["output"] == "yes")
     signal_cut = signal
 elif param["type"] == "map":
     area = enmap.read_map(param["value"])
     area = enmap.zeros((args.ncomp, ) + area.shape[-2:], area.wcs,
                        dtype)
     signal = mapmaking.SignalMap(active_scans,
                                  area,
                                  comm=comm,
                                  name=effname,
                                  ofmt=param["ofmt"],
                                  output=param["output"] == "yes",
                                  sys=param["sys"])
 elif param["type"] == "fmap":
     area = enmap.read_map(param["value"])
     area = enmap.zeros((args.ncomp, ) + area.shape[-2:], area.wcs,
                        dtype)
     signal = mapmaking.SignalMapFast(active_scans,
                                      area,
                                      comm=comm,
                                      name=effname,
                                      ofmt=param["ofmt"],
                                      output=param["output"] == "yes",
                                      sys=param["sys"])
 elif param["type"] == "dmap":
Esempio n. 4
0
    si, id = tasks[ti]
    bid = id.replace(":", "_")
    L.info("Processing src %3d id %s" % (si, id))
    root = args.odir + "/src%03d_%s_" % (si, bid)
    entry = filedb.data[id]
    osys = "hor:%.6f_%.6f:cel/0_0:hor" % tuple(srcs[:2, si])
    try:
        scans = [actscan.ACTScan(entry)]
        if scans[0].nsamp == 0 or scans[0].ndet == 0:
            raise errors.DataMissing("no data in scan")
    except errors.DataMissing as e:
        print "Skipping %s: %s" % (id, str(e))
        continue
    # Signals
    signal_cut = mapmaking.SignalCut(scans, dtype=dtype, comm=tcomm)
    signal_map = mapmaking.SignalMap(scans, area, comm=tcomm, sys=osys)
    # Weights
    weights = [mapmaking.FilterWindow(config.get("tod_window"))]
    # And equation system
    eqsys = mapmaking.Eqsys(scans, [signal_cut, signal_map],
                            weights=weights,
                            dtype=dtype,
                            comm=tcomm)
    eqsys.calc_b()
    # Precons
    signal_cut.precon = mapmaking.PreconCut(signal_cut, scans)
    signal_map.precon = mapmaking.PreconMapBinned(signal_map, signal_cut,
                                                  scans, weights)

    cg = CG(eqsys.A, eqsys.b, M=eqsys.M, dot=eqsys.dot)
    while cg.i < nmax:
Esempio n. 5
0
                planet9.cut_asteroids_scan(scan, asteroids)

        #### 3. Process our tods ####
        apply_window = mapmaking.FilterWindow(config.get("tod_window"))
        if not use_dmap: area = enmap.zeros(wshape, wcs, dtype)
        else:
            geo = dmap.DGeometry(wshape,
                                 wcs,
                                 dtype=dtype,
                                 bbox=mybbox,
                                 comm=comm)
            area = dmap.zeros(geo)

        # Set up our signal. We do this instead of building the pmat manually
        # to make it easy to support both maps and dmaps
        if not use_dmap: signal = mapmaking.SignalMap(myscans, area, comm)
        else: signal = mapmaking.SignalDmap(myscans, mysubs, area, comm)

        # Get the input sky map that we will subtract. We do this because the CMB+CIB
        # are the same from tod to tod, but we can't support intra-tod correlated noise,
        # so we have to get rid of it. This is not optimal, but it shouldn't be far off.
        if args.mapsub:
            sshape, swcs = enmap.read_map_geometry(args.mapsub)
            pixbox = enmap.pixbox_of(swcs, shape, wcs)
            if not use_dmap:
                refmap = enmap.read_map(args.mapsub,
                                        pixbox=pixbox).astype(dtype)
            else:
                refmap = dmap.read_map(args.mapsub,
                                       pixbox=pixbox,
                                       bbox=mybbox,
Esempio n. 6
0
		white_src_handler = mapmaking.SourceHandler(myscans, comm, dtype=dtype, **src_handling)
	else: white_src_handler = None

	# 1. Initialize signals
	L.info("Initializing signals")
	signals = []
	for param in signal_params:
		effname = get_effname(param)
		active_scans = apply_scan_limits(myscans, param)
		if param["type"] == "cut":
			signal = mapmaking.SignalCut(active_scans, dtype=dtype, comm=comm, name=effname, ofmt=param["ofmt"], output=param["output"]=="yes")
			signal_cut = signal
		elif param["type"] == "map":
			area = enmap.read_map(get_map_path(param["value"]))
			area = enmap.zeros((args.ncomp,)+area.shape[-2:], area.wcs, dtype)
			signal = mapmaking.SignalMap(active_scans, area, comm=comm, name=effname, ofmt=param["ofmt"], output=param["output"]=="yes", sys=param["sys"], extra=setup_extra_transforms(param))
		elif param["type"] == "fmap":
			area = enmap.read_map(get_map_path(param["value"]))
			area = enmap.zeros((args.ncomp,)+area.shape[-2:], area.wcs, dtype)
			signal = mapmaking.SignalMapFast(active_scans, area, comm=comm, name=effname, ofmt=param["ofmt"], output=param["output"]=="yes", sys=param["sys"], extra=setup_extra_transforms(param))
		elif param["type"] == "dmap":
			area = dmap.read_map(get_map_path(param["value"]), bbox=mybbox, tshape=tshape, comm=comm)
			area = dmap.zeros(area.geometry.aspre(args.ncomp).astype(dtype))
			signal = mapmaking.SignalDmap(active_scans, mysubs, area, name=effname, ofmt=param["ofmt"], output=param["output"]=="yes", sys=param["sys"], extra=setup_extra_transforms(param))
		elif param["type"] == "fdmap":
			area = dmap.read_map(get_map_path(param["value"]), bbox=mybbox, tshape=tshape, comm=comm)
			area = dmap.zeros(area.geometry.aspre(args.ncomp).astype(dtype))
			signal = mapmaking.SignalDmapFast(active_scans, mysubs, area, name=effname, ofmt=param["ofmt"], output=param["output"]=="yes", sys=param["sys"], extra=setup_extra_transforms(param))
		elif param["type"] == "bmap":
			area = enmap.read_map(get_map_path(param["value"]))
			area = enmap.zeros((args.ncomp,)+area.shape[-2:], area.wcs, dtype)