lofar-astron / factor

Facet calibration for LOFAR
http://www.astron.nl/citt/facet-doc
GNU General Public License v2.0
19 stars 12 forks source link

manually setting the masking island threshold in DDE selfcal #195

Closed rvweeren closed 7 years ago

rvweeren commented 7 years ago

Would it be possible to override the masking thresholds in the DDE selfcal stage in the factor parset ?

I've seen one case where it seems impossible to get the automatic masking right, diffuse emission in combination with a bright source, and if we can just set the masking thresholds high and provide our own mask at DDE selfcal stage we can have better control over what is masked. (Alternatively, the imaging only uses the user provided mask)

Changing the island thresholds can be done by editing the factor scripts but it would be easier to have this as a parset key.

(another way would be to have the option to tell factor that certain areas are not allowed to be masked, sort of the opposite of an imaging mask, but seems to be more involved to implement)

aroffringa commented 7 years ago

An alternative to consider might be to use the automatic masking options of WSClean to do the masking. If I understand the current procedure, using automatic masking would be faster because there's no need to do initial imaging to get the mask, and for multi-scale it gives better results because it will use a scale-dependent mask. With the local RMS options, it is possible to avoid selection of artefacts.

darafferty commented 7 years ago

I'm planning to look into the automasking options in WSClean, as they could be very nice indeed for Factor. In the meantime, I've added an option (update_selfcal_clean_regions under imaging) that if False will force Factor to use the provided clean regions without adding new regions found by the masking script.

Joshuaalbert commented 7 years ago

Just to confirm the operation "update" is OR or is it AND?

darafferty commented 7 years ago

The update is OR (new regions are added to the user-supplied mask).

Joshuaalbert commented 7 years ago

Suppose I set update_selfcal_clean_regions = False and also don't supply a mask for each direction. Will it not mask at all for the directions without a user supplied mask? My specific problem is that one facet is failing to mask properly so I'm supplying my own and I'm setting update_selfcal_clean_regions = False. I would still like the other facets to try auto-masking.

darafferty commented 7 years ago

Yes, with update_selfcal_clean_regions = False it will auto-mask any directions for which no mask was supplied. When a mask is supplied, it will use that mask without modification.

botteon commented 7 years ago

@darafferty did you update factor in CEP3 recently (<3 days ago)? Now in the log file i have the following messages that were not present 1 week ago with the same parset (I guess because I am using an old parset versison)

WARNING - factor:parset - Option "selfcal_clean_threshold" was given in the [imaging] section of the parset but is not a valid imaging option
WARNING - factor:parset - Option "selfcal_adaptive_threshold" was given in the [imaging] section of the parset but is not a valid imaging option

and, most important for this issue, the provided region file (*.rgn) for my target facet doesn't work anymore (totally ignored) while in previous runs last week it worked.

darafferty commented 7 years ago

Yes, I update the version on CEP3 regularly. You can use the previous version by doing source ~rafferty/init_factor_v1.2.

The new version does use the provided mask (it's not ignored -- WSClean will only clean inside it). However, there is no longer a mask that can be shown in checkfactor so instead the model image is used to draw the mask contours (so the red contours shown in checkfactor will not necessarily match the mask you provided).