FACT++
1.0
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
palPvobs.c
Go to the documentation of this file.
1
/*
2
*+
3
* Name:
4
* palPvobs
5
6
* Purpose:
7
* Position and velocity of an observing station.
8
9
* Language:
10
* Starlink ANSI C
11
12
* Type of Module:
13
* Library routine
14
15
* Invocation:
16
* palPvobs( double p, double h, double stl, double pv[6] )
17
18
* Arguments:
19
* p = double (Given)
20
* Latitude (geodetic, radians).
21
* h = double (Given)
22
* Height above reference spheroid (geodetic, metres).
23
* stl = double (Given)
24
* Local apparent sidereal time (radians).
25
* pv = double[ 6 ] (Returned)
26
* position/velocity 6-vector (AU, AU/s, true equator
27
* and equinox of date).
28
29
* Description:
30
* Returns the position and velocity of an observing station.
31
32
* Notes:
33
* - The WGS84 reference ellipsoid is used.
34
35
* Authors:
36
* PTW: Pat Wallace (STFC)
37
* DSB: David Berry (JAC, Hawaii)
38
* {enter_new_authors_here}
39
40
* History:
41
* 2012-02-16 (DSB):
42
* Initial version.
43
* Adapted with permission from the Fortran SLALIB library.
44
* {enter_further_changes_here}
45
46
* Copyright:
47
* Copyright (C) 1995 Rutherford Appleton Laboratory
48
* Copyright (C) 2012 Science and Technology Facilities Council.
49
* All Rights Reserved.
50
51
* Licence:
52
* This program is free software: you can redistribute it and/or
53
* modify it under the terms of the GNU Lesser General Public
54
* License as published by the Free Software Foundation, either
55
* version 3 of the License, or (at your option) any later
56
* version.
57
*
58
* This program is distributed in the hope that it will be useful,
59
* but WITHOUT ANY WARRANTY; without even the implied warranty of
60
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
61
* GNU Lesser General Public License for more details.
62
*
63
* You should have received a copy of the GNU Lesser General
64
* License along with this program. If not, see
65
* <http://www.gnu.org/licenses/>.
66
67
* Bugs:
68
* {note_any_bugs_here}
69
*-
70
*/
71
72
#include "
pal.h
"
73
#include "
palmac.h
"
74
#include "
palmac.h
"
75
#include "
pal1sofa.h
"
76
77
void
palPvobs
(
double
p
,
double
h
,
double
stl,
double
pv[6] ){
78
79
/* Local Variables: */
80
double
xyz[3], z, r, s, c, v;
81
82
/* Geodetic to geocentric conversion (WGS84 reference ellipsoid). */
83
eraGd2gc
(
ERFA_WGS84
, 0.0, p, h, xyz );
84
85
/* Convert from metres to AU */
86
r = xyz[ 0 ]/
ERFA_DAU
;
87
z = xyz[ 2 ]/
ERFA_DAU
;
88
89
/* Functions of ST. */
90
s = sin( stl );
91
c = cos( stl );
92
93
/* Speed. */
94
v =
PAL__SR
*r;
95
96
/* Position. */
97
pv[ 0 ] = r*c;
98
pv[ 1 ] = r*s;
99
pv[ 2 ] = z;
100
101
/* Velocity. */
102
pv[ 3 ] = -v*s;
103
pv[ 4 ] = v*c;
104
pv[ 5 ] = 0.0;
105
106
}
107
108
ERFA_DAU
#define ERFA_DAU
Definition:
erfam.h:102
pal.h
eraGd2gc
int eraGd2gc(int n, double elong, double phi, double height, double xyz[3])
Definition:
gd2gc.c:3
ERFA_WGS84
#define ERFA_WGS84
Definition:
erfam.h:140
PAL__SR
static const double PAL__SR
Definition:
palmac.h:114
palmac.h
palPvobs
void palPvobs(double p, double h, double stl, double pv[6])
Definition:
palPvobs.c:77
telData::h
double h
Definition:
palObs.c:170
pal1sofa.h
telData::p
double p
Definition:
palObs.c:169
pal
palPvobs.c
Generated on Sun Sep 18 2016 20:50:24 for FACT++ by
1.8.11