Source code for sotodlib.toast.workflows.proc_mapmaker_ml

# Copyright (c) 2023-2023 Simons Observatory.
# Full license can be found in the top level "LICENSE" file.
"""Simultaneous filtering and binned mapmaking.
"""

import numpy as np
from astropy import units as u
import toast
import toast.ops
from toast.observation import default_values as defaults

from .. import ops as so_ops
from .job import workflow_timer


[docs] def setup_mapmaker_ml(operators): """Add commandline args and operators for the S.O. maximum likelihood mapmaker. Args: operators (list): The list of operators to extend. Returns: None """ operators.append(so_ops.MLMapmaker(name="mlmapmaker", enabled=False, comps="TQU"))
[docs] @workflow_timer def mapmaker_ml(job, otherargs, runargs, data): """Run the S.O. maximum likelihood mapmaker. Args: job (namespace): The configured operators and templates for this job. otherargs (namespace): Other commandline arguments. runargs (namespace): Job related runtime parameters. data (Data): The data container. Returns: None """ # Configured operators for this job job_ops = job.operators if job_ops.mlmapmaker.enabled: if data.comm.group_size != 1: msg = "The ML mapmaker requires the process group" msg += " size to be exactly one, since it uses" msg += " threads for parallelism." raise RuntimeError(msg) job_ops.mlmapmaker.out_dir = otherargs.out_dir job_ops.mlmapmaker.apply(data)