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