lofar-astron / PyBDSF

Python Blob Detector and Source Finder
https://pybdsf.readthedocs.io
GNU General Public License v3.0
50 stars 24 forks source link

Finding out why islands are flagged #139

Open ErikOsinga opened 3 years ago

ErikOsinga commented 3 years ago

If I understand it correctly from the documentation, when fitting Gaussians to islands of emission, a flag value is being saved inside the fitting code. After fitting, I usually also get the message WARNING: All Gaussians were flagged for the following islands:

It would be a nice addition if on that list of flagged islands, the flag value or perhaps also the reason why they are being flagged is printed. As I understand it, there is no way to find the flag value after the fitting so the only way to find out why a source is being flagged is by changing the flagging parameters.

Thanks, Erik

darafferty commented 3 years ago

That's a good idea -- I'll look into adding the flag value to that list. Currently, you can see the flag value with the show_fit task if you set ch0_flagged to True (see https://www.astron.nl/citt/pybdsf/show_fit.html#term-ch0-flagged) and then click on the Gaussian of interest.

ErikOsinga commented 3 years ago

Thanks! I did try that, but in my case there is no Gaussian showing up to click on. For example, in the image below I am wondering why island 27 is flagged:

WhyFLAGGED

darafferty commented 3 years ago

Hmm, there must be a bug in show_fit, as it should indeed show the flagged Gaussian in the third panel. Thanks for reporting this -- I'll see if I can track it down...

ErikOsinga commented 3 years ago

Thanks, if you need any additional information, please let me know.

darafferty commented 3 years ago

Strangely, I cannot reproduce the issue with show_fit not showing flagged Gaussians (they appear without problem for me). Do they show up for some islands but not others, or do they never show?

At any rate, I added the flag values to the output. Let me know if it doesn't work for you (you need rebuild with the current master to pick up the changes).

ErikOsinga commented 3 years ago

They never show for me, but I might be using an old version of PYBDSF? (It's currently installed on machines that use python2 as default)

I tried to install the newest version from the master branch, but I am getting some errors related to a missing boost library... PYBDSF should work for python3 right?

Thanks.

darafferty commented 3 years ago

Yes, both Python 2 and 3 are supported. Boost issues are a common problem with PyBDSF installations, unfortunately.