1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
/*
Copyright (c) 2022 Peter Hristozov / Петър Христозов
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
//! Transformation between astronomical coordinate systems.
use crateangle;
use cratemat_r;
use crateMatR;
use crateSph;
use crateVecP;
/// L2,B2 system of galactic coordinates in the form presented in the
/// Hipparcos Catalogue.
///
/// In degrees:
/// * P = 192.85948 right ascension of the Galactic north pole in ICRS
/// - Q = 27.12825 declination of the Galactic north pole in ICRS
/// * R = 32.93192 Galactic longitude of the ascending node of
/// the Galactic equator on the ICRS equator
///
/// ICRS to galactic rotation matrix, obtained by computing
/// R_3(-R) R_1(pi/2-Q) R_3(pi/2+P) to the full precision.
/// # Reference
/// Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho
/// catalogues. Astrometric and photometric star catalogues
/// derived from the ESA Hipparcos Space Astrometry Mission. ESA
/// Publications Division, Noordwijk, Netherlands.
pub const R_ICRS_GAL: MatR = MatR ;
/// Equatorial to horizon coordinates: transform hour angle and
/// declination to azimuth and altitude.
/// # Arguments
/// * `hd` local hour angle and declination in radians
/// * `phi` site latitude in radians
/// # Returns
/// Azimuth is returned in the range 0-2pi; north is zero, and east
/// is +pi/2. Altitude is returned in the range +/- pi/2.
/// Horizon to equatorial coordinates: transform azimuth and altitude
/// to hour angle and declination.
/// # Arguments
/// * `ae` azimuth and latitude in radians
/// * `phi` site latitude in radians
/// # Returns
/// Local hour angle is returned in the range +/-pi.
/// Declination is returned in the range +/-pi/2.
/// Parallactic angle for a given hour angle and declination.
/// # Arguments
/// * `hd` hour angle and declination in radians
/// * `phi` site latitude in radians
/// # Returns
/// parallactic angle in the range -pi to +pi
/// # Reference
/// Smart, W.M., "Spherical Astronomy", Cambridge University Press,
/// 6th edition (Green, 1977), p49.
/// Transformation from ICRS to Galactic Coordinates.
/// # Arguments
/// * `icrs` position vector in ICRS
/// # Returns
/// position vector in galactic coordinates
/// # References
/// Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho
/// catalogues. Astrometric and photometric star catalogues
/// derived from the ESA Hipparcos Space Astrometry Mission. ESA
/// Publications Division, Noordwijk, Netherlands.
/// Transformation from Galactic Coordinates to ICRS.
/// # Arguments
/// * `gal` position vector in galactic coordinates
/// # Returns
/// position vector in ICRS
/// # References
/// Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho
/// catalogues. Astrometric and photometric star catalogues
/// derived from the ESA Hipparcos Space Astrometry Mission. ESA
/// Publications Division, Noordwijk, Netherlands.
/// Equatorial to ecliptic rotation matrix.
/// # Arguments
/// * `obl` J2000, mean or true obliquity of ecliptic in radians
/// # Returns
/// equatorial to ecliptic rotation matrix