MPoL
MPoL copied to clipboard
Add theoretical noise calculation to DirtyImager
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.