Source code for exorad.tasks.propagateLight

from .targetHandler import UpdateTargetTable
from .task import Task


[docs] class PropagateTargetLight(Task): """ Given the target and a channel dict, it propagates the target light over the channels Parameters ---------- channels: dict main payload. Default is None target: Target Returns ------- QTable: return the output table of propagated signal Examples -------- """ def __init__(self): self.addTaskParam("channels", "payload channels dict") self.addTaskParam("target", "Target class to observe")
[docs] def execute(self): self.info("propagating target light") from exorad.utils.util import vstack_tables target = self.get_task_param("target") channels = self.get_task_param("channels") self.debug("detectors found : {}".format(channels.keys())) table_list = [] for ch in self.get_task_param("channels"): self.debug("propagating target in {}".format(ch)) table_list.append(channels[ch].propagate_target(target)) table = vstack_tables(table_list) updateTargetTable = UpdateTargetTable() target = updateTargetTable(target=target, table=table) self.set_output(target)
[docs] class PropagateForegroundLight(Task): """ Given the target and a channel dict, it propagates the target foreground light over the channels Parameters ---------- channels: dict main payload. Default is None target: Target Returns ------- QTable: return the output table of propagated signal Examples -------- """ def __init__(self): self.addTaskParam("channels", "payload channels dict") self.addTaskParam("target", "Target class to observe")
[docs] def execute(self): self.info("propagating target foreground light") from exorad.utils.util import vstack_tables target = self.get_task_param("target") channels = self.get_task_param("channels") self.debug("detectors found : {}".format(channels.keys())) table_list = [] for ch in self.get_task_param("channels"): self.debug("propagating target background in {}".format(ch)) table_list.append( channels[ch].propagate_diffuse_foreground(target) ) table = vstack_tables(table_list) updateTargetTable = UpdateTargetTable() target = updateTargetTable(target=target, table=table) self.set_output(target)