MPoL icon indicating copy to clipboard operation
MPoL copied to clipboard

Add theoretical noise calculation to DirtyImager

Open iancze opened this issue 9 months ago • 0 comments

Is your feature request related to a problem or opportunity? Please describe.

In practice, one calculates the noise in a synthesized image by taking the RMS of some signal-free region.

But the theoretical thermal noise of the synthesized map can also be calculated directly from the imaging weights. See Dan Briggs's thesis, Eqn 3.3.

Describe the solution you'd like We implemented this calculation in an example script, for natural weighting and no taper.

It should be relatively straightforward to extend this to include those terms.

To DirtyImager, add a

def get_thermal_noise(
        self,
        weighting: str = "uniform",
        robust: float | None = None,
        taper_function: Callable[
            [npt.NDArray[np.floating[Any]], npt.NDArray[np.floating[Any]]],
            npt.NDArray[np.floating[Any]],
        ]
        | None = None,
        unit: str = "Jy/beam")

routine.

Additional context It'd be worthwhile comparing this to the calculation from CASA.

iancze avatar Apr 25 '24 18:04 iancze