 # NavList:

## A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding

Message:αβγ
Message:abc
 Add Images & Files Posting Code: Name: Email:
Re: Astronomical Refraction: Computational Method for All Zenith Angles
From: Frank Reed CT
Date: 2005 Aug 18, 06:06 EDT

```Marcel you wrote:
"Looking at table 2 with  the results showing the two parameters hw and ho.
According to the text they  both indicate the height of the observer. But
what does then mean e.g. the  column with hw=0m and ho=2000m? "

As stated in the article, that "hw" is  the height at which the temperature
and pressure were "measured" (it's a  calibration altitude for the model
atmosphere) while h0 is the observer's  altitude. I can't think of any reason in
your application to choose anything but  zero for hw.

And you wrote:
" I assume that a zero got lost somewhere  and it was meant n=1.0002941."

Yes, that's clearly a typo.

And you  wrote:
"Unfortunately the paper does not mention why this value was chosen or  to
what it corresponds to. "

Ah, but that's the great thing. It's up to  you. YOU may choose any value you
want for the index of refraction corresponding  to whatever frequency of
(visible) light you need for your model. If you intend  to use the standard "zero"
points for temperature and pressure that are used in  this article, then,
naturally, you should choose a refraction index for zero  degrees Celsius and 760
mm (Hg) pressure but the variation with frequency is an  input to the
problem. The specific value of the refraction index chosen for the  sample runs in
the article is just an example. Notice also that this  calculational approach
can be extended easily to atmospheres with completely  different structure and
composition which might have radically different  refraction indices (realistic
calculations for Mars perhaps?? the night sky as  seen from the cloudtops of
Jupiter??).

I coded this up to satisfy myself  that it works. It does...

Here's some very "basic" code using a simple  exponential model atmosphere.
It reproduces the standard zero altitude  refraction table rather nicely. You
can extend it by using the atmosphere model  described in the article. Or you
could experiment with any sort of  temperature/pressure model that suits your
interests (consistent with the ideal  gas law and hydrostatic equilibrium
--unless you want to get into really exotic  conditions).

>>>>>
DECLARE FUNCTION getmu#  (r#)
DEFDBL A-Z
CONST REarth = 6378000#

'follows Auer-Standish:  Astronomical Journal, May 2000.

pi = 4 * ATN(1)
kk = 180 /  pi

INPUT "psi0:", psi0
psi0 = psi0 / kk

INPUT "ht (m):",  ht
r0 = REarth + ht
mu0 = getmu(r0)
mrsp0 = mu0 * r0 *  SIN(psi0)

sum = 0
'the integration interval (in radians). Has to be  fairly small for
convergence:
dpsi = .00001
'dr for derivatives:
dr =  1
'drtest for Newton-Raphson loop:
drtest = .01 * dr

'Start value  for angular integration.
'Could start nearer to zero but this works  fine:
psi = .1 * psi0

r = REarth + 20000  'a fairly arbitrary  seed value...
DO
'getr loop follows:
DO
'calculate index of refraction at distance  r (see function getmu below):
mu =  getmu(r)
'and calculate again a little bit  higher:
mu1 = getmu(r +  dr)
'and thus get the derivative  d(mu)/dr:
dmudr = (mu1 - mu) /  dr
'use Newton-Raphson to get r as outlined in  article:
F = mu * r - mrsp0 /  SIN(psi)
dFdr = dmudr * r +  mu
rnew = r - F /  dFdr
'after two or three passes, this test  should bail out of the loop:
IF ABS(rnew - r)  < drtest THEN EXIT DO
r =  rnew
LOOP
'now calculate  d(ln(mu))/d(ln(r)):
dlmdlr = (r / mu) * dmudr

'add the contribution for this zenith distance to the  integral:
sum = sum + dpsi * dlmdlr / (1 +  dlmdlr)

'note: partsum --next line-- is for testing purposes  only:
IF psi < .9 * psi0 THEN partsum = sum
'increment the zenith distance:
psi = psi + dpsi
LOOP UNTIL  psi >= psi0

'That's it. The sum is the total refraction. Convert to  minutes of arc:
ref = -sum * kk * 60
PRINT ref

'The following lines  are for testing purposes only.
'For zenith distances below 75 degrees, the  refraction s/b proportional to
tan(psi):
PRINT ref / TAN(psi0)
PRINT  partsum / sum

END

FUNCTION getmu (r)
'Calculates the index of  refraction (mu) of the atmosphere as a function of
altitude r.
'BIG NOTE:  this is a simple TEST model with exponential density. Works
nicely,
'but  should be replaced with something more sophisticated like the model in
the
'original article. And this model can be extended with any sort of  arbitrary
'conditions as required.

'Simple exponential decay of  atmospheric density with a scale height of 10
km:
getmu = 1 +  .00029241# * EXP(-(r - REarth) / 10000)
END  FUNCTION

<<<<<

-FER
42.0N 87.7W, or 41.4N  72.1W.
www.HistoricalAtlas.com/lunars

``` Browse Files

Drop Files ### NavList ### What is NavList? ### Join NavList

 Name: (please, no nicknames or handles) Email:
 Do you want to receive all group messages by email? Yes No
You can also join by posting. Your first on-topic post automatically makes you a member. ### Posting Code

Enter the email address associated with your NavList messages. Your posting code will be emailed to you immediately.
 Email: ### Email Settings

 Posting Code: ### Custom Index

 Subject: Author: Start date: (yyyymm dd) End date: (yyyymm dd)