As mentioned in Surface brightness limit of image, the surface brightness limit assumes independent pixels when deriving the standard deviation (the main input in the equation). It just extrapolates the standard devaiation derived from one pixel to the requested area. But as mentioned at the end of that section, we have correlated noise in our science-ready (deep) images and the noise of the pixels are not independent.

Because of this, the surface brightness limit will always under-estimate the surface brightness (give fainter values than what is statistically possible in the data for the requested area). To account for the correlated noise in the images, we need to derive the standard deviation over a group of pixels that fall within a certain footprint/shape. For example over a circular aperture of radius 5.6419 arcsec, or a square with a side length of \(10\) arcsec. Depending on the correlated noise systematics, the limit can be (very) different for different shapes, even if they have the same area (as in the circle and square mentioned in the previous sentence: both have an area of 100 arcsec\(^2\)).

Therefore we need to derive the standard deviation that goes into the surface brightness limit equation over a certain footprint/shape. To do that, we should:

- Place the desired footprint many times randomly over all the undetected pixels in an image.
In MakeCatalog, the number of these random positions can be configured with
`--upnum`and you can check their positions with`--checkuplim`. - Calculate the sum of pixel values in each randomly placed footprint.
- Calculate the sigma-clipped standard deviation of the resulting distribution (of sum of pixel values in the randomly placed apertures). Therefore, each footprint’s measurement is be independent of the other.
- Calculate the surface brightness of that standrad deviation (after multiplying it with your desired multiple of sigma). For the definition of surface brightness, see Brightness, Flux, Magnitude and Surface brightness.

If you have reviewed the previous sections, the measurements over randomly placed apertures should remind you of Upper limit magnitude of each detection. Generally, the “upper limit” prefix is given to all measurements with this way of measurement. Therefore this limit is called “Upper limit surface brightness” of an image (for a multiple of sigma, over a certain shape).

Traditionally a circular aperture of a fixed radius (in arcseconds) has been used.
In Gnuastro, a labeled image containing the desired shape/aperture can be generated with MakeProfiles.
The position of the label is irrelevant because the upper limit measurements are done on the many randomly placed footprints in undetected regions (independent of where the label is positioned).
That labeled image should then be given to MakeCatalog, while requesting `--upperlimit-sb`.
Of course, all detected signal in the image needs to be masked (set to blank/NaN) so MakeCatalog doesn’t use randomly placed apertures that overlap with detected signal in the image.

Going into the implementation details can get pretty hard to follow in English, so a full hands-on tutorial is available in the second half of Image surface brightness limit. Read that tutorial with the same input images and run the commands, and see each output image to get a good understanding of how to properly measure the upper limit surface brightness of your images.

JavaScript license information

GNU Astronomy Utilities 0.22 manual, February 2024.