GNU Astronomy Utilities


Next: , Previous: , Up: Data analysis   [Contents][Index]


7.2 NoiseChisel

Once instrumental signatures are removed from the raw data (image) in the initial reduction process (see Data manipulation). You are naturally eager to start answering the scientific questions that motivated the data collection in the first place. However, the raw dataset/image is just an array of values/pixels, that is all! These raw values cannot directly be used to answer your scientific questions: for example “how many galaxies are there in the image?”.

The first high-level step in your analysis of your targets will thus be to classify, or label, the dataset elements (pixels) into two classes: 1) noise, where random effects are the major contributor to the value, and 2) signal, where non-random factors (for example light from a distant galaxy) are present. This classification of the elements in a dataset is formally known as detection.

In an observational/experimental dataset, signal is always buried in noise: only mock/simulated datasets are free of noise. Therefore detection, or the process of separating signal from noise, determines the number of objects you study and the accuracy of any higher-level measurement you do on them. Detection is thus the most important step of any analysis and is not trivial. In particular, the most scientifically interesting astronomical targets are faint, can have a large variety of morphologies, along with a large distribution in brightness and size. Therefore when noise is significant, proper detection of your targets is a uniquely decisive step in your final scientific analysis/result.

NoiseChisel is Gnuastro’s program for detection of targets that don’t have a sharp border (almost all astronomical objects). When the targets have a sharp edges/border (for example cells in biological imaging), a simple threshold is enough to separate them from noise and each other (if they are not touching). To detect such sharp-edged targets, you can use Gnuastro’s Arithmetic program in a command like below (assuming the threshold is 100, see Arithmetic):

$ astarithmetic in.fits 100 gt 2 connected-components

Since almost no astronomical target has such sharp edges, we need a more advanced detection methodology. NoiseChisel uses a new noise-based paradigm for detection of very extended and diffuse targets that are drowned deeply in the ocean of noise. It was initially introduced in Akhlaghi and Ichikawa [2015]. The name of NoiseChisel is derived from the first thing it does after thresholding the dataset: to erode it. In mathematical morphology, erosion on pixels can be pictured as carving-off boundary pixels. Hence, what NoiseChisel does is similar to what a wood chisel or stone chisel do. It is just not a hardware, but a software. In fact, looking at it as a chisel and your dataset as a solid cube of rock will greatly help in effectively understanding and optimally using it: with NoiseChisel you literally carve your targets out of the noise. Try running it with the --checkdetection option to see each step of the carving process on your input dataset.

NoiseChisel’s primary output is a binary detection map with the same size as the input but only with two values: 0 and 1. Pixels that don’t harbor any detected signal (noise) are given a label (or value) of zero and those with a value of 1 have been identified as hosting signal.

Segmentation is the process of classifying the signal into higher-level constructs. For example if you have two separate galaxies in one image, by default NoiseChisel will give a value of 1 to the pixels of both, but after segmentation, the pixels in each will get separate labels. NoiseChisel is only focused on detection (separating signal from noise), to segment the signal (into separate galaxies for example), Gnuastro has a separate specialized program Segment. NoiseChisel’s output can be directly/readily fed into Segment.

For more on NoiseChisel’s output format and its benefits (especially in conjunction with Segment and later MakeCatalog), please see Akhlaghi [2016]. Just note that when that paper was published, Segment was not yet spun-off into a separate program, and NoiseChisel done both detection and segmentation.

NoiseChisel’s output is designed to be generic enough to be easily used in any higher-level analysis. If your targets are not touching after running NoiseChisel and you aren’t interested in their sub-structure, you don’t need the Segment program at all. You can ask NoiseChisel to find the connected pixels in the output with the --label option. In this case, the output won’t be a binary image any more, the signal will have counters/labels starting from 1 for each connected group of pixels. You can then directly feed NoiseChisel’s output into MakeCatalog for measurements over the detections and the production of a catalog (see MakeCatalog).

Thanks to the published papers mentioned above, there is no need to provide a more complete introduction to NoiseChisel in this book. However, published papers cannot be updated any more, but the software has evolved/changed. The changes since publication are documented in NoiseChisel changes after publication. Afterwards, in Invoking NoiseChisel, the details of running NoiseChisel and its options are discussed.

As discussed above, detection is one of the most important steps for your scientific result. It is therefore very important to obtain a good understanding of NoiseChisel (and afterwards Segment and MakeCatalog). We thus strongly recommend that after reading the papers above and the respective sections of Gnuastro’s book, you play a little with the settings (in the order presented in the paper and Invoking NoiseChisel) on a dataset you are familiar with and inspect all the check images (options starting with --check) to see the effect of each parameter.

We strongly recommend going over the two tutorials of General program usage tutorial and Detecting large extended targets. They are designed to show how to most effectively use NoiseChisel for the detection of small faint objects and large extended objects. In the meantime, they will show you the modular principle behind Gnuastro’s programs and how they are built to complement, and build upon, each other. General program usage tutorial culminates in using NoiseChisel to detect galaxies and use its outputs to find the galaxy colors. Defining colors is a very common process in most science-cases. Therefore it is also recommended to (patiently) complete that tutorial for optimal usage of NoiseChisel in conjunction with all the other Gnuastro programs. Detecting large extended targets shows you can optimize NoiseChisel’s settings for very extended objects to successfully carve out to signal-to-noise ratio levels of below 1/10.

In NoiseChisel changes after publication, we’ll review the changes in NoiseChisel since the publication of Akhlaghi and Ichikawa [2015]. We will then review NoiseChisel’s input, detection, and output options in NoiseChisel input, Detection options, and NoiseChisel output.


Next: , Previous: , Up: Data analysis   [Contents][Index]