karabo.imaging.imager_rascil

Overview

This package summerizes tools and functions to be used with the imager from the RASCIL backend. This backend allows both calculating a dirty images and a cleaned image, respoectivley.

Classes

class RascilDirtyImagerConfig(imaging_npixel: int, imaging_cellsize: float, combine_across_frequencies: bool = True, override_cellsize: bool = False)

Config / parameters of a RascilDirtyImager.

Adds parameters specific to RascilDirtyImager.

imaging_npixel

see DirtyImagerConfig

Type:

int

imaging_cellsize

see DirtyImagerConfig

Type:

float

combine_across_frequencies

see DirtyImagerConfig

Type:

bool

override_cellsize

Override the cellsize if it is above the critical cellsize. Defaults to False.

Type:

bool

__init__(imaging_npixel: int, imaging_cellsize: float, combine_across_frequencies: bool = True, override_cellsize: bool = False) None
class RascilDirtyImager(config: RascilDirtyImagerConfig)

Dirty imager based on the RASCIL library.

config

Config containing parameters for RASCIL dirty imaging.

Type:

RascilDirtyImagerConfig

__init__(config: RascilDirtyImagerConfig) None

Initializes the instance with a config.

Parameters:

config (RascilDirtyImagerConfig) – see config attribute

create_dirty_image(visibility: Visibility, /, *, output_fits_path: Path | str | None = None) Image

Creates a dirty image from a visibility.

Parameters:
  • visibility – Visibility object from which to create the dirty image. Contains the visibilities of an observation.

  • output_fits_path – Path to write the dirty image to. Example: /tmp/dirty.fits. If None, will be set to a temporary directory and a default file name. Defaults to None.

Returns:

Dirty image

Return type:

Image

class RascilImageCleanerConfig(imaging_npixel: int, imaging_cellsize: float, ingest_dd: ~typing.List[int] = <factory>, ingest_vis_nchan: int | None = None, ingest_chan_per_vis: int = 1, imaging_nchan: int = 1, imaging_w_stacking: bool | str = True, imaging_flat_sky: bool | str = False, override_cellsize: bool = False, imaging_uvmax: float | None = None, imaging_uvmin: float = 0, imaging_dft_kernel: ~typing.Literal['cpu_looped', 'gpu_raw'] | None = None, client: ~distributed.client.Client | None = None, use_dask: bool = False, n_threads: int = 1, use_cuda: bool = False, img_context: ~typing.Literal['awprojection', '2d', 'ng', 'wg'] = 'ng', clean_algorithm: ~typing.Literal['hogbom', 'msclean', 'mmclean'] = 'hogbom', clean_beam: ~typing.Dict[~typing.Literal['bmaj', 'bmin', 'bpa'], float] | None = None, clean_scales: ~typing.List[int] = <factory>, clean_nmoment: int = 4, clean_nmajor: int = 5, clean_niter: int = 1000, clean_psf_support: int = 256, clean_gain: float = 0.1, clean_threshold: float = 0.0001, clean_component_threshold: float | None = None, clean_component_method: ~typing.Literal['fit', 'extract'] = 'fit', clean_fractional_threshold: float = 0.3, clean_facets: int = 1, clean_overlap: int = 32, clean_taper: ~typing.Literal['none', 'linear', 'tukey'] = 'tukey', clean_restore_facets: int = 1, clean_restore_overlap: int = 32, clean_restore_taper: ~typing.Literal['none', 'linear', 'tukey'] = 'tukey', clean_restored_output: ~typing.Literal['taylor', 'list', 'integrated'] = 'list')

Config / parameters of a RascilImageCleaner.

Adds parameters specific to RascilImageCleaner.

ingest_dd

Data descriptors in MS to read (all must have the same number of channels). Defaults to [0].

Type:

List[int]

ingest_vis_nchan

Number of channels in a single data descriptor in the MS. Defaults to None.

Type:

Optional[int]

ingest_chan_per_vis

Number of channels per blockvis (before any average). Defaults to 1.

Type:

int

imaging_nchan

Number of channels per image. Defaults to 1.

Type:

int

imaging_w_stacking

Use the improved w stacking method in Nifty Gridder?. Defaults to True.

Type:

Union[bool, str]

imaging_flat_sky

If using a primary beam, normalise to

Type:

Union[bool, str]

flat sky? Defaults to False.
override_cellsize

Override the cellsize if it is above the critical cellsize? Defaults to False.

Type:

bool

imaging_uvmax

TODO. Defaults to None.

Type:

Optional[float]

imaging_uvmin

TODO. Defaults to 0.

Type:

float

imaging_dft_kernel

DFT kernel: cpu_looped | gpu_raw. Defaults to None.

Type:

Optional[DftKernelType]

client

Dask client. Defaults to None.

Type:

Optional[Client]

use_dask

Use dask? Defaults to False.

Type:

bool

n_threads

n_threads per worker. Defaults to 1.

Type:

int

use_cuda

Use CUDA for Nifty Gridder? Defaults to False.

Type:

bool

img_context

Which nifty gridder to use. Defaults to “ng”.

Type:

ImageContextType

clean_algorithm

Deconvolution algorithm (hogbom or msclean or mmclean). Defaults to “hogbom”.

Type:

CleanAlgorithmType

clean_beam

major axis, minor axis, position angle (deg). Defaults to None.

Type:

Optional[Dict[CleanBeamInDegType, float]]

clean_scales

Scales for multiscale clean (pixels) e.g. [0, 6, 10]. Defaults to [0].

