source: Sophya/trunk/SophyaExt/XephemAstroLib/parallax.c@ 3660

Last change on this file since 3660 was 3654, checked in by cmv, 16 years ago

mise a niveau Xephem 3.7.4, cmv 16/07/2009

File size: 1.4 KB
RevLine 
[1457]1#include <stdio.h>
2#include <math.h>
3
4#include "astro.h"
5
6
7/* given true ha and dec, tha and tdec, the geographical latitude, phi, the
8 * height above sea-level (as a fraction of the earths radius, 6378.16km),
9 * ht, and the geocentric distance rho in Earth radii(!), find the apparent
10 * ha and dec, aha and adec allowing for parallax.
11 * all angles in radians. ehp is the angle subtended at the body by the
12 * earth's equator.
13 */
14void
[2551]15ta_par (double tha, double tdec, double phi, double ht, double *rho,
16double *aha, double *adec)
[1457]17{
18 static double last_phi = 1000.0, last_ht = -1000.0, xobs, zobs;
19 double x, y, z; /* obj cartesian coord, in Earth radii */
20
21 /* avoid calcs involving the same phi and ht */
22 if (phi != last_phi || ht != last_ht) {
23 double cphi, sphi, robs, e2 = (2 - 1/298.257)/298.257;
24 cphi = cos(phi);
25 sphi = sin(phi);
26 robs = 1/sqrt(1 - e2 * sphi * sphi);
27
28 /* observer coordinates: x to meridian, y east, z north */
29 xobs = (robs + ht) * cphi;
30 zobs = (robs*(1-e2) + ht) * sphi;
31 last_phi = phi;
32 last_ht = ht;
33 }
34
35 sphcart(-tha, tdec, *rho, &x, &y, &z);
36 cartsph(x - xobs, y, z - zobs, aha, adec, rho);
37 *aha *= -1;
38 range (aha, 2*PI);
39}
40
41/* For RCS Only -- Do Not Edit */
[3654]42static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: parallax.c,v $ $Date: 2009-07-16 10:34:38 $ $Revision: 1.8 $ $Name: not supported by cvs2svn $"};
Note: See TracBrowser for help on using the repository browser.