-
ACTION:
- Adjust an unrefracted Cartesian vector to include the effect of atmospheric refraction,
using the simple
model.
-
CALL:
CALL sla_REFV (VU, REFA, REFB, VR)
GIVEN:
VU | D | unrefracted position of the source
( 3-vector) |
|
REFA | D |
coefficient (radians) |
|
REFB | D |
coefficient (radians) |
|
RETURNED:
VR | D | refracted position of the source
( 3-vector) |
|
-
NOTES:
-
-
(1)
- This routine applies the adjustment for refraction in the opposite sense to the usual
one – it takes an unrefracted (in vacuo) position and produces an observed (refracted)
position, whereas the
model strictly applies to the case where an observed position is to have the refraction
removed. The unrefracted to refracted case is harder, and requires an inverted form
of the text-book refraction models; the algorithm used here is equivalent to one
iteration of the Newton-Raphson method applied to the above formula.
-
(2)
- Though optimized for speed rather than precision, the present routine achieves consistency
with the refracted-to-unrefracted
model at better than 1 microarcsecond within
of the zenith and remains within 1 milliarcsecond to .
The inherent accuracy of the model is, of course, far worse than this – see the documentation
for sla_REFCO for more information.
-
(3)
- At low elevations (below about )
the refraction correction is held back to prevent arithmetic problems and wildly wrong
results. For optical/IR wavelengths, over a wide range of observer heights and
corresponding temperatures and pressures, the following levels of accuracy (worst case)
are achieved, relative to numerical integration through a model atmosphere:
| error |
|
| ′′07 |
| ′′13 |
| ′′25 |
| |
| |
| |
| |
| |
| |
| |
| |
| | high-altitude |
| | sites only |
|
The results for radio are slightly worse over most of the range, becoming significantly worse below
and unusable
beyond .
-
(4)
- See also the routine sla_REFZ, which performs the adjustment to the zenith distance rather than
in .
The present routine is faster than sla_REFZ and, except very low down,
is equally accurate for all practical purposes. However, beyond about
sla_REFZ should be used, and for the utmost accuracy iterative use of sla_REFRO should
be considered.