Source code for exosim.tasks.instrument.createFocalPlane
import gc
import exosim.models.signal as signal
import exosim.tasks.instrument as instrument
from exosim.tasks.task import Task
[docs]class CreateFocalPlane(Task):
"""
It produces the empty focal plane
Returns
-------
:class:`~exosim.models.signal.Signal`
focal plane array (with time evolution)
"""
def __init__(self):
"""
Parameters
__________
parameters: dict
channel parameter dictionary. This is usually parsed from :class:`~exosim.tasks.load.loadOptions.LoadOptions`
time: :class:`~astropy.units.Quantity`
time grid.
output: :class:`~exosim.output.output.Output` (optional)
output file
group_name: str (optional)
group name in output
"""
self.add_task_param("parameters", "channel parameters dict")
self.add_task_param("efficiency", "chennel efficiency")
self.add_task_param("time", "time grid")
self.add_task_param("output", "output file")
self.add_task_param(
"group_name", "group name in output", "focal plane"
)
[docs] def execute(self):
self.info("creating focal plane")
parameters = self.get_task_param("parameters")
efficiency = self.get_task_param("efficiency")
tt = self.get_task_param("time")
output = self.get_task_param("output")
group_name = self.get_task_param("group_name")
createFocalPlaneArray = instrument.CreateFocalPlaneArray()
focal_plane_array = createFocalPlaneArray(
parameters=parameters, efficiency=efficiency
)
focal_plane_array.temporal_rebin(tt)
focal_plane = signal.Signal(
spectral=focal_plane_array.spectral,
spatial=focal_plane_array.spatial,
data=focal_plane_array.data,
time=tt,
cached=False,
output=output,
dataset_name=group_name,
metadata=focal_plane_array.metadata,
)
self.set_output(focal_plane)
del focal_plane
gc.collect()