prospector icon indicating copy to clipboard operation
prospector copied to clipboard

allow sigma_smooth to adjust photometry

Open elijahmathews opened this issue 3 years ago • 3 comments

Currently, SpecModel does not respect the user's sigma_smooth parameter when predicting photometry; photometry is always computed based on a smoothed spectrum with sigma_smooth set to the default of 100 km s⁻¹. This edit should allow the user's sigma_smooth parameter to adjust the photometry as one would expect.

However, it should be noted that nebline_photometry also does not respect sigma_smooth and that is not addressed by this edit, and thus the predicted photometry is likely incorrect in the case where nebemlineinspec == False and sigma_smooth != 100.

elijahmathews avatar Sep 30 '21 18:09 elijahmathews

This is important for narrow-band photometry.

As Elijah notes, one (difficult?) extension of this would be to include emission line morphology in the photometry when modeling spec+phot and using the marginalization scheme.

jrleja avatar Oct 01 '21 17:10 jrleja

Thanks for bringing this up.

So this exposes some approximations used by SpecModel. Both the instrumental and physical (velocity dispersion) resolution are handled by a single call to smoothspec as it is potentially a bottleneck. Obviously the physical resolution will affect the SED for photometry, but the instrumental will not, and in the case of say grism spectra smoothing by the instrumental resolution may cause noticeable errors in the (narrowband) photometric calculation. The stellar library resolution plays into this as well in an important way (since sigma_smooth is added to it in quadrature to produce the output spectrum). @jrleja you may remember discussions on this point during the development of SpecModel.

A solution is perhaps to have an optional second smoothspec call in predict_spec() for the instrumental resolution, if it is not being handled by pre-smoothing the SSPs in FSPS (in which case the photometric predictions will be affected anyway in a way that cannot be fixed within prospector).

As for the emission line morphologies, it's not difficult to include it in the photometry -- a call to SpecModel.predict_eline_spec() should do it, where the linewidth is controlled by the eline_sigma parameter -- but the present scheme is supposed to be faster. I also note that nebline_photometry does not even respect the 100 km/s default smoothing - it simply adds all the line-flux using the filter response pixel closest to the observed frame line wavelength.

One other thing to note is that the lines -- when added by SpecModel instead of FSPS -- have zero intrinsic width, so eline_sigma really is their output width, whereas the stellar continuum has some library resolution which is added to sigma_smooth to produce the output.

bd-j avatar Oct 03 '21 20:10 bd-j

also just to clarify I believe in the current setup photometry is always computed at the native FSPS spectral library smoothing and does not have additional 100km/s smoothing (since it based on _norm_spec before any call to smoothspec)

bd-j avatar Oct 03 '21 20:10 bd-j