Source code for romancal.photom.photom_step

#! /usr/bin/env python

import roman_datamodels as rdm

from romancal.photom import photom
from romancal.stpipe import RomanStep

__all__ = ["PhotomStep"]


[docs] class PhotomStep(RomanStep): """ PhotomStep: Module for loading photometric conversion information from reference files and attaching to the input science data model """ reference_file_types = ["photom"]
[docs] def process(self, input): """Perform the photometric calibration step Parameters ---------- input : Roman level 2 image datamodel (wfi_image-1.x.x) input roman datamodel Returns ------- output_model : Roman level 2 image datamodel (wfi_image-1.x.x) output roman datamodel """ # Open the input data model with rdm.open(input, lazy_load=False) as input_model: # Get reference file reffile = self.get_reference_file(input_model, "photom") # Open the relevant photom reference file as a datamodel if reffile is not None and reffile != "N/A": # If there is a reference file, perform photom application photom_model = rdm.open(reffile) self.log.debug(f"Using PHOTOM ref file: {reffile}") # Do the correction if input_model.meta.exposure.type == "WFI_IMAGE": output_model = photom.apply_photom(input_model, photom_model) output_model.meta.cal_step.photom = "COMPLETE" else: self.log.warning("No photometric corrections for spectral data") self.log.warning("Photom step will be skipped") input_model.meta.cal_step.photom = "SKIPPED" input_model.meta.photometry.pixelarea_arcsecsq = None input_model.meta.photometry.pixelarea_steradians = None input_model.meta.photometry.conversion_megajanskys = None input_model.meta.photometry.conversion_microjanskys = None input_model.meta.photometry.conversion_megajanskys_uncertainty = ( None ) input_model.meta.photometry.conversion_microjanskys_uncertainty = ( None ) output_model = input_model photom_model.close() else: # Skip Photom step if no photom file self.log.warning("No PHOTOM reference file found") self.log.warning("Photom step will be skipped") input_model.meta.cal_step.photom = "SKIPPED" output_model = input_model if self.save_results: try: self.suffix = "photom" except AttributeError: self["suffix"] = "photom" return output_model