1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | import base from './base';
|
11 | import parallax from './parallax';
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | export var Sun = 959.63 / 3600 * Math.PI / 180;
|
19 | export var Mercury = 3.36 / 3600 * Math.PI / 180;
|
20 | export var VenusSurface = 8.34 / 3600 * Math.PI / 180;
|
21 | export var VenusCloud = 8.41 / 3600 * Math.PI / 180;
|
22 | export var Mars = 4.68 / 3600 * Math.PI / 180;
|
23 | export var JupiterEquatorial = 98.44 / 3600 * Math.PI / 180;
|
24 | export var JupiterPolar = 92.06 / 3600 * Math.PI / 180;
|
25 | export var SaturnEquatorial = 82.73 / 3600 * Math.PI / 180;
|
26 | export var SaturnPolar = 73.82 / 3600 * Math.PI / 180;
|
27 | export var Uranus = 35.02 / 3600 * Math.PI / 180;
|
28 | export var Neptune = 33.50 / 3600 * Math.PI / 180;
|
29 | export var Pluto = 2.07 / 3600 * Math.PI / 180;
|
30 | export var Moon = 358473400 / base.AU / 3600 * Math.PI / 180;
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 | export function semidiameter(s0, Δ) {
|
40 |
|
41 | return s0 / Δ;
|
42 | }
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 | export function aaturnApparentPolar(Δ, B) {
|
56 |
|
57 | var k = SaturnPolar / SaturnEquatorial;
|
58 | k = 1 - k * k;
|
59 | var cB = Math.cos(B);
|
60 | return SaturnEquatorial / Δ * Math.sqrt(1 - k * cB * cB);
|
61 | }
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 | export function moonTopocentric(Δ, δ, H, ρsφʹ, ρcφʹ) {
|
75 |
|
76 | var k = 0.272481;
|
77 | var sπ = Math.sin(parallax.Horizontal(Δ));
|
78 |
|
79 |
|
80 | var _base$sincos = base.sincos(δ),
|
81 | sδ = _base$sincos[0],
|
82 | cδ = _base$sincos[1];
|
83 |
|
84 | var _base$sincos2 = base.sincos(H),
|
85 | sH = _base$sincos2[0],
|
86 | cH = _base$sincos2[1];
|
87 |
|
88 | var A = cδ * sH;
|
89 | var B = cδ * cH - ρcφʹ * sπ;
|
90 | var C = sδ - ρsφʹ * sπ;
|
91 | var q = Math.sqrt(A * A + B * B + C * C);
|
92 | return k / q * sπ;
|
93 | }
|
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 | export function moonTopocentric2(Δ, h) {
|
105 |
|
106 | return Moon / Δ * (1 + Math.sin(h) * Math.sin(parallax.Horizontal(Δ)));
|
107 | }
|
108 |
|
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 | export function asteroidDiameter(H, A) {
|
116 |
|
117 | return Math.pow(10, 3.12 - 0.2 * H - 0.5 * Math.log10(A));
|
118 | }
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 | export function asteroid(d, Δ) {
|
129 |
|
130 | return 0.0013788 * d / Δ / 3600 * Math.PI / 180;
|
131 | }
|
132 |
|
133 | export default {
|
134 | Sun: Sun,
|
135 | Mercury: Mercury,
|
136 | VenusSurface: VenusSurface,
|
137 | VenusCloud: VenusCloud,
|
138 | Mars: Mars,
|
139 | JupiterEquatorial: JupiterEquatorial,
|
140 | JupiterPolar: JupiterPolar,
|
141 | SaturnEquatorial: SaturnEquatorial,
|
142 | SaturnPolar: SaturnPolar,
|
143 | Uranus: Uranus,
|
144 | Neptune: Neptune,
|
145 | Pluto: Pluto,
|
146 | Moon: Moon,
|
147 | semidiameter: semidiameter,
|
148 | aaturnApparentPolar: aaturnApparentPolar,
|
149 | moonTopocentric: moonTopocentric,
|
150 | moonTopocentric2: moonTopocentric2,
|
151 | asteroidDiameter: asteroidDiameter,
|
152 | asteroid: asteroid
|
153 | }; |
\ | No newline at end of file |