GNU Astronomy Utilities NoiseChisel output

NoiseChisel’s output is a multi-extension FITS file. The main extension/dataset is a (binary) detection map. It has the same size as the input but with only two possible values for all pixels: 0 (for pixels identified as noise) and 1 (for those identified as signal/detections). The detection map is followed by a Sky and Sky standard deviation dataset (which are calculated from the binary image). By default (when --rawoutput is not called), NoiseChisel will also subtract the Sky value from the input and save the sky-subtracted input as the first extension in the output with data. The zero-th extension (that contains no data), contains NoiseChisel’s configuration as FITS keywords, see Output FITS files.

The name of the output file can be set by giving a value to --output (this is a common option between all programs and is therefore discussed in Input/Output options). If --output is not used, the input name will be suffixed with _detected.fits and used as output, see Automatic output. If any of the options starting with --check* are given, NoiseChisel will not complete and will abort as soon as the respective check images are created. For more information on the different check images, see the description for the --check* options in Detection options (this can be disabled with --continueaftercheck).

The last two extensions of the output are the Sky and its Standard deviation, see Sky value for a complete explanation. They are calculated on the tile grid that you defined for NoiseChisel. By default these datasets will have the same size as the input, but with all the pixels in one tile given one value. To be more space-efficient (keep only one pixel per tile), you can use the --oneelempertile option, see Tessellation.

To inspect any of NoiseChisel’s output files, assuming you use SAO DS9, you can configure your Graphic User Interface (GUI) to open NoiseChisel’s output as a multi-extension data cube. This will allow you to flip through the different extensions and visually inspect the results. This process has been described for the GNOME GUI (most common GUI in GNU/Linux operating systems) in Viewing FITS file contents with DS9 or TOPCAT.

NoiseChisel’s output configuration options are described in detail below.


Continue NoiseChisel after any of the options starting with --check (see Detection options. NoiseChisel involves many steps and as a result, there are many checks, allowing you to inspect the status of the processing. The results of each step affect the next steps of processing. Therefore, when you want to check the status of the processing at one step, the time spent to complete NoiseChisel is just wasted/distracting time.

To encourage easier experimentation with the option values, when you use any of the NoiseChisel options that start with --check, NoiseChisel will abort once its desired extensions have been written. With --continueaftercheck option, you can disable this behavior and ask NoiseChisel to continue with the rest of the processing, even after the requested check files are complete.


Do not set the input’s blank pixels to blank in the tiled outputs (for example, Sky and Sky standard deviation extensions of the output). This is only applicable when the tiled output has the same size as the input, in other words, when --oneelempertile is not called.

By default, blank values in the input (commonly on the edges which are outside the survey/field area) will be set to blank in the tiled outputs also. But in other scenarios this default behavior is not desired; for example, if you have masked something in the input, but want the tiled output under that also.


Run a connected-components algorithm on the finally detected pixels to identify which pixels are connected to which. By default the main output is a binary dataset with only two values: 0 (for noise) and 1 (for signal/detections). See NoiseChisel output for more.

The purpose of NoiseChisel is to detect targets that are extended and diffuse, with outer parts that sink into the noise very gradually (galaxies and stars for example). Since NoiseChisel digs down to extremely low surface brightness values, many such targets will commonly be detected together as a single large body of connected pixels.

To properly separate connected objects, sophisticated segmentation methods are commonly necessary on NoiseChisel’s output. Gnuastro has the dedicated Segment program for this job. Since input images are commonly large and can take a significant volume, the extra volume necessary to store the labels of the connected components in the detection map (which will be created with this --label option, in 32-bit signed integer type) can thus be a major waste of space. Since the default output is just a binary dataset, an 8-bit unsigned dataset is enough.

The binary output will also encourage users to segment the result separately prior to doing higher-level analysis. As an alternative to --label, if you have the binary detection image, you can use the connected-components operator in Gnuastro’s Arithmetic program to identify regions that are connected with each other. For example, with this command (assuming NoiseChisel’s output is called nc.fits):

$ astarithmetic nc.fits 2 connected-components -hDETECTIONS

Do not include the Sky-subtracted input image as the first extension of the output. By default, the Sky-subtracted input is put in the first extension of the output. The next extensions are NoiseChisel’s main outputs described above.

The extra Sky-subtracted input can be convenient in checking NoiseChisel’s output and comparing the detection map with the input: visually see if everything you expected is detected (reasonable completeness) and that you do not have too many false detections (reasonable purity). This visual inspection is simplified if you use SAO DS9 to view NoiseChisel’s output as a multi-extension data-cube, see Viewing FITS file contents with DS9 or TOPCAT.

When you are satisfied with your NoiseChisel configuration (therefore you do not need to check on every run), or you want to archive/transfer the outputs, or the datasets become large, or you are running NoiseChisel as part of a pipeline, this Sky-subtracted input image can be a significant burden (take up a large volume). The fact that the input is also noisy, makes it hard to compress it efficiently.

In such cases, this --rawoutput can be used to avoid the extra sky-subtracted input in the output. It is always possible to easily produce the Sky-subtracted dataset from the input (assuming it is in extension 1 of in.fits) and the SKY extension of NoiseChisel’s output (let’s call it nc.fits) with a command like below (assuming NoiseChisel was not run with --oneelempertile, see Tessellation):

$ astarithmetic in.fits nc.fits - -h1 -hSKY

Save space: with the --rawoutput and --oneelempertile, NoiseChisel’s output will only be one binary detection map and two much smaller arrays with one value per tile. Since none of these have noise they can be compressed very effectively (without any loss of data) with exceptionally high compression ratios. This makes it easy to archive, or transfer, NoiseChisel’s output even on huge datasets. To compress it with the most efficient method (take up less volume), run the following command:

$ gzip --best noisechisel_output.fits

The resulting .fits.gz file can then be fed into any of Gnuastro’s programs directly, or viewed in viewers like SAO DS9, without having to decompress it separately (they will just take a little longer, because they have to internally decompress it before starting). See NoiseChisel optimization for storage for an example on a real dataset.