def extinctionCorrectionApparentToTrue(mags, x_data, y_data, jd, platepar): """ Compute true magnitudes by applying extinction correction to apparent magnitudes. Arguments: mags: [list] A list of apparent magnitudes. x_data: [list] A list of pixel columns. y_data: [list] A list of pixel rows. jd: [float] Julian date. platepar: [Platepar object] Return: corrected_mags: [list] A list of extinction corrected mangitudes. """ ### Compute star elevations above the horizon (epoch of date, true) ### # Compute RA/Dec in J2000 _, ra_data, dec_data, _ = xyToRaDecPP(len(x_data)*[jd2Date(jd)], x_data, y_data, len(x_data)*[1], \ platepar, extinction_correction=False) # Compute elevation above the horizon elevation_data = [] for ra, dec in zip(ra_data, dec_data): # Precess to epoch of date ra, dec = equatorialCoordPrecession(J2000_JD.days, jd, np.radians(ra), np.radians(dec)) # Compute elevation _, elev = raDec2AltAz(np.degrees(ra), np.degrees(dec), jd, platepar.lat, platepar.lon) if elev < 0: elev = 0 elevation_data.append(elev) ### ### # Correct catalog magnitudes for extinction extinction_correction = atmosphericExtinctionCorrection(np.array(elevation_data), platepar.elev) \ - atmosphericExtinctionCorrection(90, platepar.elev) corrected_mags = np.array( mags) - platepar.extinction_scale * extinction_correction return corrected_mags
def extinctionCorrectionTrueToApparent(catalog_mags, ra_data, dec_data, jd, platepar): """ Compute apparent magnitudes by applying extinction correction to catalog magnitudes. Arguments: catalog_mags: [list] A list of catalog magnitudes. ra_data: [list] A list of catalog right ascensions (J2000) in degrees. dec_data: [list] A list of catalog declinations (J2000) in degrees. jd: [float] Julian date. platepar: [Platepar object] Return: corrected_catalog_mags: [list] Extinction corrected catalog magnitudes. """ ### Compute star elevations above the horizon (epoch of date, true) ### # Compute elevation above the horizon elevation_data = [] for ra, dec in zip(ra_data, dec_data): # Precess to epoch of date ra, dec = equatorialCoordPrecession(J2000_JD.days, jd, np.radians(ra), np.radians(dec)) # Compute elevation _, elev = raDec2AltAz(np.degrees(ra), np.degrees(dec), jd, platepar.lat, platepar.lon) if elev < 0: elev = 0 elevation_data.append(elev) ### ### # Correct catalog magnitudes for extinction extinction_correction = atmosphericExtinctionCorrection(np.array(elevation_data), platepar.elev) \ - atmosphericExtinctionCorrection(90, platepar.elev) corrected_catalog_mags = np.array( catalog_mags) + platepar.extinction_scale * extinction_correction return corrected_catalog_mags