1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.iau82 = undefined;
|
7 |
|
8 | var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); /**
|
9 | * @copyright 2013 Sonia Keys
|
10 | * @copyright 2016 commenthol
|
11 | * @license MIT
|
12 | * @module sidereal
|
13 | */
|
14 | /**
|
15 | * Sidereal: Chapter 12, Sidereal Time at Greenwich.
|
16 | */
|
17 |
|
18 | exports.JDToCFrac = JDToCFrac;
|
19 | exports.mean = mean;
|
20 | exports.mean0UT = mean0UT;
|
21 | exports.apparent = apparent;
|
22 | exports.apparent0UT = apparent0UT;
|
23 |
|
24 | var _base = require('./base');
|
25 |
|
26 | var _base2 = _interopRequireDefault(_base);
|
27 |
|
28 | var _nutation = require('./nutation');
|
29 |
|
30 | var _nutation2 = _interopRequireDefault(_nutation);
|
31 |
|
32 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
33 |
|
34 | /**
|
35 | * JDToCFrac returns values for use in computing sidereal time at Greenwich.
|
36 | *
|
37 | * Cen is centuries from J2000 of the JD at 0h UT of argument jd. This is
|
38 | * the value to use for evaluating the IAU sidereal time polynomial.
|
39 | * DayFrac is the fraction of jd after 0h UT. It is used to compute the
|
40 | * final value of sidereal time.
|
41 | *
|
42 | * @param {number} jd - Julian Days
|
43 | * @return {number[]} [century, fraction] century and fraction of jd after 0h UT
|
44 | */
|
45 | function JDToCFrac(jd) {
|
46 | var _base$modf = _base2.default.modf(jd + 0.5),
|
47 | _base$modf2 = _slicedToArray(_base$modf, 2),
|
48 | j0 = _base$modf2[0],
|
49 | f = _base$modf2[1];
|
50 |
|
51 | return [_base2.default.J2000Century(j0 - 0.5), f]; // (cen, dayFrac /* float */)
|
52 | }
|
53 |
|
54 | /**
|
55 | * iau82 is a polynomial giving mean sidereal time at Greenwich at 0h UT.
|
56 | *
|
57 | * The polynomial is in centuries from J2000.0, as given by JDToCFrac.
|
58 | * Coefficients are those adopted in 1982 by the International Astronomical
|
59 | * Union and are given in (12.2) p. 87.
|
60 | */
|
61 | var iau82 = exports.iau82 = [24110.54841, 8640184.812866, 0.093104, 0.0000062];
|
62 |
|
63 | /**
|
64 | * Mean returns mean sidereal time at Greenwich for a given JD.
|
65 | *
|
66 | * Computation is by IAU 1982 coefficients. The result is in seconds of
|
67 | * time and is in the range [0,86400).
|
68 | *
|
69 | * @param {number} jd - Julian Days
|
70 | * @return {number}
|
71 | */
|
72 | function mean(jd) {
|
73 | return _base2.default.pmod(_mean(jd), 86400);
|
74 | }
|
75 |
|
76 | /**
|
77 | * @private
|
78 | */
|
79 | function _mean(jd) {
|
80 | var _mean0UT2 = _mean0UT(jd),
|
81 | _mean0UT3 = _slicedToArray(_mean0UT2, 2),
|
82 | s = _mean0UT3[0],
|
83 | f = _mean0UT3[1];
|
84 |
|
85 | return s + f * 1.00273790935 * 86400;
|
86 | }
|
87 |
|
88 | /**
|
89 | * Mean0UT returns mean sidereal time at Greenwich at 0h UT on the given JD.
|
90 | *
|
91 | * The result is in seconds of time and is in the range [0,86400).
|
92 | *
|
93 | * @param {number} jd - Julian Days
|
94 | * @return {number}
|
95 | */
|
96 | function mean0UT(jd /* float */) {
|
97 | var _mean0UT4 = _mean0UT(jd),
|
98 | _mean0UT5 = _slicedToArray(_mean0UT4, 2),
|
99 | s = _mean0UT5[0],
|
100 | _ = _mean0UT5[1]; // eslint-disable-line
|
101 |
|
102 |
|
103 | return _base2.default.pmod(s, 86400);
|
104 | }
|
105 |
|
106 | /**
|
107 | * @private
|
108 | */
|
109 | function _mean0UT(jd /* float */) {
|
110 | var _JDToCFrac = JDToCFrac(jd),
|
111 | _JDToCFrac2 = _slicedToArray(_JDToCFrac, 2),
|
112 | cen = _JDToCFrac2[0],
|
113 | f = _JDToCFrac2[1];
|
114 | // (12.2) p. 87
|
115 |
|
116 |
|
117 | return [_base2.default.horner.apply(_base2.default, [cen].concat(iau82)), f]; // (sidereal, dayFrac /* float */)
|
118 | }
|
119 |
|
120 | /**
|
121 | * Apparent returns apparent sidereal time at Greenwich for the given JD.
|
122 | *
|
123 | * Apparent is mean plus the nutation in right ascension.
|
124 | *
|
125 | * The result is in seconds of time and is in the range [0,86400).
|
126 | *
|
127 | * @param {number} jd - Julian Days
|
128 | * @return {number}
|
129 | */
|
130 | function apparent(jd) {
|
131 | var s = _mean(jd); // seconds of time
|
132 | var n = _nutation2.default.nutationInRA(jd); // angle (radians) of RA
|
133 | var ns = n * 3600 * 180 / Math.PI / 15; // convert RA to time in seconds
|
134 | return _base2.default.pmod(s + ns, 86400);
|
135 | }
|
136 |
|
137 | /**
|
138 | * Apparent0UT returns apparent sidereal time at Greenwich at 0h UT
|
139 | * on the given JD.
|
140 | *
|
141 | * The result is in seconds of time and is in the range [0,86400).
|
142 | *
|
143 | * @param {number} jd - Julian Days
|
144 | * @return {number}
|
145 | */
|
146 | function apparent0UT(jd) {
|
147 | var _base$modf3 = _base2.default.modf(jd + 0.5),
|
148 | _base$modf4 = _slicedToArray(_base$modf3, 2),
|
149 | j0 = _base$modf4[0],
|
150 | f = _base$modf4[1];
|
151 |
|
152 | var cen = (j0 - 0.5 - _base2.default.J2000) / 36525;
|
153 | var s = _base2.default.horner.apply(_base2.default, [cen].concat(iau82)) + f * 1.00273790935 * 86400;
|
154 | var n = _nutation2.default.nutationInRA(j0); // angle (radians) of RA
|
155 | var ns = n * 3600 * 180 / Math.PI / 15; // convert RA to time in seconds
|
156 | return _base2.default.pmod(s + ns, 86400);
|
157 | }
|
158 |
|
159 | exports.default = {
|
160 | JDToCFrac: JDToCFrac,
|
161 | iau82: iau82,
|
162 | mean: mean,
|
163 | mean0UT: mean0UT,
|
164 | apparent: apparent,
|
165 | apparent0UT: apparent0UT
|
166 | }; |
\ | No newline at end of file |