New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DM-5660: Add motivated model fits to validate_drp photometric and astrometric scatter/repeatability analysis and plots #14
Conversation
Implements Eq. 4, 5 from LSST Overview paper. Fits the parameters. Shows fitted function on check_photometry plot.
Remove extraneous tuple line.
Fit C*theta/SNR to observed astrometric scatter. Plot on check_astrometry plot. Print out results to STDOUT if verbose set. Update xlim defaults in plotAstrom to SNR inspired values.
Make checkAstrometry and checkPhotometry run fits of expected error behavior from astrometric and photometric.
Change names of attributes to more descriptively include 'Err' in the name.
Just sticking my nose where it doesn't belong: If it would help,the calcSNR_m5 method here https://github.com/lsst/sims_photUtils/blob/master/python/lsst/sims/photUtils/SignalToNoise.py can calculate the photometric signal to noise given m5 and a few system parameters and throughputs. It has been checked to be consistent with equations 4 and 5 in the overview paper. There is also a method calcGamma to calculate the appropriate value of gamma given m5. Take it or leave it. I just wanted to make sure you were aware that these methods existed. |
@danielsf Thanks, I didn't know about that and very much appreciate your note! I unfortunately don't think I can use that here as
If it would be possible to expose some of these utility functions without requiring the large and substantial |
@wmv That (stripping out the massive data file dependencies from sims_photUtils) is on our list of things to do in the near future (I guess we hadn't considered removing sims_maps; definitely sims_sed_library). I will ping you when it is accomplished. |
@@ -1,20 +1,21 @@ | |||
Validate an LSST DM processCcd.py output repository | |||
against a set of LSST Science Requirements Document Key Performance Metrics. | |||
and expected performance following the LSST Overview paper. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: move this into previous sentence.
Aside from the issues mentioned in the line notes this all seems okay. I haven't independently run the code to check the plots, though. I don't have a good feel for how robust these fits are. If there's a weird dataset is it possible for the fits to go crazy? I'm not sure it's necessary to add in either code to check the robustness of the fits (even if it's a basic bootstrap); depends on the use cases of the fitted values. |
Also, it might be useful to capture the provenance of the model for astrometric scatter somewhere in the docstrings. |
checkAstrometry and checkPhotometry now return a struct that clearly labels its fit parameters and model name.
Implements well-motivated theoretical fits to the astrometric and photometric performance measurements based on derivations from LSST Overview paper.
http://arxiv.org/pdf/0805.2366v4.pdf
Photometric errors described by
Eq. 5
sigma_(rand) = (0.039 - gamma) * x + gamma * x^2 [mag^2]
where x = 10^(0.4*(m-m_5))
Eq. 4
sigma_1^2 = sigma_sys^2 + sigma_rand^2
Astrometric Errors
error = C * theta / SNR
Based on helpful comments from Zeljko Ivezic
"""
I think eq. 5 from the overview paper (with gamma = 0.039 and m5 = 24.35;
the former I assumed and the latter I got from the value of your
analytic fit that gives err=0.2 mag) would be a much better fit than
the adopted function for mag < 21 (and it is derived from first principles).
Actually, if you fit for the systematic term (eq. 4) and gamma and m5,
it would be a nice check whether there is any “weird” behavior in
analyzed data (and you get the limiting depth, m5, even if you don’t
go all the way to the faint end).
Similarly, for the astrometric random errors, we’d expect
error = C * theta / SNR,
where theta is the seeing (or a fit parameter), SNR is the photometric
SNR (i.e. 1/err in mag), and C ~ 1 (empirically, and 0.6 for the idealized
maximum likelihood solution and gaussian seeing).
"""