Source code for jwst.charge_migration.charge_migration_step

#! /usr/bin/env python
import logging

from stdatamodels.jwst import datamodels

from jwst.charge_migration import charge_migration
from jwst.stpipe import Step

log = logging.getLogger(__name__)

__all__ = ["ChargeMigrationStep"]


[docs] class ChargeMigrationStep(Step): """Set the CHARGELOSS flag for groups exhibiting significant charge migration.""" class_alias = "charge_migration" spec = """ signal_threshold = float(default=25000) skip = boolean(default=True) """ # noqa: E501
[docs] def process(self, step_input): """ Detect jumps based on signal threshold. Parameters ---------- step_input : RampModel The ramp model on which to detect jumps. Returns ------- result : RampModel The flagged ramp model. """ # Open the input data model with datamodels.RampModel(step_input) as input_model: if input_model.data.shape[1] < 3: # skip step if only 1 or 2 groups/integration log.info("Too few groups per integration; skipping charge_migration") input_model.meta.cal_step.charge_migration = "SKIPPED" return input_model # Work on a copy result = input_model.copy() # Retrieve the parameter value(s) signal_threshold = self.signal_threshold result = charge_migration.charge_migration(result, signal_threshold) result.meta.cal_step.charge_migration = "COMPLETE" return result