Type:

List[int]

clean_nmoment

Number of frequency moments in mmclean (1=constant, 2=linear). Defaults to 4.

Type:

int

clean_nmajor

Number of major cycles in cip or ical. Defaults to 5.

Type:

int

clean_niter

Number of minor cycles in CLEAN. Defaults to 1000.

Type:

int

clean_psf_support

Half-width of psf used in cleaning (pixels). Defaults to 256.

Type:

int

clean_gain

Clean loop gain. Defaults to 0.1.

Type:

float

clean_threshold

Clean stopping threshold (Jy/beam). Defaults to 1e-4.

Type:

float

clean_component_threshold

Sources with absolute flux > this level (Jy) are fit or extracted using skycomponents. Defaults to None.

Type:

Optional[float]

clean_component_method

Method to convert sources in image to skycomponents: “fit” in frequency or “extract” actual values. Defaults to “fit”.

Type:

CleanComponentMethodType

clean_fractional_threshold

Fractional stopping threshold for major cycle. Defaults to 0.3.

Type:

float

clean_facets

axis. Defaults to 1.

Type:

int

clean_overlap

Overlap of facets in clean (pixels). Defaults to 32.

Type:

int

clean_taper

Type of interpolation between facets in deconvolution: none or linear or tukey. Defaults to “tukey”.

Type:

CleanTaperType

clean_restore_facets

Number of overlapping facets in restore step along each axis. Defaults to 1.

Type:

int

clean_restore_overlap

Overlap of facets in restore step (pixels). Defaults to 32.

Type:

int

clean_restore_taper

Type of interpolation between facets in restore step (none, linear or tukey). Defaults to “tukey”.

Type:

CleanTaperType

clean_restored_output

Type of restored image output: taylor, list, or integrated. Defaults to “list”.

Type:

CleanRestoredOutputType

__init__(imaging_npixel: int, imaging_cellsize: float, ingest_dd: ~typing.List[int] = <factory>, ingest_vis_nchan: int | None = None, ingest_chan_per_vis: int = 1, imaging_nchan: int = 1, imaging_w_stacking: bool | str = True, imaging_flat_sky: bool | str = False, override_cellsize: bool = False, imaging_uvmax: float | None = None, imaging_uvmin: float = 0, imaging_dft_kernel: ~typing.Literal['cpu_looped', 'gpu_raw'] | None = None, client: ~distributed.client.Client | None = None, use_dask: bool = False, n_threads: int = 1, use_cuda: bool = False, img_context: ~typing.Literal['awprojection', '2d', 'ng', 'wg'] = 'ng', clean_algorithm: ~typing.Literal['hogbom', 'msclean', 'mmclean'] = 'hogbom', clean_beam: ~typing.Dict[~typing.Literal['bmaj', 'bmin', 'bpa'], float] | None = None, clean_scales: ~typing.List[int] = <factory>, clean_nmoment: int = 4, clean_nmajor: int = 5, clean_niter: int = 1000, clean_psf_support: int = 256, clean_gain: float = 0.1, clean_threshold: float = 0.0001, clean_component_threshold: float | None = None, clean_component_method: ~typing.Literal['fit', 'extract'] = 'fit', clean_fractional_threshold: float = 0.3, clean_facets: int = 1, clean_overlap: int = 32, clean_taper: ~typing.Literal['none', 'linear', 'tukey'] = 'tukey', clean_restore_facets: int = 1, clean_restore_overlap: int = 32, clean_restore_taper: ~typing.Literal['none', 'linear', 'tukey'] = 'tukey', clean_restored_output: ~typing.Literal['taylor', 'list', 'integrated'] = 'list') None
class RascilImageCleaner(config: RascilImageCleanerConfig)

Image cleaner based on the RASCIL library.

config

Config containing parameters for RASCIL image cleaning.

Type:

RascilImageCleanerConfig

__init__(config: RascilImageCleanerConfig) None

Initializes the instance with a config.

Parameters:

config (RascilImageCleanerConfig) – see config attribute

create_cleaned_image(visibility: Visibility, /, *, dirty_fits_path: Path | str | None = None, output_fits_path: Path | str | None = None) Image

Creates a clean image from a dirty image or from visibilities.

Parameters:
  • visibility – Visibility from which a clean image should be created.

  • dirty_fits_path – Path to dirty image FITS file that should be reused to create a clean image. If None, dirty image will be created first from the visibilities. Defaults to None.

  • output_fits_path – Path to write the clean image to. Example: /tmp/restored.fits. If None, will be set to a temporary directory and a default file name. Defaults to None.

Returns:

Clean image

Return type:

Image

create_cleaned_image_variants(visibility: Visibility, /, deconvolved_fits_path: Path | str | None = None, restored_fits_path: Path | str | None = None, residual_fits_path: Path | str | None = None) Tuple[Image, Image, Image]

Creates a clean image from visibilities.

Parameters:
  • visibility – Visibility from which a clean image should be created. Please note: only MS visibilities supported.

  • deconvolved_fits_path – Path to write the deconvolved image to. Example: /tmp/deconvolved.fits. If None, will be set to a temporary directory and a default file name.

  • restored_fits_path – Path to write the restored image to. Example: /tmp/restored.fits. If None, will be set to a temporary directory and a default file name.

  • residual_fits_path – Path to write the residual image to. Example: /tmp/residual.fits. If None, will be set to a temporary directory and a default file name.

Returns:

A tuple (deconvolved, restored, residual) of images