Imaging

rascil.processing_components.imaging.base Module

Functions that aid fourier transform processing. These are built on top of the core functions in processing_components.fourier_transforms.

The measurement equation for a sufficently narrow field of view interferometer is:

\[V(u,v,w) =\int I(l,m) e^{-2 \pi j (ul+vm)} dl dm\]

The measurement equation for a wide field of view interferometer is:

\[V(u,v,w) =\int \frac{I(l,m)}{\sqrt{1-l^2-m^2}} e^{-2 \pi j (ul+vm + w(\sqrt{1-l^2-m^2}-1))} dl dm\]

This and related modules contain various approachs for dealing with the wide-field problem where the extra phase term in the Fourier transform cannot be ignored.

Functions

shift_vis_to_image(vis, im[, tangent, inverse])

Shift visibility in place to the phase centre of the Image

normalise_sumwt(im, sumwt[, min_weight, ...])

normalise out the sum of weights

predict_awprojection(vis, model[, gcfcf])

Predict using convolutional degridding and an AW kernel

invert_awprojection(vis, im[, dopsf, ...])

Invert using convolutional degridding and an AW kernel

create_image_from_visibility(vis, **kwargs)

Make an empty image from params and Visibility

advise_wide_field(vis[, delA, ...])

Advise on parameters for wide field imaging.

visibility_recentre(uvw, dl, dm)

Compensate for kernel re-centering - see w_kernel_function.

fill_vis_for_psf(svis)

Fill the visibility for calculation of PSF

rascil.processing_components.imaging.dft Module

Functions that aid fourier transform processing. These are built on top of the core functions in processing_components.fourier_transforms.

The measurement equation for a sufficently narrow field of view interferometer is:

\[V(u,v,w) =\int I(l,m) e^{-2 \pi j (ul+vm)} dl dm\]

The measurement equation for a wide field of view interferometer is:

\[V(u,v,w) =\int \frac{I(l,m)}{\sqrt{1-l^2-m^2}} e^{-2 \pi j (ul+vm + w(\sqrt{1-l^2-m^2}-1))} dl dm\]

This and related modules contain various approachs for dealing with the wide-field problem where the extra phase term in the Fourier transform cannot be ignored.

Functions

dft_skycomponent_visibility(vis, sc, **kwargs)

DFT to get the visibility from a SkyComponent, for Visibility

idft_visibility_skycomponent(vis, sc)

Inverse DFT a SkyComponent from Visibility

rascil.processing_components.imaging.imaging_params Module

Functions

get_rowmap(col[, ucol])

Map to unique cols

get_polarisation_map(vis[, im])

Get the mapping of visibility polarisations to image polarisations

get_frequency_map(vis[, im])

Map channels from visibilities to image

rascil.processing_components.imaging.ng Module

Functions that implement prediction of and imaging from visibilities using the nifty gridder (DUCC version).

https://gitlab.mpcdf.mpg.de/mtr/ducc.git

This performs all necessary w term corrections, to high precision.

Note that nifty gridder doesn’t like some null data such as all w = 0 and do_wstacking=True. Also true of the visibilities.

Functions

predict_ng(bvis, model, **kwargs)

Predict using convolutional degridding.

invert_ng(bvis, model[, dopsf, normalise])

Invert using nifty-gridder module

rascil.processing_components.imaging.primary_beams Module

Functions to create primary beam and voltage pattern models

Functions

set_pb_header(pb[, use_local])

Fill in PB header correctly for local coordinates.

create_pb(model[, telescope, ...])

Create an image containing the primary beam for a number of cases

create_pb_generic(model[, pointingcentre, ...])

Create a generic analytical model of the primary beam

create_vp([model, telescope, ...])

Create an image containing the dish voltage pattern for a number of cases

create_vp_generic(model[, pointingcentre, ...])

Create a generic analytical model of the voltage pattern

create_vp_generic_numeric(model[, ...])

Make an image like model and fill it with an analytical model of the primary beam

create_low_test_beam(model[, use_local, azel])

Create a test power beam for LOW

create_low_test_vp(model[, use_local, azel])

Create a test voltage beam for LOW

create_mid_allsky([frequency, npixel, cellsize])

Approximate all sky MID beam

convert_azelvp_to_radec(vp, im, pa)

Convert AZELGEO image to image coords at specific parallactic angle

normalise_vp(vp)

Normalise the vp in place so that the peak gain on axis for parallel pols is equal

rascil.processing_components.imaging.weighting Module

Functions that aid weighting the visibility data prior to imaging.

There are two classes of functions:
  • Changing the weight dependent on noise level or sample density or a combination

  • Tapering the weihght spatially to avoid effects of sharp edges or to emphasize a given scale size in the image

Functions

weight_visibility(vis, model[, weighting, ...])

Weight the visibility data

taper_visibility_gaussian(vis[, beam])

Taper the visibility weights

taper_visibility_tukey(vis[, tukey])

Taper the visibility weights

rascil.processing_components.imaging.wg Module

Functions that implement prediction of and imaging from visibilities using the GPU-based gridder (WAGG version), https://gitlab.com/ska-telescope/sdp/ska-gridder-nifty-cuda

Currently the python wrapper of the GPU gridder is available in a branch, https://gitlab.com/ska-telescope/sdp/ska-gridder-nifty-cuda/-/tree/sim-874-python-wrapper

This performs all necessary w term corrections, to high precision.

Functions

predict_wg(bvis, model, **kwargs)

Predict using convolutional degridding.

invert_wg(bvis, model[, dopsf, normalise])

Invert using GPU-based WAGG nifty-gridder module