ColumnPixelDefect#
- class cabaret.camera.ColumnPixelDefect(name: str = 'defect', rate: float = 0.0, seed: int = 0, apply_before_base: bool = False, _rng: Generator | None = None, _pixels: ndarray | None = None, value: int = 0, dim: int = 0, _lines: ndarray | None = None)[source]#
A pixel defect that simulates column noise by selecting entire rows or columns of pixels to be defective.
Examples
>>> from cabaret import Observatory, Sources >>> pixel_defects = { ... "column": {"type": "column", "value": 20, "rate": 0.01, "dim": 1} ... } >>> observatory = Observatory(camera={"pixel_defects": pixel_defects}) >>> sources = Sources.get_test_sources() >>> ra, dec = sources.center >>> _, clean_image, image = observatory.generate_image_stack( ... exp_time=3, ra=ra, dec=dec, sources=sources, convert_all_to_adu=True ... )
To plot the images, you can use the plot_image function from cabaret.plot:
>>> from cabaret.plot import plot_image >>> import matplotlib.pyplot as plt >>> fig, axes = plt.subplots(1, 2, figsize=(7, 5), sharex=True, sharey=True) >>> _ = plot_image(clean_image, ax=axes[0], title="Image without defects") >>> _ = plot_image(image, ax=axes[1], title="Image with column defects") >>> plt.subplots_adjust(wspace=0.1) >>> plt.show()
Methods
__init__([name, rate, seed, ...])introduce_pixel_defect(image, camera, **kwargs)Introduce the defect into the image.
number_of_defect_pixels(camera)Calculate the number of pixels affected by the defect.
set_lines(lines, camera)Set the lines for the defect.
set_pixels(pixels, camera)Set the pixels for the defect.
Attributes
apply_before_baseIf True, this defect is applied before the base image (bias, dark, read noise) is added.
dimDimension along which to apply the defect.
linesDefective lines (rows or columns).
nameName of the defect.
pixelsPixel coordinates affected by the defect.
rateFraction of pixels affected by the defect.
rngRandom number generator instance.
seedRandom seed for reproducibility.
valueConstant value to assign to defect pixels.