SourceXtractorPlusPlus
SourceXtractorPlusPlus copied to clipboard
Discussion on the flux initialization in multiband data
It turns out that the flux initialization has quite an influence on the photometric result when running SE++ on mulit-band data. As an example I am using a simulated dataset for Euclid which consists of VIS and H band data. The zeropoints are quite different: MAG_ZEROPOINT = {'VIS':24.48941, 'H': 29.8512}
When initializing the flux with:
for band, group in mesgroup: flux_total[i] = get_flux_parameter()
The comparison with the true universe in the H band is:
get_flux_parameter()
allows a range of 10e-3, 10+3. Due to the high zeropoint offset the upper range is reached, which leads to the totally off measurements in the upper right corner and in the range [20-22] mag especially for red sources.
Enhancing the range with:
for band, group in mesgroup: flux_total[i] = FreeParameter(1.0, Range((1.0e-07,1.0e+05), RangeType.EXPONENTIAL))
leads to:
Taking into account the zeropoint offset with:
BAND_SCALE = {'VIS':1.0, 'H': 140} for band, group in mesgroup: flux_total[i] = get_flux_parameter(scale=BAND_SCALE[band])
results in:
Enhancing the allowed range around the scaled flux with:
BAND_SCALE = {'VIS':1.0, 'H': 140} for band, group in mesgroup: flux_total[i] = FreeParameter(lambda o: o.get_iso_flux() * BAND_SCALE[band], Range(lambda v,o: (v * 1E-9, v * 1E9), RangeType.EXPONENTIAL))
results in:
Good tests, thanks.
I'm not really that surprised, I remember from early tests that results were very sensitive to initial values and how the parameters were set up. I didn't expect the last one to be so bad when using 1e-9 to 1e9 range, though.
True, also FreeParameter(1.0, Range((1.0e-07,1.0e+05), RangeType.EXPONENTIAL))
show large offsets at bright mags that I do not really understand.