[AstroPy] Refractive index calculations (feedback request)

Derek Homeier derek at astro.physik.uni-goettingen.de
Thu Feb 16 13:52:43 EST 2012

Thanks a lot for this contribution, Prasanth!

On 3 Feb 2012, at 11:22, Prasanth wrote:

> I have written a module in Python for calculating refractive index under different environmental conditions, and for converting wavelength of light between air and vacuum.  The code is based on the documentation for the  NIST online refractive index of air calculator.
> It would be great to know how this compares to existing tools used by astronomers in their research level code. The function
> "ref_index._test_idlastro()" includes some comparison with IDLASTRO vac2air and air2vac procedures.
I could only criticize that the test function remains silent when successful, i.e. 
it might perhaps print a short diagnostic message when it found no discrepancies 
between the two formulae.
I did some comparisons of the various equations; interestingly the older IDL astrolib routine, 
which is using Edlén's (1953) original formula

1.e8*(n-1) = 6432.8+2949810/(146-k^2)+25540/(41-k^2)

agrees already with the recommended (and adopted in current astrolib) Ciddor formula for 
standard conditions almost within numerical precision, whereas the later Edlén (1966) equation 
at NIST and in ref_index.edlen shows noticeably larger deviations. 

That said, all versions should probably satisfy typical astronomical requirements, 
especially as the optional parameters are just free bonus (at least I hope no one 
will ever have to observe at 60˚C, 99% rel. humidity or several % CO2-levels ;-).

Only one more suggestion to the code for now: I'd strongly recommend in expressions like 

    ns = 1 + 1e-8 * (A + B / (130.0 - S) + C / (38.9 - S))
    ntp = 1 + p * (ns - 1) * X / D

to cut the +1 from the definition of ns right away to save numerical precision (in edlen_ri()). 

Derek Homeier          Centre de Recherche Astrophysique de Lyon
ENS Lyon                                      46, Allée d'Italie
69364 Lyon Cedex 07, France                       +33 47272-8894

More information about the AstroPy mailing list