Program: CLEAN Purpose: This program cleans maps or lines. Category: CLEAN, MANIPULATION, RADIO, TABLES File: clean.c Author: K.G. Begeman Description: CLEAN finds point source components and subtracts them with their antenna response. This is the usual method of decomposition of extended sources into delta functions. (This method was developed by Hogbom, A&A Suppl. 15, p.417 (1974)) Note: You have to use the program RESTORE to get your 'clean' source back. Keywords: INSET= Set and subset(s) of dirty map(s)/line(s). Maximum number of subset(s) is 2048. The dimension of the subsets can be one or two. APSET= Set and subset(s) of antenna pattern(s). OUTSET= Set and subset(s) of residual(s). DEFSET= Set and subset(s) for definition of search area [Search area defined by box]. CLEAN looks for components only where the values in these maps/lines are not equal to BLANK. These maps/lines act as logical masks for the search area, and can easily be obtained by using e.g. the program BLOT on the dirty maps. The number of subsets entered must be equal to the number of dirty maps or one, which means that the same mask will be used for all dirty maps. SEARCHBOX= Search area. Here the components are searched and subtracted. Note: the search area does not have to be inside clean area. CLEANBOX= Clean area [whole subset]. Here the components are subtracted. NMAX= Maximum number of components [10000]. Maximum number allowed 30000. CUTOFF= Cutoff level [0.0]. Iterations stop when abs of minimum and maximum are less than cutoff. ** GAIN= Loop gain factor (standard Hogbom gain) [0.7]. ** FACTOR= Factor to govern when to start subtracting negative components [1.0]. If factor is equal to 1.0 then both positive and negative components are searched. If component amplitudes are less than factor*maximum in map/line, then both positive and negative components are searched. Otherwise only positive components. ** NPOS= Number of positive components to be searched before negative components are considered [0]. ** CUTPOS= Cutoff value for positive components [no cutoff]. No negative components will be subtracted until the maximum map/line value is less than CUTPOS. ** CUTOPT= Cutoff for optimized clean [no optimization]. With this keyword it is possible to 'optimize' the cleaning process (Schwarz, A&A 65, p.345 (1978)). Optimization means that first the dirty map/line in cleaned in the normal way with a large cutoff (> 2 sigma) (specified by CUTOPT=). Next the cleaning resumes with a gain of one, and the search area is restricted to those positions where clean already found components. This second run is controlled by the keyword CUT=, which should be about 5 times less than CUTPOS=. ** CONTINUE= Continuation of a previous clean [N]? If No then an already existing component table will be deleted. If Yes then the component table will be extended with the components found by CLEAN. ** TEST= Extra output for debugging [N]? If you find that CLEAN does not work properly, run the CLEAN again with TEST=Y and send the output to the author. Notes: 1. The maximum size of the search area depends on the amount of available memory. 2. You can stop the iterations by typing CLEAN, STOP=Y. 3. Speed of two-dimensional CLEAN ----------------------------------------------------------- | clean area | components/minute | | | VAX8600 | ALLIANT FX80 | SPARC 1+ | ----------------------------------------------------------- | 128 * 128 | 830 | | | | 256 * 256 | 135 | 364 | 543 | | 512 * 512 | 28 | | | ----------------------------------------------------------- 4. With the hidden keyword TEST=Y you will get some extra information which is only useful for me (KGB). When you have complaints about CLEAN, always show me this output. Thanx! 5. CLEAN checks for BLANKS (undefined values) before it starts cleaning. When CLEAN encounters BLANKS in the dirty map/line when it is in the search phase it skips this map/line. In the subtract phase BLANKS are replaced by zeroes! BLANKS in the antenna pattern are always replaced by zeroes! CLEAN ALWAYS reports BLANKS! So be careful when this happens. 6. CLEAN saves the primary beam corrected component flux, the dirty flux and the residual flux in header items CFLUX1, DFLUX1 and RFLUX1 resp. at the subset level in the output set, and the uncorrected fluxes in resp. UCFLUX1, UDFLUX1 and URFLUXU. Also the number of components are stored in NCOMP1. If these header items already exist, CLEAN saves the values in CFLUX2 etc, unless CONTINUE=N. Updates: Apr 17, 1991: KGB Document created. Dec 11, 1991: KGB Cancel replaced by reject. Feb 12, 1992: KGB Check for BLANKS implemented. Apr 5, 1992: KGB One-dimensional clean implemented. Feb 15, 1994: KGB History, comment and header items added. Mar 8, 2006: JPT Fixed freeing allocated memory.