punchbowl.level1.initial_uncertainty#

Functions#

dn_to_photons(→ numpy.ndarray)

Convert an input array from DN to photon count.

compute_noise(→ tuple[numpy.ndarray, numpy.ndarray])

Generate noise based on an input data array, with specified noise parameters.

compute_uncertainty(→ numpy.ndarray)

With an input data array compute a corresponding uncertainty array.

fill_saturated_pixels(→ ndcube.NDCube)

Flag saturated pixels with neighborhood and flag in the uncertainty layer.

update_initial_uncertainty_task(→ ndcube.NDCube)

Prefect task to compute initial uncertainty.

Module Contents#

punchbowl.level1.initial_uncertainty.dn_to_photons(data_array: numpy.ndarray, gain_bottom: float = 4.9, gain_top: float = 4.9) numpy.ndarray[source]#

Convert an input array from DN to photon count.

punchbowl.level1.initial_uncertainty.compute_noise(data: numpy.ndarray, bias_level: float = 100, dark_level: float = 55.81, gain_bottom: float = 4.9, gain_top: float = 4.9, read_noise_level: float = 17, bitrate_signal: int = 16) tuple[numpy.ndarray, numpy.ndarray][source]#

Generate noise based on an input data array, with specified noise parameters.

Parameters:
  • data – input data array (n x n)

  • bias_level – ccd bias level

  • dark_level – ccd dark level

  • gain_bottom – ccd gain (bottom side of CCD)

  • gain_top – ccd gain (top side of CCD)

  • read_noise_level – ccd read noise level

  • bitrate_signal – desired ccd data bit level

Returns:

  • data (np.ndarray) – clipped data with the bias level added

  • noise (np.ndarray) – computed noise array corresponding to input data and ccd/noise parameters

punchbowl.level1.initial_uncertainty.compute_uncertainty(data_array: numpy.ndarray, dark_level: float = 55.81, gain_bottom: float = 4.9, gain_top: float = 4.9, read_noise_level: float = 17) numpy.ndarray[source]#

With an input data array compute a corresponding uncertainty array.

punchbowl.level1.initial_uncertainty.fill_saturated_pixels(data_object: ndcube.NDCube, saturated_pixels: numpy.ndarray, row_threshold: int = 300) ndcube.NDCube[source]#

Flag saturated pixels with neighborhood and flag in the uncertainty layer.

Parameters:
  • data_object (NDCube) – input data cube

  • saturated_pixels (np.ndarray) – mask where saturated pixels are True

  • row_threshold (int) – if this many pixels are flagged as saturated in a row, the whole row is filled with neighborhood values

Returns:

a cleaned NDCube with saturated pixels filled

Return type:

NDCube

punchbowl.level1.initial_uncertainty.update_initial_uncertainty_task(data_object: ndcube.NDCube, dark_level: float = 55.81, gain_bottom: float = 4.9, gain_top: float = 4.9, read_noise_level: float = 17, bitrate_signal: int = 16, saturated_pixels: numpy.ndarray | None = None) ndcube.NDCube[source]#

Prefect task to compute initial uncertainty.