calc_sun 0.1.1 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.autotest +15 -0
- data/.gitignore +12 -0
- data/.source_index +0 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +19 -28
- data/Guardfile +41 -0
- data/LICENSE.txt +21 -21
- data/Manifest.txt +20 -4
- data/README.rdoc +45 -37
- data/Rakefile +76 -11
- data/calc_sun.gemspec +10 -15
- data/dev.md +49 -0
- data/example/Almanac.html +1456 -0
- data/example/Makefile +10 -0
- data/example/adt_helper.rb +91 -0
- data/example/askgeo_query.rb +32 -0
- data/example/eq_center.md +15 -0
- data/example/sunriset.c +670 -0
- data/example/sunriset.exe +0 -0
- data/example/sunriset.rb +16 -28
- data/example/test_my_times.rb +134 -0
- data/ext/calc_sun/calc_sun.c +491 -224
- data/ext/side_time/extconf.rb +5 -0
- data/ext/side_time/side_time.c +117 -0
- data/lib/calc_sun.rb +1 -0
- data/lib/calc_sun/version.rb +3 -2
- data/lib/side_time/side_time.so +0 -0
- data/lib/side_time/version.rb +7 -0
- data/lib/sidereal_time.rb +4 -0
- metadata +37 -62
- metadata.gz.sig +0 -0
- data/test/calc_sun_test.rb +0 -230
data/calc_sun.gemspec
CHANGED
@@ -8,26 +8,21 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = CalcSun::VERSION
|
9
9
|
spec.author = 'Douglas Allen'
|
10
10
|
spec.email = ['kb9agt@gmail.com']
|
11
|
-
|
12
11
|
spec.summary = 'Calculates Sun Times ea. rise, noon, set'
|
13
|
-
spec.description = 'supply the
|
14
|
-
to each method
|
15
|
-
|
12
|
+
spec.description = 'supply the date yyyy-mm-dd, latitude decimal, and
|
13
|
+
longitude decimal in the calls to each method
|
14
|
+
rise(date, lat, lon),
|
15
|
+
noon(date, lat, lon), and
|
16
|
+
set(date, lat, lon)'
|
16
17
|
spec.homepage = 'https://github.com/DouglasAllen/calc_sun'
|
17
18
|
spec.license = 'MIT'
|
19
|
+
require 'English'
|
20
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
21
|
+
f.match(%r{^(test|spec|features)/})
|
22
|
+
end
|
18
23
|
require 'rake'
|
19
|
-
spec.
|
20
|
-
'[A-Z]*',
|
21
|
-
'test/ *'].to_a
|
22
|
-
spec.extensions << 'ext/eot/extconf.rb'
|
24
|
+
spec.extensions << 'ext/calc_sun/extconf.rb'
|
23
25
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
24
26
|
spec.require_paths = ['lib']
|
25
27
|
spec.platform = Gem::Platform::RUBY
|
26
|
-
spec.add_development_dependency 'bundler', '~> 1.13'
|
27
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
28
|
-
spec.add_development_dependency 'rake-compiler', '~> 0.9.3'
|
29
|
-
spec.add_development_dependency 'hoe', '~> 3.12.0'
|
30
|
-
spec.add_development_dependency 'guard', '~> 2.6.1'
|
31
|
-
spec.add_development_dependency 'guard-minitest', '~> 2.3.2'
|
32
|
-
spec.add_development_dependency 'minitest', '~> 5.4.1'
|
33
28
|
end
|
data/dev.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
|
2
|
+
# calc_sun
|
3
|
+
|
4
|
+
## develop
|
5
|
+
|
6
|
+
```code
|
7
|
+
$> autotest
|
8
|
+
```
|
9
|
+
|
10
|
+
or
|
11
|
+
|
12
|
+
```code
|
13
|
+
$> rake
|
14
|
+
```
|
15
|
+
|
16
|
+
## example
|
17
|
+
|
18
|
+
```code
|
19
|
+
$> ruby example/sunriset.rb
|
20
|
+
```
|
21
|
+
|
22
|
+
Change the lat, lon, and date in sunriset.rb for your location or preferences.
|
23
|
+
|
24
|
+
pull requests welcome
|
25
|
+
|
26
|
+
== LICENSE:
|
27
|
+
|
28
|
+
(The MIT License)
|
29
|
+
|
30
|
+
Copyright (c) 2016
|
31
|
+
|
32
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
33
|
+
a copy of this software and associated documentation files (the
|
34
|
+
'Software'), to deal in the Software without restriction, including
|
35
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
36
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
37
|
+
permit persons to whom the Software is furnished to do so, subject to
|
38
|
+
the following conditions:
|
39
|
+
|
40
|
+
The above copyright notice and this permission notice shall be
|
41
|
+
included in all copies or substantial portions of the Software.
|
42
|
+
|
43
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
44
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
45
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
46
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
47
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
48
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
49
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,1456 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<!-- saved from url=(0033)http://www.celnav.de/longterm.htm -->
|
3
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
<title>Almanac</title>
|
8
|
+
|
9
|
+
<script language="JavaScript">
|
10
|
+
|
11
|
+
var dtr = Math.PI/180;
|
12
|
+
|
13
|
+
// Main function
|
14
|
+
function Main()
|
15
|
+
{
|
16
|
+
window.status = "Calculating... Please wait.";
|
17
|
+
ReadData();
|
18
|
+
TimeMeasures();
|
19
|
+
Nutation();
|
20
|
+
Aries();
|
21
|
+
Sun();
|
22
|
+
Moon();
|
23
|
+
Polaris();
|
24
|
+
MoonPhase();
|
25
|
+
Weekday();
|
26
|
+
Output();
|
27
|
+
window.status = "Done.";
|
28
|
+
}
|
29
|
+
|
30
|
+
|
31
|
+
//Auxiliary functions
|
32
|
+
|
33
|
+
//Sine of angles in degrees
|
34
|
+
function sind(x)
|
35
|
+
{
|
36
|
+
return Math.sin(dtr*x);
|
37
|
+
}
|
38
|
+
|
39
|
+
//Cosine of angles in degrees
|
40
|
+
function cosd(x)
|
41
|
+
{
|
42
|
+
return Math.cos(dtr*x);
|
43
|
+
}
|
44
|
+
|
45
|
+
//Tangent of angles in degrees
|
46
|
+
function tand(x)
|
47
|
+
{
|
48
|
+
return Math.tan(dtr*x);
|
49
|
+
}
|
50
|
+
|
51
|
+
//Normalize large angles
|
52
|
+
function norm_360_deg(x)
|
53
|
+
{
|
54
|
+
while (x<0) {
|
55
|
+
x+=360;
|
56
|
+
}
|
57
|
+
return x%360;
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
//Output Hour Angle
|
62
|
+
function OutHA(x)
|
63
|
+
{
|
64
|
+
with(Math)
|
65
|
+
{
|
66
|
+
var GHAdeg = floor(x);
|
67
|
+
var GHAmin = floor(60*(x-GHAdeg));
|
68
|
+
var GHAsec = round(3600*(x-GHAdeg-GHAmin/60));
|
69
|
+
if (GHAsec==60) {GHAsec=0; GHAmin+=1};
|
70
|
+
if (GHAmin==60) {GHAmin=0; GHAdeg+=1};
|
71
|
+
if (GHAdeg==0) GHAdeg="000";
|
72
|
+
else if (GHAdeg<10) GHAdeg="00"+GHAdeg;
|
73
|
+
else if (GHAdeg<100) GHAdeg="0"+GHAdeg;
|
74
|
+
if (GHAmin==0) GHAmin="00";
|
75
|
+
else if (GHAmin<10) GHAmin="0"+GHAmin;
|
76
|
+
if (GHAsec<10) GHAsec="0"+GHAsec;
|
77
|
+
return " "+GHAdeg+"°"+" "+GHAmin+"'"+" "+GHAsec+"''";
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
//Output Mean Obliqity of Ecliptic
|
82
|
+
function OutECL(x)
|
83
|
+
{
|
84
|
+
with(Math)
|
85
|
+
{
|
86
|
+
var ECLdeg = floor(x);
|
87
|
+
var ECLmin = floor(60*(x-ECLdeg));
|
88
|
+
var ECLsec = round(3600000*(x-ECLdeg-ECLmin/60))/1000;
|
89
|
+
if (ECLsec==60) {ECLsec=0; ECLmin+=1};
|
90
|
+
if (ECLmin==60) {ECLmin=0; ECLdeg+=1};
|
91
|
+
if (ECLmin==0) ECLmin="00";
|
92
|
+
else if (ECLmin<10) ECLmin="0"+ECLmin;
|
93
|
+
if (ECLsec<10) ECLsec="0"+ECLsec;
|
94
|
+
return " "+ECLdeg+"°"+" "+ECLmin+"'"+" "+ECLsec+"''";
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
//Output Sidereal Time
|
99
|
+
function OutSidTime(x)
|
100
|
+
{
|
101
|
+
with(Math)
|
102
|
+
{
|
103
|
+
var GMSTdecimal = x/15;
|
104
|
+
var GMSTh = floor(GMSTdecimal);
|
105
|
+
var GMSTmdecimal = 60*(GMSTdecimal-GMSTh);
|
106
|
+
var GMSTm = floor(GMSTmdecimal);
|
107
|
+
var GMSTsdecimal = 60*(GMSTmdecimal-GMSTm);
|
108
|
+
var GMSTs = round(1000*GMSTsdecimal)/1000;
|
109
|
+
if (GMSTs-floor(GMSTs)==0) GMSTs+=".000";
|
110
|
+
else if (10*GMSTs-floor(10*GMSTs)==0) GMSTs+="00";
|
111
|
+
else if (100*GMSTs-floor(100*GMSTs)==0) GMSTs+="0";
|
112
|
+
return " "+GMSTh+"h"+" "+GMSTm+"m"+" "+GMSTs+"s";
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
//Output Declination
|
118
|
+
function OutDec(x)
|
119
|
+
{
|
120
|
+
with(Math)
|
121
|
+
{
|
122
|
+
if (x<0) {var signDEC=-1; var name="S";}
|
123
|
+
else {var signDEC=1; var name="N";}
|
124
|
+
var DEC = abs(x);
|
125
|
+
var DECdeg = floor(DEC);
|
126
|
+
var DECmin = floor(60*(DEC-DECdeg));
|
127
|
+
var DECsec = round(3600*(DEC-DECdeg-DECmin/60));
|
128
|
+
if (DECsec==60) {DECsec=0; DECmin+=1};
|
129
|
+
if (DECmin==60) {DECmin=0; DECdeg+=1};
|
130
|
+
if (DECdeg==0) DECdeg="00";
|
131
|
+
else if (DECdeg<10) DECdeg="0"+DECdeg;
|
132
|
+
if (DECmin==0) DECmin="00";
|
133
|
+
else if (DECmin<10) DECmin="0"+DECmin;
|
134
|
+
if (DECsec<10) DECsec="0"+DECsec;
|
135
|
+
return " "+name+" "+DECdeg+"°"+" "+DECmin+"'"+" "+DECsec+"''";
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
|
140
|
+
//Output SD and HP
|
141
|
+
function OutSDHP(x)
|
142
|
+
{
|
143
|
+
with(Math)
|
144
|
+
{
|
145
|
+
x = round(10*x)/10;
|
146
|
+
if (x-floor(x)== 0) x+=".0";
|
147
|
+
return " "+x+"''";
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
|
152
|
+
// Input data conversion
|
153
|
+
function ReadData()
|
154
|
+
{
|
155
|
+
with(document)
|
156
|
+
{
|
157
|
+
if(InForm.year.value == "") alert("Missing year! Restart calculation.");
|
158
|
+
else year = eval(InForm.year.value);
|
159
|
+
if(InForm.month.value == "") alert("Missing month! Restart calculation.");
|
160
|
+
else month = eval(InForm.month.value);
|
161
|
+
if(month < 1 || month > 12) alert("Month out of range! Restart calculation.");
|
162
|
+
if(InForm.day.value == "") alert("Missing day! Restart calculation.");
|
163
|
+
else day = eval(InForm.day.value);
|
164
|
+
if(day < 1 || day > 31) alert("Day out of range! Restart calculation.");
|
165
|
+
var schj=0;
|
166
|
+
if(year/4-Math.floor(year/4) == 0) schj=1;
|
167
|
+
if(year/100-Math.floor(year/100) == 0) schj=0;
|
168
|
+
if(year/400-Math.floor(year/400) == 0) schj=1;
|
169
|
+
if(month == 2 && day > 28 && schj == 0) alert("February has only 28 days! Restart calculation.");
|
170
|
+
if(month == 2 && day > 29 && schj == 1) alert("February has only 29 days in a leap year! Restart calculation.");
|
171
|
+
if(month == 4 && day > 30) alert("April has only 30 days! Restart calculation.");
|
172
|
+
if(month == 6 && day > 30) alert("June has only 30 days! Restart calculation.");
|
173
|
+
if(month == 9 && day > 30) alert("September has only 30 days! Restart calculation.");
|
174
|
+
if(month == 11 && day > 30) alert("November has only 30 days! Restart calculation.");
|
175
|
+
if(InForm.hour.value == "") var hour = 0;
|
176
|
+
else var hour = eval(InForm.hour.value);
|
177
|
+
if(InForm.minute.value == "") var minute = 0;
|
178
|
+
else var minute = eval(InForm.minute.value);
|
179
|
+
if(InForm.second.value == "") var second = 0;
|
180
|
+
else var second = eval(InForm.second.value);
|
181
|
+
dayfraction = (hour + minute/60 + second/3600)/24;
|
182
|
+
if(dayfraction < 0 || dayfraction > 1) alert("Time out of range! Restart calculation.");
|
183
|
+
if(InForm.delta.value == "") deltaT = 0;
|
184
|
+
else deltaT = eval(InForm.delta.value);
|
185
|
+
}
|
186
|
+
}
|
187
|
+
|
188
|
+
|
189
|
+
// Calculating Julian date, century, and millennium
|
190
|
+
function TimeMeasures()
|
191
|
+
{
|
192
|
+
with(Math)
|
193
|
+
{
|
194
|
+
//Julian day (UT1)
|
195
|
+
if(month <= 2) {year -=1; month += 12;}
|
196
|
+
var A = floor(year/100);
|
197
|
+
var B = 2-A+floor(A/4);
|
198
|
+
JD0h = floor(365.25*(year+4716))+floor(30.6001*(month+1))+day+B-1524.5;
|
199
|
+
JD = JD0h+dayfraction;
|
200
|
+
|
201
|
+
//Julian centuries (GMT) since 2000 January 0.5
|
202
|
+
T = (JD-2451545)/36525;
|
203
|
+
T2 = T*T;
|
204
|
+
T3 = T*T2;
|
205
|
+
T4 = T*T3;
|
206
|
+
T5 = T*T4;
|
207
|
+
|
208
|
+
//Julian ephemeris day (TDT)
|
209
|
+
JDE = JD+deltaT/86400;
|
210
|
+
|
211
|
+
//Julian centuries (TDT) from 2000 January 0.5
|
212
|
+
TE = (JDE-2451545)/36525;
|
213
|
+
TE2 = TE*TE;
|
214
|
+
TE3 = TE*TE2;
|
215
|
+
TE4 = TE*TE3;
|
216
|
+
TE5 = TE*TE4;
|
217
|
+
|
218
|
+
//Julian millenniums (TDT) from 2000 January 0.5
|
219
|
+
Tau = 0.1*TE;
|
220
|
+
Tau2 = Tau*Tau;
|
221
|
+
Tau3 = Tau*Tau2;
|
222
|
+
Tau4 = Tau*Tau3;
|
223
|
+
Tau5 = Tau*Tau4;
|
224
|
+
}
|
225
|
+
}
|
226
|
+
|
227
|
+
|
228
|
+
//Nutation, obliquity of the ecliptic
|
229
|
+
function Nutation()
|
230
|
+
{
|
231
|
+
//IAU 1980 nutation theory:
|
232
|
+
|
233
|
+
//Mean anomaly of the moon
|
234
|
+
var Mm = 134.962981389+198.867398056*TE+norm_360_deg(477000*TE)+0.008697222222*TE2+TE3/56250;
|
235
|
+
|
236
|
+
//Mean anomaly of the sun
|
237
|
+
var M = 357.527723333+359.05034*TE+norm_360_deg(35640*TE)-0.0001602777778*TE2-TE3/300000;
|
238
|
+
SunMA = norm_360_deg(M);
|
239
|
+
|
240
|
+
//Mean distance of the moon from the ascending node
|
241
|
+
var F = 93.271910277+82.017538055*TE+norm_360_deg(483120*TE)-0.0036825*TE2+TE3/327272.7273;
|
242
|
+
|
243
|
+
//Mean elongation of the moon
|
244
|
+
var D = 297.850363055+307.11148*TE+norm_360_deg(444960*TE)-0.001914166667*TE2+TE3/189473.6842;
|
245
|
+
|
246
|
+
//Longitude of the ascending node of the moon
|
247
|
+
var omega = 125.044522222-134.136260833*TE-norm_360_deg(1800*TE)+0.002070833333*TE2+TE3/450000;
|
248
|
+
|
249
|
+
//Periodic terms for nutation
|
250
|
+
var nut = new Array(106);
|
251
|
+
nut[0] = " 0 0 0 0 1-171996-174.2 92025 8.9 ";
|
252
|
+
nut[1] = " 0 0 2-2 2 -13187 -1.6 5736-3.1 ";
|
253
|
+
nut[2] = " 0 0 2 0 2 -2274 -0.2 977-0.5 ";
|
254
|
+
nut[3] = " 0 0 0 0 2 2062 0.2 -895 0.5 ";
|
255
|
+
nut[4] = " 0-1 0 0 0 -1426 3.4 54-0.1 ";
|
256
|
+
nut[5] = " 1 0 0 0 0 712 0.1 -7 0.0 ";
|
257
|
+
nut[6] = " 0 1 2-2 2 -517 1.2 224-0.6 ";
|
258
|
+
nut[7] = " 0 0 2 0 1 -386 -0.4 200 0.0 ";
|
259
|
+
nut[8] = " 1 0 2 0 2 -301 0.0 129-0.1 ";
|
260
|
+
nut[9] = " 0-1 2-2 2 217 -0.5 -95 0.3 ";
|
261
|
+
nut[10] = "-1 0 0 2 0 158 0.0 -1 0.0 ";
|
262
|
+
nut[11] = " 0 0 2-2 1 129 0.1 -70 0.0 ";
|
263
|
+
nut[12] = "-1 0 2 0 2 123 0.0 -53 0.0 ";
|
264
|
+
nut[13] = " 1 0 0 0 1 63 0.1 -33 0.0 ";
|
265
|
+
nut[14] = " 0 0 0 2 0 63 0.0 -2 0.0 ";
|
266
|
+
nut[15] = "-1 0 2 2 2 -59 0.0 26 0.0 ";
|
267
|
+
nut[16] = "-1 0 0 0 1 -58 -0.1 32 0.0 ";
|
268
|
+
nut[17] = " 1 0 2 0 1 -51 0.0 27 0.0 ";
|
269
|
+
nut[18] = "-2 0 0 2 0 -48 0.0 1 0.0 ";
|
270
|
+
nut[19] = "-2 0 2 0 1 46 0.0 -24 0.0 ";
|
271
|
+
nut[20] = " 0 0 2 2 2 -38 0.0 16 0.0 ";
|
272
|
+
nut[21] = " 2 0 2 0 2 -31 0.0 13 0.0 ";
|
273
|
+
nut[22] = " 2 0 0 0 0 29 0.0 -1 0.0 ";
|
274
|
+
nut[23] = " 1 0 2-2 2 29 0.0 -12 0.0 ";
|
275
|
+
nut[24] = " 0 0 2 0 0 26 0.0 -1 0.0 ";
|
276
|
+
nut[25] = " 0 0 2-2 0 -22 0.0 0 0.0 ";
|
277
|
+
nut[26] = "-1 0 2 0 1 21 0.0 -10 0.0 ";
|
278
|
+
nut[27] = " 0 2 0 0 0 17 -0.1 0 0.0 ";
|
279
|
+
nut[28] = " 0 2 2-2 2 -16 0.1 7 0.0 ";
|
280
|
+
nut[29] = "-1 0 0 2 1 16 0.0 -8 0.0 ";
|
281
|
+
nut[30] = " 0 1 0 0 1 -15 0.0 9 0.0 ";
|
282
|
+
nut[31] = " 1 0 0-2 1 -13 0.0 7 0.0 ";
|
283
|
+
nut[32] = " 0-1 0 0 1 -12 0.0 6 0.0 ";
|
284
|
+
nut[33] = " 2 0-2 0 0 11 0.0 0 0.0 ";
|
285
|
+
nut[34] = "-1 0 2 2 1 -10 0.0 5 0.0 ";
|
286
|
+
nut[35] = " 1 0 2 2 2 -8 0.0 3 0.0 ";
|
287
|
+
nut[36] = " 0-1 2 0 2 -7 0.0 3 0.0 ";
|
288
|
+
nut[37] = " 0 0 2 2 1 -7 0.0 3 0.0 ";
|
289
|
+
nut[38] = " 1 1 0-2 0 -7 0.0 0 0.0 ";
|
290
|
+
nut[39] = " 0 1 2 0 2 7 0.0 -3 0.0 ";
|
291
|
+
nut[40] = "-2 0 0 2 1 -6 0.0 3 0.0 ";
|
292
|
+
nut[41] = " 0 0 0 2 1 -6 0.0 3 0.0 ";
|
293
|
+
nut[42] = " 2 0 2-2 2 6 0.0 -3 0.0 ";
|
294
|
+
nut[43] = " 1 0 0 2 0 6 0.0 0 0.0 ";
|
295
|
+
nut[44] = " 1 0 2-2 1 6 0.0 -3 0.0 ";
|
296
|
+
nut[45] = " 0 0 0-2 1 -5 0.0 3 0.0 ";
|
297
|
+
nut[46] = " 0-1 2-2 1 -5 0.0 3 0.0 ";
|
298
|
+
nut[47] = " 2 0 2 0 1 -5 0.0 3 0.0 ";
|
299
|
+
nut[48] = " 1-1 0 0 0 5 0.0 0 0.0 ";
|
300
|
+
nut[49] = " 1 0 0-1 0 -4 0.0 0 0.0 ";
|
301
|
+
nut[50] = " 0 0 0 1 0 -4 0.0 0 0.0 ";
|
302
|
+
nut[51] = " 0 1 0-2 0 -4 0.0 0 0.0 ";
|
303
|
+
nut[52] = " 1 0-2 0 0 4 0.0 0 0.0 ";
|
304
|
+
nut[53] = " 2 0 0-2 1 4 0.0 -2 0.0 ";
|
305
|
+
nut[54] = " 0 1 2-2 1 4 0.0 -2 0.0 ";
|
306
|
+
nut[55] = " 1 1 0 0 0 -3 0.0 0 0.0 ";
|
307
|
+
nut[56] = " 1-1 0-1 0 -3 0.0 0 0.0 ";
|
308
|
+
nut[57] = "-1-1 2 2 2 -3 0.0 1 0.0 ";
|
309
|
+
nut[58] = " 0-1 2 2 2 -3 0.0 1 0.0 ";
|
310
|
+
nut[59] = " 1-1 2 0 2 -3 0.0 1 0.0 ";
|
311
|
+
nut[60] = " 3 0 2 0 2 -3 0.0 1 0.0 ";
|
312
|
+
nut[61] = "-2 0 2 0 2 -3 0.0 1 0.0 ";
|
313
|
+
nut[62] = " 1 0 2 0 0 3 0.0 0 0.0 ";
|
314
|
+
nut[63] = "-1 0 2 4 2 -2 0.0 1 0.0 ";
|
315
|
+
nut[64] = " 1 0 0 0 2 -2 0.0 1 0.0 ";
|
316
|
+
nut[65] = "-1 0 2-2 1 -2 0.0 1 0.0 ";
|
317
|
+
nut[66] = " 0-2 2-2 1 -2 0.0 1 0.0 ";
|
318
|
+
nut[67] = "-2 0 0 0 1 -2 0.0 1 0.0 ";
|
319
|
+
nut[68] = " 2 0 0 0 1 2 0.0 -1 0.0 ";
|
320
|
+
nut[69] = " 3 0 0 0 0 2 0.0 0 0.0 ";
|
321
|
+
nut[70] = " 1 1 2 0 2 2 0.0 -1 0.0 ";
|
322
|
+
nut[71] = " 0 0 2 1 2 2 0.0 -1 0.0 ";
|
323
|
+
nut[72] = " 1 0 0 2 1 -1 0.0 0 0.0 ";
|
324
|
+
nut[73] = " 1 0 2 2 1 -1 0.0 1 0.0 ";
|
325
|
+
nut[74] = " 1 1 0-2 1 -1 0.0 0 0.0 ";
|
326
|
+
nut[75] = " 0 1 0 2 0 -1 0.0 0 0.0 ";
|
327
|
+
nut[76] = " 0 1 2-2 0 -1 0.0 0 0.0 ";
|
328
|
+
nut[77] = " 0 1-2 2 0 -1 0.0 0 0.0 ";
|
329
|
+
nut[78] = " 1 0-2 2 0 -1 0.0 0 0.0 ";
|
330
|
+
nut[79] = " 1 0-2-2 0 -1 0.0 0 0.0 ";
|
331
|
+
nut[80] = " 1 0 2-2 0 -1 0.0 0 0.0 ";
|
332
|
+
nut[81] = " 1 0 0-4 0 -1 0.0 0 0.0 ";
|
333
|
+
nut[82] = " 2 0 0-4 0 -1 0.0 0 0.0 ";
|
334
|
+
nut[83] = " 0 0 2 4 2 -1 0.0 0 0.0 ";
|
335
|
+
nut[84] = " 0 0 2-1 2 -1 0.0 0 0.0 ";
|
336
|
+
nut[85] = "-2 0 2 4 2 -1 0.0 1 0.0 ";
|
337
|
+
nut[86] = " 2 0 2 2 2 -1 0.0 0 0.0 ";
|
338
|
+
nut[87] = " 0-1 2 0 1 -1 0.0 0 0.0 ";
|
339
|
+
nut[88] = " 0 0-2 0 1 -1 0.0 0 0.0 ";
|
340
|
+
nut[89] = " 0 0 4-2 2 1 0.0 0 0.0 ";
|
341
|
+
nut[90] = " 0 1 0 0 2 1 0.0 0 0.0 ";
|
342
|
+
nut[91] = " 1 1 2-2 2 1 0.0 -1 0.0 ";
|
343
|
+
nut[92] = " 3 0 2-2 2 1 0.0 0 0.0 ";
|
344
|
+
nut[93] = "-2 0 2 2 2 1 0.0 -1 0.0 ";
|
345
|
+
nut[94] = "-1 0 0 0 2 1 0.0 -1 0.0 ";
|
346
|
+
nut[95] = " 0 0-2 2 1 1 0.0 0 0.0 ";
|
347
|
+
nut[96] = " 0 1 2 0 1 1 0.0 0 0.0 ";
|
348
|
+
nut[97] = "-1 0 4 0 2 1 0.0 0 0.0 ";
|
349
|
+
nut[98] = " 2 1 0-2 0 1 0.0 0 0.0 ";
|
350
|
+
nut[99] = " 2 0 0 2 0 1 0.0 0 0.0 ";
|
351
|
+
nut[100]= " 2 0 2-2 1 1 0.0 -1 0.0 ";
|
352
|
+
nut[101]= " 2 0-2 0 1 1 0.0 0 0.0 ";
|
353
|
+
nut[102]= " 1-1 0-2 0 1 0.0 0 0.0 ";
|
354
|
+
nut[103]= "-1 0 0 1 1 1 0.0 0 0.0 ";
|
355
|
+
nut[104]= "-1-1 0 2 1 1 0.0 0 0.0 ";
|
356
|
+
nut[105]= " 0 1 0 1 0 1 0.0 0 0.0 ";
|
357
|
+
|
358
|
+
//Reading periodic terms
|
359
|
+
var fMm, fM, fF, fD, f_omega, dp=0, de=0;
|
360
|
+
|
361
|
+
for (x=0; x<105; x++)
|
362
|
+
{
|
363
|
+
fMm = eval(nut[x].substring(0,2));
|
364
|
+
fM = eval(nut[x].substring(2,4));
|
365
|
+
fF = eval(nut[x].substring(4,6));
|
366
|
+
fD = eval(nut[x].substring(6,8));
|
367
|
+
f_omega = eval(nut[x].substring(8,10));
|
368
|
+
dp += (eval(nut[x].substring(10,17))+TE*eval(nut[x].substring(17,23)))*sind(fD*D+fM*M+fMm*Mm+fF*F+f_omega*omega);
|
369
|
+
de += (eval(nut[x].substring(23,29))+TE*eval(nut[x].substring(29,33)))*cosd(fD*D+fM*M+fMm*Mm+fF*F+f_omega*omega);
|
370
|
+
}
|
371
|
+
|
372
|
+
//Corrections (Herring, 1987)
|
373
|
+
/*
|
374
|
+
var corr = new Array(4);
|
375
|
+
corr[0] = " 0 0 0 0 1-725 417 213 224 ";
|
376
|
+
corr[1] = " 0 1 0 0 0 523 61 208 -24 ";
|
377
|
+
corr[2] = " 0 0 2-2 2 102-118 -41 -47 ";
|
378
|
+
corr[3] = " 0 0 2 0 2 -81 0 32 0 ";
|
379
|
+
|
380
|
+
for (x=0; x<4; x++)
|
381
|
+
{
|
382
|
+
fMm = eval(corr[x].substring(0,2));
|
383
|
+
fM = eval(corr[x].substring(2,4));
|
384
|
+
fF = eval(corr[x].substring(4,6));
|
385
|
+
fD = eval(corr[x].substring(6,8));
|
386
|
+
f_omega = eval(corr[x].substring(8,10));
|
387
|
+
dp += 0.1*(eval(corr[x].substring(10,14))*sind(fD*D+fM*M+fMm*Mm+fF*F+f_omega*omega)+eval(corr[x].substring(14,18))*cosd(fD*D+fM*M+fMm*Mm+fF*F+f_omega*omega));
|
388
|
+
de += 0.1*(eval(corr[x].substring(18,22))*cosd(fD*D+fM*M+fMm*Mm+fF*F+f_omega*omega)+eval(corr[x].substring(22,26))*sind(fD*D+fM*M+fMm*Mm+fF*F+f_omega*omega));
|
389
|
+
}
|
390
|
+
*/
|
391
|
+
|
392
|
+
//Nutation in longitude
|
393
|
+
delta_psi = dp/36000000;
|
394
|
+
|
395
|
+
//Nutation in obliquity
|
396
|
+
delta_eps = de/36000000;
|
397
|
+
|
398
|
+
//Mean obliquity of the ecliptic
|
399
|
+
eps0 = (84381.448-46.815*TE-0.00059*TE2+0.001813*TE3)/3600;
|
400
|
+
|
401
|
+
//True obliquity of the ecliptic
|
402
|
+
eps = eps0+delta_eps;
|
403
|
+
}
|
404
|
+
|
405
|
+
|
406
|
+
//GHA Aries, GAST, GMST, equation of the equinoxes
|
407
|
+
function Aries()
|
408
|
+
{
|
409
|
+
//Mean GHA Aries
|
410
|
+
var GHAAmean = norm_360_deg(280.46061837+ 360.98564736629*(JD-2451545)+0.000387933*T2-T3/38710000);
|
411
|
+
ARIESmean = GHAAmean;
|
412
|
+
//GMST
|
413
|
+
SidTm = OutSidTime(GHAAmean);
|
414
|
+
|
415
|
+
//True GHA Aries
|
416
|
+
GHAAtrue = norm_360_deg(GHAAmean+delta_psi*cosd(eps));
|
417
|
+
|
418
|
+
//GAST
|
419
|
+
SidTa = OutSidTime(GHAAtrue);
|
420
|
+
|
421
|
+
//Equation of the equinoxes
|
422
|
+
EoE = 240*delta_psi*cosd(eps);
|
423
|
+
EoE = delta_psi*cosd(eps);
|
424
|
+
EoEout = Math.round(1000*EoE)/1000;
|
425
|
+
EoEout = " "+EoEout+"s";
|
426
|
+
}
|
427
|
+
|
428
|
+
|
429
|
+
//Calculations for the sun
|
430
|
+
function Sun()
|
431
|
+
{
|
432
|
+
with(Math)
|
433
|
+
{
|
434
|
+
//Periodic terms for the sun
|
435
|
+
|
436
|
+
//Longitude
|
437
|
+
var L0=175347046;
|
438
|
+
L0+=3341656*cos(4.6692568+6283.0758500*Tau);
|
439
|
+
L0+=34894*cos(4.62610+12566.15170*Tau);
|
440
|
+
L0+=3497*cos(2.7441+5753.3849*Tau);
|
441
|
+
L0+=3418*cos(2.8289+3.5231*Tau);
|
442
|
+
L0+=3136*cos(3.6277+77713.7715*Tau);
|
443
|
+
L0+=2676*cos(4.4181+7860.4194*Tau);
|
444
|
+
L0+=2343*cos(6.1352+3930.2097*Tau);
|
445
|
+
L0+=1324*cos(0.7425+11506.7698*Tau);
|
446
|
+
L0+=1273*cos(2.0371+529.6910*Tau);
|
447
|
+
|
448
|
+
L0+=1199*cos(1.1096+1577.3435*Tau);
|
449
|
+
L0+=990*cos(5.233+5884.927*Tau);
|
450
|
+
L0+=902*cos(2.045+26.298*Tau);
|
451
|
+
L0+=857*cos(3.508+398.149*Tau);
|
452
|
+
L0+=780*cos(1.179+5223.694*Tau);
|
453
|
+
L0+=753*cos(2.533+5507.553*Tau);
|
454
|
+
L0+=505*cos(4.583+18849.228*Tau);
|
455
|
+
L0+=492*cos(4.205+775.523*Tau);
|
456
|
+
L0+=357*cos(2.920+0.067*Tau);
|
457
|
+
L0+=317*cos(5.849+11790.629*Tau);
|
458
|
+
|
459
|
+
L0+=284*cos(1.899+796.298*Tau);
|
460
|
+
L0+=271*cos(0.315+10977.079*Tau);
|
461
|
+
L0+=243*cos(0.345+5486.778*Tau);
|
462
|
+
L0+=206*cos(4.806+2544.314*Tau);
|
463
|
+
L0+=205*cos(1.869+5573.143*Tau);
|
464
|
+
L0+=202*cos(2.458+6069.777*Tau);
|
465
|
+
L0+=156*cos(0.833+213.299*Tau);
|
466
|
+
L0+=132*cos(3.411+2942.463*Tau);
|
467
|
+
L0+=126*cos(1.083+20.775*Tau);
|
468
|
+
L0+=115*cos(0.645+0.980*Tau);
|
469
|
+
|
470
|
+
L0+=103*cos(0.636+4694.003*Tau);
|
471
|
+
L0+=102*cos(0.976+15720.839*Tau);
|
472
|
+
L0+=102*cos(4.267+7.114*Tau);
|
473
|
+
L0+=99*cos(6.21+2146.17*Tau);
|
474
|
+
L0+=98*cos(0.68+155.42*Tau);
|
475
|
+
L0+=86*cos(5.98+161000.69*Tau);
|
476
|
+
L0+=85*cos(1.30+6275.96*Tau);
|
477
|
+
L0+=85*cos(3.67+71430.70*Tau);
|
478
|
+
L0+=80*cos(1.81+17260.15*Tau);
|
479
|
+
L0+=79*cos(3.04+12036.46*Tau);
|
480
|
+
|
481
|
+
L0+=75*cos(1.76+5088.63*Tau);
|
482
|
+
L0+=74*cos(3.50+3154.69*Tau);
|
483
|
+
L0+=74*cos(4.68+801.82*Tau);
|
484
|
+
L0+=70*cos(0.83+9437.76*Tau);
|
485
|
+
L0+=62*cos(3.98+8827.39*Tau);
|
486
|
+
L0+=61*cos(1.82+7084.90*Tau);
|
487
|
+
L0+=57*cos(2.78+6286.60*Tau);
|
488
|
+
L0+=56*cos(4.39+14143.50*Tau);
|
489
|
+
L0+=56*cos(3.47+6279.55*Tau);
|
490
|
+
L0+=52*cos(0.19+12139.55*Tau);
|
491
|
+
|
492
|
+
L0+=52*cos(1.33+1748.02*Tau);
|
493
|
+
L0+=51*cos(0.28+5856.48*Tau);
|
494
|
+
L0+=49*cos(0.49+1194.45*Tau);
|
495
|
+
L0+=41*cos(5.37+8429.24*Tau);
|
496
|
+
L0+=41*cos(2.40+19651.05*Tau);
|
497
|
+
L0+=39*cos(6.17+10447.39*Tau);
|
498
|
+
L0+=37*cos(6.04+10213.29*Tau);
|
499
|
+
L0+=37*cos(2.57+1059.38*Tau);
|
500
|
+
L0+=36*cos(1.71+2352.87*Tau);
|
501
|
+
L0+=36*cos(1.78+6812.77*Tau);
|
502
|
+
|
503
|
+
L0+=33*cos(0.59+17789.85*Tau);
|
504
|
+
L0+=30*cos(0.44+83996.85*Tau);
|
505
|
+
L0+=30*cos(2.74+1349.87*Tau);
|
506
|
+
L0+=25*cos(3.16+4690.48*Tau);
|
507
|
+
|
508
|
+
|
509
|
+
var L1=628331966747;
|
510
|
+
L1+=206059*cos(2.678235+6283.075850*Tau);
|
511
|
+
L1+=4303*cos(2.6351+12566.1517*Tau);
|
512
|
+
L1+=425*cos(1.590+3.523*Tau);
|
513
|
+
L1+=119*cos(5.796+26.298*Tau);
|
514
|
+
L1+=109*cos(2.966+1577.344*Tau);
|
515
|
+
L1+=93*cos(2.59+18849.23*Tau);
|
516
|
+
L1+=72*cos(1.14+529.69*Tau);
|
517
|
+
L1+=68*cos(1.87+398.15*Tau);
|
518
|
+
L1+=67*cos(4.41+5507.55*Tau);
|
519
|
+
|
520
|
+
L1+=59*cos(2.89+5223.69*Tau);
|
521
|
+
L1+=56*cos(2.17+155.42*Tau);
|
522
|
+
L1+=45*cos(0.40+796.30*Tau);
|
523
|
+
L1+=36*cos(0.47+775.52*Tau);
|
524
|
+
L1+=29*cos(2.65+7.11*Tau);
|
525
|
+
L1+=21*cos(5.34+0.98*Tau);
|
526
|
+
L1+=19*cos(1.85+5486.78*Tau);
|
527
|
+
L1+=19*cos(4.97+213.30*Tau);
|
528
|
+
L1+=17*cos(2.99+6275.96*Tau);
|
529
|
+
L1+=16*cos(0.03+2544.31*Tau);
|
530
|
+
|
531
|
+
L1+=16*cos(1.43+2146.17*Tau);
|
532
|
+
L1+=15*cos(1.21+10977.08*Tau);
|
533
|
+
L1+=12*cos(2.83+1748.02*Tau);
|
534
|
+
L1+=12*cos(3.26+5088.63*Tau);
|
535
|
+
L1+=12*cos(5.27+1194.45*Tau);
|
536
|
+
L1+=12*cos(2.08+4694.00*Tau);
|
537
|
+
L1+=11*cos(0.77+553.57*Tau);
|
538
|
+
L1+=10*cos(1.30+6286.60*Tau);
|
539
|
+
L1+=10*cos(4.24+1349.87*Tau);
|
540
|
+
L1+=9*cos(2.70+242.73*Tau);
|
541
|
+
|
542
|
+
L1+=9*cos(5.64+951.72*Tau);
|
543
|
+
L1+=8*cos(5.30+2352.87*Tau);
|
544
|
+
L1+=6*cos(2.65+9437.76*Tau);
|
545
|
+
L1+=6*cos(4.67+4690.48*Tau);
|
546
|
+
|
547
|
+
|
548
|
+
var L2=52919;
|
549
|
+
L2+=8720*cos(1.0721+6283.0758*Tau);
|
550
|
+
L2+=309*cos(0.867+12566.152*Tau);
|
551
|
+
L2+=27*cos(0.05+3.52*Tau);
|
552
|
+
L2+=16*cos(5.19+26.30*Tau);
|
553
|
+
L2+=16*cos(3.68+155.42*Tau);
|
554
|
+
L2+=10*cos(0.76+18849.23*Tau);
|
555
|
+
L2+=9*cos(2.06+77713.77*Tau);
|
556
|
+
L2+=7*cos(0.83+775.52*Tau);
|
557
|
+
L2+=5*cos(4.66+1577.34*Tau);
|
558
|
+
|
559
|
+
L2+=4*cos(1.03+7.11*Tau);
|
560
|
+
L2+=4*cos(3.44+5573.14*Tau);
|
561
|
+
L2+=3*cos(5.14+796.30*Tau);
|
562
|
+
L2+=3*cos(6.05+5507.55*Tau);
|
563
|
+
L2+=3*cos(1.19+242.73*Tau);
|
564
|
+
L2+=3*cos(6.12+529.69*Tau);
|
565
|
+
L2+=3*cos(0.31+398.15*Tau);
|
566
|
+
L2+=3*cos(2.28+553.57*Tau);
|
567
|
+
L2+=2*cos(4.38+5223.69*Tau);
|
568
|
+
L2+=2*cos(3.75+0.98*Tau);
|
569
|
+
|
570
|
+
|
571
|
+
var L3=289*cos(5.844+6283.076*Tau);
|
572
|
+
L3+=35;
|
573
|
+
L3+=17*cos(5.49+12566.15*Tau);
|
574
|
+
L3+=3*cos(5.20+155.42*Tau);
|
575
|
+
L3+=1*cos(4.72+3.52*Tau);
|
576
|
+
L3+=1*cos(5.30+18849.23*Tau);
|
577
|
+
L3+=1*cos(5.97+242.73*Tau);
|
578
|
+
|
579
|
+
|
580
|
+
var L4=114*cos(3.142);
|
581
|
+
L4+=8*cos(4.13+6283.08*Tau);
|
582
|
+
L4+=1*cos(3.84+12566.15*Tau);
|
583
|
+
|
584
|
+
|
585
|
+
var L5 = 1*cos(3.14);
|
586
|
+
|
587
|
+
//Mean longitude of the sun
|
588
|
+
var Lsun_mean = norm_360_deg(280.4664567+360007.6982779*Tau+0.03032028*Tau2+Tau3/49931-Tau4/15299-Tau5/1988000);
|
589
|
+
SunML = Lsun_mean
|
590
|
+
|
591
|
+
//Heliocentric longitude
|
592
|
+
var Lhelioc = norm_360_deg((L0+L1*Tau+L2*Tau2+L3*Tau3+L4*Tau4+L5*Tau5)/1e8/dtr);
|
593
|
+
Hlon = Lhelioc
|
594
|
+
|
595
|
+
//Geocentric longitude
|
596
|
+
Lsun_true = norm_360_deg(Lhelioc+180-0.000025);
|
597
|
+
|
598
|
+
//Latitude
|
599
|
+
var B0=280*cos(3.199+84334.662*Tau);
|
600
|
+
B0+=102*cos(5.422+5507.553*Tau);
|
601
|
+
B0+=80*cos(3.88+5223.69*Tau);
|
602
|
+
B0+=44*cos(3.70+2352.87*Tau);
|
603
|
+
B0+=32*cos(4.00+1577.34*Tau);
|
604
|
+
|
605
|
+
var B1=9*cos(3.90+5507.55*Tau);
|
606
|
+
B1+=6*cos(1.73+5223.69*Tau);
|
607
|
+
|
608
|
+
//Heliocentric latitude
|
609
|
+
var B = (B0+B1*Tau)/1e8/dtr;
|
610
|
+
Hlat = B;
|
611
|
+
|
612
|
+
//Geocentric latitude
|
613
|
+
var beta = norm_360_deg(-B);
|
614
|
+
Glat = beta
|
615
|
+
|
616
|
+
//Corrections
|
617
|
+
Lsun_prime = norm_360_deg(Lhelioc+180-1.397*TE-0.00031*TE2);
|
618
|
+
|
619
|
+
beta = beta+0.000011*(cosd(Lsun_prime)-sind(Lsun_prime));
|
620
|
+
|
621
|
+
|
622
|
+
//Distance earth-sun
|
623
|
+
var R0=100013989;
|
624
|
+
R0+=1670700*cos(3.0984635+6283.0758500*Tau);
|
625
|
+
R0+=13956*cos(3.05525+12566.15170*Tau);
|
626
|
+
R0+=3084*cos(5.1985+77713.7715*Tau);
|
627
|
+
R0+=1628*cos(1.1739+5753.3849*Tau);
|
628
|
+
R0+=1576*cos(2.8469+7860.4194*Tau);
|
629
|
+
R0+=925*cos(5.453+11506.770*Tau);
|
630
|
+
R0+=542*cos(4.564+3930.210*Tau);
|
631
|
+
R0+=472*cos(3.661+5884.927*Tau);
|
632
|
+
R0+=346*cos(0.964+5507.553*Tau);
|
633
|
+
|
634
|
+
R0+=329*cos(5.900+5223.694*Tau);
|
635
|
+
R0+=307*cos(0.299+5573.143*Tau);
|
636
|
+
R0+=243*cos(4.273+11790.629*Tau);
|
637
|
+
R0+=212*cos(5.847+1577.344*Tau);
|
638
|
+
R0+=186*cos(5.022+10977.079*Tau);
|
639
|
+
R0+=175*cos(3.012+18849.228*Tau);
|
640
|
+
R0+=110*cos(5.055+5486.778*Tau);
|
641
|
+
R0+=98*cos(0.89+6069.78*Tau);
|
642
|
+
R0+=86*cos(5.69+15720.84*Tau);
|
643
|
+
R0+=86*cos(1.27+161000.69*Tau);
|
644
|
+
|
645
|
+
R0+=65*cos(0.27+17260.15*Tau);
|
646
|
+
R0+=63*cos(0.92+529.69*Tau);
|
647
|
+
R0+=57*cos(2.01+83996.85*Tau);
|
648
|
+
R0+=56*cos(5.24+71430.70*Tau);
|
649
|
+
R0+=49*cos(3.25+2544.31*Tau);
|
650
|
+
R0+=47*cos(2.58+775.52*Tau);
|
651
|
+
R0+=45*cos(5.54+9437.76*Tau);
|
652
|
+
R0+=43*cos(6.01+6275.96*Tau);
|
653
|
+
R0+=39*cos(5.36+4694.00*Tau);
|
654
|
+
R0+=38*cos(2.39+8827.39*Tau);
|
655
|
+
|
656
|
+
R0+=37*cos(0.83+19651.05*Tau);
|
657
|
+
R0+=37*cos(4.90+12139.55*Tau);
|
658
|
+
R0+=36*cos(1.67+12036.46*Tau);
|
659
|
+
R0+=35*cos(1.84+2942.46*Tau);
|
660
|
+
R0+=33*cos(0.24+7084.90*Tau);
|
661
|
+
R0+=32*cos(0.18+5088.63*Tau);
|
662
|
+
R0+=32*cos(1.78+398.15*Tau);
|
663
|
+
R0+=28*cos(1.21+6286.60*Tau);
|
664
|
+
R0+=28*cos(1.90+6279.55*Tau);
|
665
|
+
R0+=26*cos(4.59+10447.39*Tau);
|
666
|
+
|
667
|
+
|
668
|
+
var R1=103019*cos(1.107490+6283.075850*Tau);
|
669
|
+
R1+=1721*cos(1.0644+12566.1517*Tau);
|
670
|
+
R1+=702*cos(3.142);
|
671
|
+
R1+=32*cos(1.02+18849.23*Tau);
|
672
|
+
R1+=31*cos(2.84+5507.55*Tau);
|
673
|
+
R1+=25*cos(1.32+5223.69*Tau);
|
674
|
+
R1+=18*cos(1.42+1577.34*Tau);
|
675
|
+
R1+=10*cos(5.91+10977.08*Tau);
|
676
|
+
R1+=9*cos(1.42+6275.96*Tau);
|
677
|
+
R1+=9*cos(0.27+5486.78*Tau);
|
678
|
+
|
679
|
+
|
680
|
+
var R2=4359*cos(5.7846+6283.0758*Tau);
|
681
|
+
R2+=124*cos(5.579+12566.152*Tau);
|
682
|
+
R2+=12*cos(3.14);
|
683
|
+
R2+=9*cos(3.63+77713.77*Tau);
|
684
|
+
R2+=6*cos(1.87+5573.14*Tau);
|
685
|
+
R2+=3*cos(5.47+18849.23*Tau);
|
686
|
+
|
687
|
+
|
688
|
+
var R3=145*cos(4.273+6283.076*Tau);
|
689
|
+
R3+=7*cos(3.92+12566.15*Tau);
|
690
|
+
|
691
|
+
|
692
|
+
var R4 = 4*cos(2.56+6283.08*Tau);
|
693
|
+
|
694
|
+
R = (R0+R1*Tau+R2*Tau2+R3*Tau3+R4*Tau4)/1e8;
|
695
|
+
|
696
|
+
|
697
|
+
//Apparent longitude of the sun
|
698
|
+
lambda = norm_360_deg(Lsun_true+delta_psi-0.005691611/R);
|
699
|
+
|
700
|
+
//Right ascension of the sun, apparent
|
701
|
+
RAsun = norm_360_deg(atan2((sind(lambda)*cosd(eps)-tand(beta)*sind(eps)),cosd(lambda))/dtr);
|
702
|
+
|
703
|
+
//Sidereal hour angle of the sun, apparent
|
704
|
+
SHAsun = 360-RAsun;
|
705
|
+
|
706
|
+
//Declination of the sun, apparent
|
707
|
+
DECsun = asin(sind(beta)*cosd(eps)+cosd(beta)*sind(eps)*sind(lambda))/dtr;
|
708
|
+
Dsun = DECsun;
|
709
|
+
|
710
|
+
//GHA of the sun
|
711
|
+
GHAsun = norm_360_deg(GHAAtrue-RAsun);
|
712
|
+
|
713
|
+
//Semidiameter of the sun
|
714
|
+
SDsun = 959.63/R;
|
715
|
+
|
716
|
+
//Horizontal parallax of the sun
|
717
|
+
HPsun = 8.794/R;
|
718
|
+
|
719
|
+
//Equation of time
|
720
|
+
//EOT = 4*(Lsun_mean-0.0057183-0.0008-RAsun+delta_psi*cosd(eps));
|
721
|
+
Eot = 4*GHAsun+720-1440*dayfraction;
|
722
|
+
if (Eot>20) Eot-=1440;
|
723
|
+
if (Eot<-20) Eot+=1440;
|
724
|
+
}
|
725
|
+
}
|
726
|
+
|
727
|
+
|
728
|
+
//Calculation of ephemerides for the moon
|
729
|
+
function Moon()
|
730
|
+
{
|
731
|
+
with (Math)
|
732
|
+
{
|
733
|
+
// Mean longitude of the moon
|
734
|
+
Lmoon_mean = norm_360_deg(218.3164591+481267.88134236*TE-0.0013268*TE2+TE3/538841-TE4/65194000);
|
735
|
+
|
736
|
+
//Mean elongation of the moon
|
737
|
+
D = norm_360_deg(297.8502042+445267.1115168*TE-0.00163*TE2+TE3/545868-TE4/113065000);
|
738
|
+
|
739
|
+
// Mean anomaly of the sun
|
740
|
+
Msun_mean = norm_360_deg(357.5291092+35999.0502909*TE-0.0001536*TE2+TE3/24490000);
|
741
|
+
|
742
|
+
//Mean anomaly of the moon
|
743
|
+
Mmoon_mean = norm_360_deg(134.9634114+477198.8676313*TE+0.008997*TE2+TE3/69699-TE4/14712000);
|
744
|
+
|
745
|
+
//Mean distance of the moon from her ascending node
|
746
|
+
F = norm_360_deg(93.2720993+483202.0175273*TE-0.0034029*TE2-TE3/3526000+TE4/863310000);
|
747
|
+
|
748
|
+
//Corrections
|
749
|
+
A1 =119.75+131.849*TE;
|
750
|
+
A1 = 360*(A1/360 - floor(A1/360));
|
751
|
+
A2 = 53.09+479264.29*TE;
|
752
|
+
A2 = 360*(A2/360 - floor(A2/360));
|
753
|
+
A3 = 313.45+481266.484*TE;
|
754
|
+
A3 = 360*(A3/360 - floor(A3/360));
|
755
|
+
|
756
|
+
fE = 1-0.002516*TE-0.0000074*TE2;
|
757
|
+
fE2 = fE*fE;
|
758
|
+
|
759
|
+
|
760
|
+
//Periodic terms for the moon
|
761
|
+
|
762
|
+
//Longitude and distance
|
763
|
+
fD = new Array(60);
|
764
|
+
fMms = new Array(60);
|
765
|
+
fMmm = new Array(60);
|
766
|
+
fF = new Array(60);
|
767
|
+
coeffs = new Array(60);
|
768
|
+
coeffc = new Array(60);
|
769
|
+
|
770
|
+
fD[0]=0; fMms[0]=0; fMmm[0]=1; fF[0]=0; coeffs[0]=6288774; coeffc[0]=-20905355;
|
771
|
+
fD[1]=2; fMms[1]=0; fMmm[1]=-1; fF[1]=0; coeffs[1]=1274027; coeffc[1]=-3699111;
|
772
|
+
fD[2]=2; fMms[2]=0; fMmm[2]=0; fF[2]=0; coeffs[2]=658314; coeffc[2]=-2955968;
|
773
|
+
fD[3]=0; fMms[3]=0; fMmm[3]=2; fF[3]=0; coeffs[3]=213618; coeffc[3]=-569925;
|
774
|
+
fD[4]=0; fMms[4]=1; fMmm[4]=0; fF[4]=0; coeffs[4]=-185116; coeffc[4]=48888;
|
775
|
+
fD[5]=0; fMms[5]=0; fMmm[5]=0; fF[5]=2; coeffs[5]=-114332; coeffc[5]=-3149;
|
776
|
+
fD[6]=2; fMms[6]=0; fMmm[6]=-2; fF[6]=0; coeffs[6]=58793; coeffc[6]=246158;
|
777
|
+
fD[7]=2; fMms[7]=-1; fMmm[7]=-1; fF[7]=0; coeffs[7]=57066; coeffc[7]=-152138;
|
778
|
+
fD[8]=2; fMms[8]=0; fMmm[8]=1; fF[8]=0; coeffs[8]=53322; coeffc[8]=-170733;
|
779
|
+
fD[9]=2; fMms[9]=-1; fMmm[9]=0; fF[9]=0; coeffs[9]=45758; coeffc[9]=-204586;
|
780
|
+
|
781
|
+
fD[10]=0; fMms[10]=1; fMmm[10]=-1; fF[10]=0; coeffs[10]=-40923; coeffc[10]=-129620;
|
782
|
+
fD[11]=1; fMms[11]=0; fMmm[11]=0; fF[11]=0; coeffs[11]=-34720; coeffc[11]=108743;
|
783
|
+
fD[12]=0; fMms[12]=1; fMmm[12]=1; fF[12]=0; coeffs[12]=-30383; coeffc[12]=104755;
|
784
|
+
fD[13]=2; fMms[13]=0; fMmm[13]=0; fF[13]=-2; coeffs[13]=15327; coeffc[13]=10321;
|
785
|
+
fD[14]=0; fMms[14]=0; fMmm[14]=1; fF[14]=2; coeffs[14]=-12528; coeffc[14]=0;
|
786
|
+
fD[15]=0; fMms[15]=0; fMmm[15]=1; fF[15]=-2; coeffs[15]=10980; coeffc[15]=79661;
|
787
|
+
fD[16]=4; fMms[16]=0; fMmm[16]=-1; fF[16]=0; coeffs[16]=10675; coeffc[16]=-34782;
|
788
|
+
fD[17]=0; fMms[17]=0; fMmm[17]=3; fF[17]=0; coeffs[17]=10034; coeffc[17]=-23210;
|
789
|
+
fD[18]=4; fMms[18]=0; fMmm[18]=-2; fF[18]=0; coeffs[18]=8548; coeffc[18]=-21636;
|
790
|
+
fD[19]=2; fMms[19]=1; fMmm[19]=-1; fF[19]=0; coeffs[19]=-7888; coeffc[19]=24208;
|
791
|
+
|
792
|
+
fD[20]=2; fMms[20]=1; fMmm[20]=0; fF[20]=0; coeffs[20]=-6766; coeffc[20]=30824;
|
793
|
+
fD[21]=1; fMms[21]=0; fMmm[21]=-1; fF[21]=0; coeffs[21]=-5163; coeffc[21]=-8379;
|
794
|
+
fD[22]=1; fMms[22]=1; fMmm[22]=0; fF[22]=0; coeffs[22]=4987; coeffc[22]=-16675;
|
795
|
+
fD[23]=2; fMms[23]=-1; fMmm[23]=1; fF[23]=0; coeffs[23]=4036; coeffc[23]=-12831;
|
796
|
+
fD[24]=2; fMms[24]=0; fMmm[24]=2; fF[24]=0; coeffs[24]=3994; coeffc[24]=-10445;
|
797
|
+
fD[25]=4; fMms[25]=0; fMmm[25]=0; fF[25]=0; coeffs[25]=3861; coeffc[25]=-11650;
|
798
|
+
fD[26]=2; fMms[26]=0; fMmm[26]=-3; fF[26]=0; coeffs[26]=3665; coeffc[26]=14403;
|
799
|
+
fD[27]=0; fMms[27]=1; fMmm[27]=-2; fF[27]=0; coeffs[27]=-2689; coeffc[27]=-7003;
|
800
|
+
fD[28]=2; fMms[28]=0; fMmm[28]=-1; fF[28]=2; coeffs[28]=-2602; coeffc[28]=0;
|
801
|
+
fD[29]=2; fMms[29]=-1; fMmm[29]=-2; fF[29]=0; coeffs[29]=2390; coeffc[29]=10056;
|
802
|
+
|
803
|
+
fD[30]=1; fMms[30]=0; fMmm[30]=1; fF[30]=0; coeffs[30]=-2348; coeffc[30]=6322;
|
804
|
+
fD[31]=2; fMms[31]=-2; fMmm[31]=0; fF[31]=0; coeffs[31]=2236; coeffc[31]=-9884;
|
805
|
+
fD[32]=0; fMms[32]=1; fMmm[32]=2; fF[32]=0; coeffs[32]=-2120; coeffc[32]=5751;
|
806
|
+
fD[33]=0; fMms[33]=2; fMmm[33]=0; fF[33]=0; coeffs[33]=-2069; coeffc[33]=0;
|
807
|
+
fD[34]=2; fMms[34]=-2; fMmm[34]=-1; fF[34]=0; coeffs[34]=2048; coeffc[34]=-4950;
|
808
|
+
fD[35]=2; fMms[35]=0; fMmm[35]=1; fF[35]=-2; coeffs[35]=-1773; coeffc[35]=4130;
|
809
|
+
fD[36]=2; fMms[36]=0; fMmm[36]=0; fF[36]=2; coeffs[36]=-1595; coeffc[36]=0;
|
810
|
+
fD[37]=4; fMms[37]=-1; fMmm[37]=-1; fF[37]=0; coeffs[37]=1215; coeffc[37]=-3958;
|
811
|
+
fD[38]=0; fMms[38]=0; fMmm[38]=2; fF[38]=2; coeffs[38]=-1110; coeffc[38]=0;
|
812
|
+
fD[39]=3; fMms[39]=0; fMmm[39]=-1; fF[39]=0; coeffs[39]=-892; coeffc[39]=3258;
|
813
|
+
|
814
|
+
fD[40]=2; fMms[40]=1; fMmm[40]=1; fF[40]=0; coeffs[40]=-810; coeffc[40]=2616;
|
815
|
+
fD[41]=4; fMms[41]=-1; fMmm[41]=-2; fF[41]=0; coeffs[41]=759; coeffc[41]=-1897;
|
816
|
+
fD[42]=0; fMms[42]=2; fMmm[42]=-1; fF[42]=0; coeffs[42]=-713; coeffc[42]=-2117;
|
817
|
+
fD[43]=2; fMms[43]=2; fMmm[43]=-1; fF[43]=0; coeffs[43]=-700; coeffc[43]=2354;
|
818
|
+
fD[44]=2; fMms[44]=1; fMmm[44]=-2; fF[44]=0; coeffs[44]=691; coeffc[44]=0;
|
819
|
+
fD[45]=2; fMms[45]=-1; fMmm[45]=0; fF[45]=-2; coeffs[45]=596; coeffc[45]=0;
|
820
|
+
fD[46]=4; fMms[46]=0; fMmm[46]=1; fF[46]=0; coeffs[46]=549; coeffc[46]=-1423;
|
821
|
+
fD[47]=0; fMms[47]=0; fMmm[47]=4; fF[47]=0; coeffs[47]=537; coeffc[47]=-1117;
|
822
|
+
fD[48]=4; fMms[48]=-1; fMmm[48]=0; fF[48]=0; coeffs[48]=520; coeffc[48]=-1571;
|
823
|
+
fD[49]=1; fMms[49]=0; fMmm[49]=-2; fF[49]=0; coeffs[49]=-487; coeffc[49]=-1739;
|
824
|
+
|
825
|
+
fD[50]=2; fMms[50]=1; fMmm[50]=0; fF[50]=-2; coeffs[50]=-399; coeffc[50]=0;
|
826
|
+
fD[51]=0; fMms[51]=0; fMmm[51]=2; fF[51]=-2; coeffs[51]=-381; coeffc[51]=-4421;
|
827
|
+
fD[52]=1; fMms[52]=1; fMmm[52]=1; fF[52]=0; coeffs[52]=351; coeffc[52]=0;
|
828
|
+
fD[53]=3; fMms[53]=0; fMmm[53]=-2; fF[53]=0; coeffs[53]=-340; coeffc[53]=0;
|
829
|
+
fD[54]=4; fMms[54]=0; fMmm[54]=-3; fF[54]=0; coeffs[54]=330; coeffc[54]=0;
|
830
|
+
fD[55]=2; fMms[55]=-1; fMmm[55]=2; fF[55]=0; coeffs[55]=327; coeffc[55]=0;
|
831
|
+
fD[56]=0; fMms[56]=2; fMmm[56]=1; fF[56]=0; coeffs[56]=-323; coeffc[56]=1165;
|
832
|
+
fD[57]=1; fMms[57]=1; fMmm[57]=-1; fF[57]=0; coeffs[57]=299; coeffc[57]=0;
|
833
|
+
fD[58]=2; fMms[58]=0; fMmm[58]=3; fF[58]=0; coeffs[58]=294; coeffc[58]=0;
|
834
|
+
fD[59]=2; fMms[59]=0; fMmm[59]=-1; fF[59]=-2; coeffs[59]=0; coeffc[59]=8752;
|
835
|
+
|
836
|
+
//Latitude
|
837
|
+
fD2 = new Array(60);
|
838
|
+
fMms2= new Array(60);
|
839
|
+
fMmm2 = new Array(60);
|
840
|
+
fF2 = new Array(60);
|
841
|
+
coeffs2 = new Array(60);
|
842
|
+
|
843
|
+
fD2[0]=0; fMms2[0]=0; fMmm2[0]=0; fF2[0]=1; coeffs2[0]=5128122;
|
844
|
+
fD2[1]=0; fMms2[1]=0; fMmm2[1]=1; fF2[1]=1; coeffs2[1]=280602;
|
845
|
+
fD2[2]=0; fMms2[2]=0; fMmm2[2]=1; fF2[2]=-1; coeffs2[2]=277693;
|
846
|
+
fD2[3]=2; fMms2[3]=0; fMmm2[3]=0; fF2[3]=-1; coeffs2[3]=173237;
|
847
|
+
fD2[4]=2; fMms2[4]=0; fMmm2[4]=-1; fF2[4]=1; coeffs2[4]=55413;
|
848
|
+
fD2[5]=2; fMms2[5]=0; fMmm2[5]=-1; fF2[5]=-1; coeffs2[5]=46271;
|
849
|
+
fD2[6]=2; fMms2[6]=0; fMmm2[6]=0; fF2[6]=1; coeffs2[6]=32573;
|
850
|
+
fD2[7]=0; fMms2[7]=0; fMmm2[7]=2; fF2[7]=1; coeffs2[7]=17198;
|
851
|
+
fD2[8]=2; fMms2[8]=0; fMmm2[8]=1; fF2[8]=-1; coeffs2[8]=9266;
|
852
|
+
fD2[9]=0; fMms2[9]=0; fMmm2[9]=2; fF2[9]=-1; coeffs2[9]=8822;
|
853
|
+
|
854
|
+
fD2[10]=2; fMms2[10]=-1; fMmm2[10]=0; fF2[10]=-1; coeffs2[10]=8216;
|
855
|
+
fD2[11]=2; fMms2[11]=0; fMmm2[11]=-2; fF2[11]=-1; coeffs2[11]=4324;
|
856
|
+
fD2[12]=2; fMms2[12]=0; fMmm2[12]=1; fF2[12]=1; coeffs2[12]=4200;
|
857
|
+
fD2[13]=2; fMms2[13]=1; fMmm2[13]=0; fF2[13]=-1; coeffs2[13]=-3359;
|
858
|
+
fD2[14]=2; fMms2[14]=-1; fMmm2[14]=-1; fF2[14]=1; coeffs2[14]=2463;
|
859
|
+
fD2[15]=2; fMms2[15]=-1; fMmm2[15]=0; fF2[15]=1; coeffs2[15]=2211;
|
860
|
+
fD2[16]=2; fMms2[16]=-1; fMmm2[16]=-1; fF2[16]=-1; coeffs2[16]=2065;
|
861
|
+
fD2[17]=0; fMms2[17]=1; fMmm2[17]=-1; fF2[17]=-1; coeffs2[17]=-1870;
|
862
|
+
fD2[18]=4; fMms2[18]=0; fMmm2[18]=-1; fF2[18]=-1; coeffs2[18]=1828;
|
863
|
+
fD2[19]=0; fMms2[19]=1; fMmm2[19]=0; fF2[19]=1; coeffs2[19]=-1794;
|
864
|
+
|
865
|
+
fD2[20]=0; fMms2[20]=0; fMmm2[20]=0; fF2[20]=3; coeffs2[20]=-1749;
|
866
|
+
fD2[21]=0; fMms2[21]=1; fMmm2[21]=-1; fF2[21]=1; coeffs2[21]=-1565;
|
867
|
+
fD2[22]=1; fMms2[22]=0; fMmm2[22]=0; fF2[22]=1; coeffs2[22]=-1491;
|
868
|
+
fD2[23]=0; fMms2[23]=1; fMmm2[23]=1; fF2[23]=1; coeffs2[23]=-1475;
|
869
|
+
fD2[24]=0; fMms2[24]=1; fMmm2[24]=1; fF2[24]=-1; coeffs2[24]=-1410;
|
870
|
+
fD2[25]=0; fMms2[25]=1; fMmm2[25]=0; fF2[25]=-1; coeffs2[25]=-1344;
|
871
|
+
fD2[26]=1; fMms2[26]=0; fMmm2[26]=0; fF2[26]=-1; coeffs2[26]=-1335;
|
872
|
+
fD2[27]=0; fMms2[27]=0; fMmm2[27]=3; fF2[27]=1; coeffs2[27]=1107;
|
873
|
+
fD2[28]=4; fMms2[28]=0; fMmm2[28]=0; fF2[28]=-1; coeffs2[28]=1021;
|
874
|
+
fD2[29]=4; fMms2[29]=0; fMmm2[29]=-1; fF2[29]=1; coeffs2[29]=833;
|
875
|
+
|
876
|
+
fD2[30]=0; fMms2[30]=0; fMmm2[30]=1; fF2[30]=-3; coeffs2[30]=777;
|
877
|
+
fD2[31]=4; fMms2[31]=0; fMmm2[31]=-2; fF2[31]=1; coeffs2[31]=671;
|
878
|
+
fD2[32]=2; fMms2[32]=0; fMmm2[32]=0; fF2[32]=-3; coeffs2[32]=607;
|
879
|
+
fD2[33]=2; fMms2[33]=0; fMmm2[33]=2; fF2[33]=-1; coeffs2[33]=596;
|
880
|
+
fD2[34]=2; fMms2[34]=-1; fMmm2[34]=1; fF2[34]=-1; coeffs2[34]=491;
|
881
|
+
fD2[35]=2; fMms2[35]=0; fMmm2[35]=-2; fF2[35]=1; coeffs2[35]=-451;
|
882
|
+
fD2[36]=0; fMms2[36]=0; fMmm2[36]=3; fF2[36]=-1; coeffs2[36]=439;
|
883
|
+
fD2[37]=2; fMms2[37]=0; fMmm2[37]=2; fF2[37]=1; coeffs2[37]=422;
|
884
|
+
fD2[38]=2; fMms2[38]=0; fMmm2[38]=-3; fF2[38]=-1; coeffs2[38]=421;
|
885
|
+
fD2[39]=2; fMms2[39]=1; fMmm2[39]=-1; fF2[39]=1; coeffs2[39]=-366;
|
886
|
+
|
887
|
+
fD2[40]=2; fMms2[40]=1; fMmm2[40]=0; fF2[40]=1; coeffs2[40]=-351;
|
888
|
+
fD2[41]=4; fMms2[41]=0; fMmm2[41]=0; fF2[41]=1; coeffs2[41]=331;
|
889
|
+
fD2[42]=2; fMms2[42]=-1; fMmm2[42]=1; fF2[42]=1; coeffs2[42]=315;
|
890
|
+
fD2[43]=2; fMms2[43]=-2; fMmm2[43]=0; fF2[43]=-1; coeffs2[43]=302;
|
891
|
+
fD2[44]=0; fMms2[44]=0; fMmm2[44]=1; fF2[44]=3; coeffs2[44]=-283;
|
892
|
+
fD2[45]=2; fMms2[45]=1; fMmm2[45]=1; fF2[45]=-1; coeffs2[45]=-229;
|
893
|
+
fD2[46]=1; fMms2[46]=1; fMmm2[46]=0; fF2[46]=-1; coeffs2[46]=223;
|
894
|
+
fD2[47]=1; fMms2[47]=1; fMmm2[47]=0; fF2[47]=1; coeffs2[47]=223;
|
895
|
+
fD2[48]=0; fMms2[48]=1; fMmm2[48]=-2; fF2[48]=-1; coeffs2[48]=-220;
|
896
|
+
fD2[49]=2; fMms2[49]=1; fMmm2[49]=-1; fF2[49]=-1; coeffs2[49]=-220;
|
897
|
+
|
898
|
+
fD2[50]=1; fMms2[50]=0; fMmm2[50]=1; fF2[50]=1; coeffs2[50]=-185;
|
899
|
+
fD2[51]=2; fMms2[51]=-1; fMmm2[51]=-2; fF2[51]=-1; coeffs2[51]=181;
|
900
|
+
fD2[52]=0; fMms2[52]=1; fMmm2[52]=2; fF2[52]=1; coeffs2[52]=-177;
|
901
|
+
fD2[53]=4; fMms2[53]=0; fMmm2[53]=-2; fF2[53]=-1; coeffs2[53]=176;
|
902
|
+
fD2[54]=4; fMms2[54]=-1; fMmm2[54]=-1; fF2[54]=-1; coeffs2[54]=166;
|
903
|
+
fD2[55]=1; fMms2[55]=0; fMmm2[55]=1; fF2[55]=-1; coeffs2[55]=-164;
|
904
|
+
fD2[56]=4; fMms2[56]=0; fMmm2[56]=1; fF2[56]=-1; coeffs2[56]=132;
|
905
|
+
fD2[57]=1; fMms2[57]=0; fMmm2[57]=-1; fF2[57]=-1; coeffs2[57]=-119;
|
906
|
+
fD2[58]=4; fMms2[58]=-1; fMmm2[58]=0; fF2[58]=-1; coeffs2[58]=115;
|
907
|
+
fD2[59]=2; fMms2[59]=-2; fMmm2[59]=0; fF2[59]=1; coeffs2[59]=107;
|
908
|
+
|
909
|
+
|
910
|
+
var sumL = 0; var sumr = 0; var sumB = 0;
|
911
|
+
|
912
|
+
for (x=0; x<60; x++)
|
913
|
+
{
|
914
|
+
var f = 1;
|
915
|
+
if(abs(fMms[x])==1) f=fE;
|
916
|
+
if(abs(fMms[x])==2) f=fE2;
|
917
|
+
sumL += f*(coeffs[x]*sind(fD[x]*D+fMms[x]*Msun_mean+fMmm[x]*Mmoon_mean+fF[x]*F));
|
918
|
+
sumr += f*(coeffc[x]*cosd(fD[x]*D+fMms[x]*Msun_mean+fMmm[x]*Mmoon_mean+fF[x]*F));
|
919
|
+
f = 1;
|
920
|
+
if(abs(fMms2[x])==1) f=fE;
|
921
|
+
if(abs(fMms2[x])==2) f=fE2;
|
922
|
+
sumB += f*(coeffs2[x]*sind(fD2[x]*D+fMms2[x]*Msun_mean+fMmm2[x]*Mmoon_mean+fF2[x]*F));
|
923
|
+
}
|
924
|
+
|
925
|
+
//Corrections
|
926
|
+
sumL = sumL+3958*sind(A1)+1962*sind(Lmoon_mean-F)+318*sind(A2);
|
927
|
+
sumB = sumB-2235*sind(Lmoon_mean)+382*sind(A3)+175*sind(A1-F)+175*sind(A1+F)+127*sind(Lmoon_mean-Mmoon_mean)-115*sind(Lmoon_mean+Mmoon_mean);
|
928
|
+
|
929
|
+
//Longitude of the moon
|
930
|
+
lambdaMm = norm_360_deg(Lmoon_mean+sumL/1000000);
|
931
|
+
|
932
|
+
//Latitude of the moon
|
933
|
+
betaM = sumB/1000000;
|
934
|
+
|
935
|
+
//Distance earth-moon
|
936
|
+
dEM = 385000.56+sumr/1000;
|
937
|
+
|
938
|
+
//Apparent longitude of the moon
|
939
|
+
lambdaMapp = lambdaMm+delta_psi;
|
940
|
+
|
941
|
+
//Right ascension of the moon, apparent
|
942
|
+
RAmoon = norm_360_deg(atan2((sind(lambdaMapp)*cosd(eps)-tand(betaM)*sind(eps)),cosd(lambdaMapp))/dtr);
|
943
|
+
|
944
|
+
//Sidereal hour angle of the moon, apparent
|
945
|
+
SHAmoon = 360-RAmoon;
|
946
|
+
|
947
|
+
//Declination of the moon
|
948
|
+
DECmoon = asin(sind(betaM)*cosd(eps)+cosd(betaM)*sind(eps)*sind(lambdaMapp))/dtr;
|
949
|
+
Dmoon = DECmoon;
|
950
|
+
|
951
|
+
//GHA of the moon
|
952
|
+
GHAmoon = norm_360_deg(GHAAtrue-RAmoon);
|
953
|
+
|
954
|
+
//Horizontal parallax of the moon
|
955
|
+
HPmoon = 3600*asin(6378.14/dEM)/dtr;
|
956
|
+
|
957
|
+
//Semidiameter of the moon
|
958
|
+
SDmoon = 3600*asin(1738/dEM)/dtr;
|
959
|
+
|
960
|
+
//Geocentric angular distance between moon and sun
|
961
|
+
LDist = acos(sind(Dmoon)*sind(Dsun)+cosd(Dmoon)*cosd(Dsun)*cosd(RAmoon-RAsun))/dtr;
|
962
|
+
|
963
|
+
//Phase of the moon
|
964
|
+
var i = lambdaMapp-lambda;
|
965
|
+
k = 100*(1-cosd(i))/2;
|
966
|
+
k = round(10*k)/10;
|
967
|
+
}
|
968
|
+
}
|
969
|
+
|
970
|
+
|
971
|
+
//Ephemerides of Polaris
|
972
|
+
function Polaris()
|
973
|
+
{
|
974
|
+
//Equatorial coordinates of Polaris at 2000.0 (mean equinox and equator 2000.0)
|
975
|
+
var RApol0 = 37.95293333;
|
976
|
+
var DECpol0 = 89.26408889;
|
977
|
+
|
978
|
+
//Proper motion per year
|
979
|
+
var dRApol = 2.98155/3600;
|
980
|
+
var dDECpol = -0.0152/3600;
|
981
|
+
|
982
|
+
//Equatorial coordinates at Julian Date T (mean equinox and equator 2000.0)
|
983
|
+
var RApol1 = RApol0+100*TE*dRApol;
|
984
|
+
var DECpol1 = DECpol0+100*TE*dDECpol;
|
985
|
+
|
986
|
+
//Mean obliquity of ecliptic at 2000.0 in degrees
|
987
|
+
var eps0_2000 = 23.439291111;
|
988
|
+
|
989
|
+
//Transformation to ecliptic coordinates in radians (mean equinox and equator 2000.0)
|
990
|
+
with(Math)
|
991
|
+
{
|
992
|
+
var lambdapol1 = atan2((sind(RApol1)*cosd(eps0_2000)+tand(DECpol1)*sind(eps0_2000)),cosd(RApol1));
|
993
|
+
var betapol1 = asin(sind(DECpol1)*cosd(eps0_2000)-cosd(DECpol1)*sind(eps0_2000)*sind(RApol1));
|
994
|
+
}
|
995
|
+
|
996
|
+
//Precession
|
997
|
+
var eta = (47.0029*TE-0.03302*TE2+0.00006*TE3)*dtr/3600;
|
998
|
+
var PI0 = (174.876384-(869.8089*TE+0.03536*TE2)/3600)*dtr;
|
999
|
+
var p0 = (5029.0966*TE+1.11113*TE2-0.0000006*TE3)*dtr/3600;
|
1000
|
+
with(Math)
|
1001
|
+
{
|
1002
|
+
var A1 = cos(eta)*cos(betapol1)*sin(PI0-lambdapol1)-sin(eta)*sin(betapol1);
|
1003
|
+
var B1 = cos(betapol1)*cos(PI0-lambdapol1);
|
1004
|
+
var C1 = cos(eta)*sin(betapol1)+sin(eta)*cos(betapol1)*sin(PI0-lambdapol1);
|
1005
|
+
var lambdapol2 = p0+PI0-atan2(A1,B1);
|
1006
|
+
var betapol2 = asin(C1);
|
1007
|
+
}
|
1008
|
+
|
1009
|
+
//Nutation in longitude
|
1010
|
+
lambdapol2 += dtr*delta_psi;
|
1011
|
+
|
1012
|
+
//Aberration
|
1013
|
+
var kappa = dtr*20.49552/3600;
|
1014
|
+
pi0 = dtr*(102.93735+1.71953*TE+0.00046*TE2);
|
1015
|
+
var e = 0.016708617-0.000042037*TE-0.0000001236*TE2;
|
1016
|
+
with(Math)
|
1017
|
+
{
|
1018
|
+
dlambdapol = (e*kappa*cos(pi0-lambdapol2)-kappa*cos(dtr*Lsun_true-lambdapol2))/cos(betapol2);
|
1019
|
+
dbetapol = -kappa*sin(betapol2)*(sin(dtr*Lsun_true-lambdapol2)-e*sin(pi0-lambdapol2));
|
1020
|
+
}
|
1021
|
+
lambdapol2 += dlambdapol;
|
1022
|
+
betapol2 += dbetapol;
|
1023
|
+
|
1024
|
+
//Transformation back to equatorial coordinates in radians
|
1025
|
+
with(Math)
|
1026
|
+
{
|
1027
|
+
var RApol2 = atan2((sin(lambdapol2)*cosd(eps)-tan(betapol2)*sind(eps)),cos(lambdapol2));
|
1028
|
+
var DECpol2 = asin(sin(betapol2)*cosd(eps)+cos(betapol2)*sind(eps)*sin(lambdapol2));
|
1029
|
+
}
|
1030
|
+
|
1031
|
+
//Finals
|
1032
|
+
GHApol = GHAAtrue-RApol2/dtr;
|
1033
|
+
GHApol = norm_360_deg(GHApol);
|
1034
|
+
SHApol = 360-RApol2/dtr;
|
1035
|
+
SHApol = norm_360_deg(SHApol);
|
1036
|
+
DECpol = DECpol2/dtr;
|
1037
|
+
}
|
1038
|
+
|
1039
|
+
|
1040
|
+
//Calculation of the phase of the moon
|
1041
|
+
function MoonPhase()
|
1042
|
+
{
|
1043
|
+
var x = lambdaMapp-lambda;
|
1044
|
+
x = norm_360_deg(x);
|
1045
|
+
if(x>0 && x<180) quarter = " (+)";
|
1046
|
+
if(x>180 && x<360) quarter = " (-)";
|
1047
|
+
if (k==0) quarter = ", new";
|
1048
|
+
if (k==100) quarter = ", full";
|
1049
|
+
}
|
1050
|
+
|
1051
|
+
//Day of the week
|
1052
|
+
function Weekday()
|
1053
|
+
{
|
1054
|
+
JD0h += 1.5;
|
1055
|
+
var res = JD0h-7*Math.floor(JD0h/7);
|
1056
|
+
if (res == 0) DoW = " SUN";
|
1057
|
+
if (res == 1) DoW = " MON";
|
1058
|
+
if (res == 2) DoW = " TUE";
|
1059
|
+
if (res == 3) DoW = " WED";
|
1060
|
+
if (res == 4) DoW = " THU";
|
1061
|
+
if (res == 5) DoW = " FRI";
|
1062
|
+
if (res == 6) DoW = " SAT";
|
1063
|
+
}
|
1064
|
+
|
1065
|
+
// Data output
|
1066
|
+
function Output()
|
1067
|
+
{
|
1068
|
+
//Sun
|
1069
|
+
GHASun = OutHA(GHAsun);
|
1070
|
+
SHAsun = OutHA(SHAsun);
|
1071
|
+
DECSun = OutDec(DECsun);
|
1072
|
+
SDsun = OutSDHP(SDsun);
|
1073
|
+
HPsun = OutSDHP(HPsun);
|
1074
|
+
|
1075
|
+
//Moon
|
1076
|
+
GHAmoon = OutHA(GHAmoon);
|
1077
|
+
SHAmoon = OutHA(SHAmoon);
|
1078
|
+
DECmoon = OutDec(DECmoon);
|
1079
|
+
SDmoon = OutSDHP(SDmoon);
|
1080
|
+
HPmoon = OutSDHP(HPmoon);
|
1081
|
+
|
1082
|
+
//Aries
|
1083
|
+
AR = OutHA(GHAAtrue);
|
1084
|
+
|
1085
|
+
//Polaris
|
1086
|
+
GHApolaris = OutHA(GHApol);
|
1087
|
+
SHApolaris = OutHA(SHApol);
|
1088
|
+
DECpolaris = OutDec(DECpol);
|
1089
|
+
|
1090
|
+
//Obliquity of Ecliptic
|
1091
|
+
OoE = OutECL(eps0);
|
1092
|
+
tOoE = OutECL(eps);
|
1093
|
+
|
1094
|
+
with(Math)
|
1095
|
+
{
|
1096
|
+
//Equation of time
|
1097
|
+
if (Eot<0) var sign="-";
|
1098
|
+
else var sign="+";
|
1099
|
+
Eot = abs(Eot);
|
1100
|
+
var EOTmin = floor(Eot);
|
1101
|
+
var EOTsec = round(600*(Eot-EOTmin))/10;
|
1102
|
+
if (EOTsec-floor(EOTsec)==0) EOTsec+=".0";
|
1103
|
+
if (EOTmin==0) EOT = " "+sign+" "+EOTsec+"s";
|
1104
|
+
else EOT = " "+sign+" "+EOTmin+"m "+EOTsec+"s";
|
1105
|
+
Eot = sign+Eot;
|
1106
|
+
|
1107
|
+
//Illumination
|
1108
|
+
var illum=" "+k+"%"+quarter;
|
1109
|
+
|
1110
|
+
//Lunar Distance of Sun
|
1111
|
+
LDist = OutHA(LDist);
|
1112
|
+
}
|
1113
|
+
|
1114
|
+
with(document)
|
1115
|
+
{
|
1116
|
+
OutForm.SunMA.value = SunMA;
|
1117
|
+
OutForm.SunML.value = SunML;
|
1118
|
+
OutForm.SunRA.value = RAsun;
|
1119
|
+
OutForm.SunDEC.value = DECsun;
|
1120
|
+
OutForm.SunGHA.value = GHAsun;
|
1121
|
+
OutForm.HLon.value = Hlon;
|
1122
|
+
OutForm.GLon.value = Lsun_true;
|
1123
|
+
OutForm.HLat.value = Hlat;
|
1124
|
+
OutForm.GLat.value = Glat;
|
1125
|
+
OutForm.EOT.value = Eot;
|
1126
|
+
OutForm.SidTapp.value = GHAAtrue;
|
1127
|
+
OutForm.SidTmean.value = ARIESmean;
|
1128
|
+
OutForm.EoEquin.value = EoE;
|
1129
|
+
OutForm.dpsi.value = delta_psi;//Math.round(3600000*delta_psi)/1000+"''";
|
1130
|
+
OutForm.deps.value = delta_eps;//Math.round(3600000*delta_eps)/1000+"''";
|
1131
|
+
OutForm.obliq.value = eps0;
|
1132
|
+
OutForm.trueobliq.value = eps;
|
1133
|
+
OutForm.JulianDay.value = JD//" "+Math.round(1000000*JD)/1000000;
|
1134
|
+
OutForm.JulianEphemDay.value = JDE//" "+Math.round(1000000*JDE)/1000000;
|
1135
|
+
OutForm.LunarDist.value = " "+LDist;
|
1136
|
+
OutForm.DayOfWeek.value = " "+DoW;
|
1137
|
+
}
|
1138
|
+
}
|
1139
|
+
|
1140
|
+
</script>
|
1141
|
+
</head>
|
1142
|
+
|
1143
|
+
<body bgcolor="#eeeeee">
|
1144
|
+
<p><font color="#500000" size="4"> LONG-TERM ALMANAC FOR SUN, MOON, AND POLARIS V1.11</font>
|
1145
|
+
<br>
|
1146
|
+
<font color="#500000" size="3"> <i>Copyright © 2001−2016 Henning Umland</i></font></p>
|
1147
|
+
|
1148
|
+
<form name="InForm">
|
1149
|
+
<thead>
|
1150
|
+
<tr>
|
1151
|
+
<th><font color="#000080" size="4"><b> Date: </b></font></th>
|
1152
|
+
<td> </td>
|
1153
|
+
<td> </td>
|
1154
|
+
<td> </td>
|
1155
|
+
<td> </td>
|
1156
|
+
<td> </td>
|
1157
|
+
<td> </td>
|
1158
|
+
<td> </td>
|
1159
|
+
<th><font color="#000080" size="4"><b>Time (UT1): </b></font></th>
|
1160
|
+
</tr>
|
1161
|
+
</thead>
|
1162
|
+
<table border="0">
|
1163
|
+
<tbody>
|
1164
|
+
<tr>
|
1165
|
+
<th align="center"><font color="#000080" size="4">y</b></font></th>
|
1166
|
+
<td><input size="4" name="year"></td>
|
1167
|
+
<th align="center">m</th>
|
1168
|
+
<td><input size="2" name="month"></td>
|
1169
|
+
<th align="center">d</th>
|
1170
|
+
<td><input size="2" name="day"></td>
|
1171
|
+
<td> </td>
|
1172
|
+
<th align="center">h</th>
|
1173
|
+
<td><input size="2" name="hour"></td>
|
1174
|
+
<th align="center">m</th>
|
1175
|
+
<td><input size="2" name="minute"></td>
|
1176
|
+
<th align="center"><font color="#000080" size="4">s</b></font></th>
|
1177
|
+
<td><input size="8" name="second"></td>
|
1178
|
+
<td> </td>
|
1179
|
+
<td><font color="#000080" size="4"><b> ΔT: </b></font></td>
|
1180
|
+
<td><input size="3" name="delta"></td>
|
1181
|
+
<td> </td>
|
1182
|
+
<td><input onclick="Main()" value="Calculate" type="button"> </td>
|
1183
|
+
<td><input value="Clear" type="reset"></td>
|
1184
|
+
</tr>
|
1185
|
+
|
1186
|
+
<tr>
|
1187
|
+
<td colspan="15">---------------------------------------------------------------------------------------------------------------------</td>
|
1188
|
+
</tr>
|
1189
|
+
</tbody>
|
1190
|
+
</table>
|
1191
|
+
</form>
|
1192
|
+
|
1193
|
+
<form name="OutForm">
|
1194
|
+
<table border="0" cellspacing="4">
|
1195
|
+
<tbody>
|
1196
|
+
<tr>
|
1197
|
+
<td> </td>
|
1198
|
+
<td align="center">mean anomaly</td>
|
1199
|
+
<td></td>
|
1200
|
+
<td align="center">mean longitude</td>
|
1201
|
+
<td></td>
|
1202
|
+
<td align="center">RA</td>
|
1203
|
+
<td></td>
|
1204
|
+
<td align="center">DEC</td>
|
1205
|
+
<td></td>
|
1206
|
+
<td align="center">GHA</td>
|
1207
|
+
<td></td>
|
1208
|
+
</tr>
|
1209
|
+
<tr>
|
1210
|
+
<td><font color="#500000" size="4"><b>Sun </b></font></td>
|
1211
|
+
<td><input size="20" name="SunMA"></td>
|
1212
|
+
<td></td>
|
1213
|
+
<td><input size="20" name="SunML"></td>
|
1214
|
+
<td></td>
|
1215
|
+
<td><input size="20" name="SunRA"></td>
|
1216
|
+
<td></td>
|
1217
|
+
<td><input size="20" name="SunDEC"></td>
|
1218
|
+
<td></td>
|
1219
|
+
<td><input size="20" name="SunGHA"></td>
|
1220
|
+
<td></td>
|
1221
|
+
</tr>
|
1222
|
+
<tr>
|
1223
|
+
<td colspan="12"></td>
|
1224
|
+
</tr>
|
1225
|
+
<tr>
|
1226
|
+
<td> </td>
|
1227
|
+
<td align="center">HLon</td>
|
1228
|
+
<td></td>
|
1229
|
+
<td align="center">GLon</td>
|
1230
|
+
<td></td>
|
1231
|
+
<td align="center">HLat</td>
|
1232
|
+
<td></td>
|
1233
|
+
<td align="center">GLat</td>
|
1234
|
+
<td></td>
|
1235
|
+
<td align="center">Equation of Time</td>
|
1236
|
+
</tr>
|
1237
|
+
<tr>
|
1238
|
+
<td></td>
|
1239
|
+
<td><input size="20" name="HLon"></td>
|
1240
|
+
<td></td>
|
1241
|
+
<td><input size="20" name="GLon"></td>
|
1242
|
+
<td></td>
|
1243
|
+
<td><input size="20" name="HLat"></td>
|
1244
|
+
<td></td>
|
1245
|
+
<td><input size="20" name="GLat"></td>
|
1246
|
+
<td></td>
|
1247
|
+
<td><input size="20" name="EOT"></td>
|
1248
|
+
</tr>
|
1249
|
+
<tr>
|
1250
|
+
<td colspan="12"></td>
|
1251
|
+
</tr>
|
1252
|
+
|
1253
|
+
<tr>
|
1254
|
+
<td colspan="12"></td>
|
1255
|
+
</tr>
|
1256
|
+
<tr>
|
1257
|
+
<td colspan="12"></td>
|
1258
|
+
</tr>
|
1259
|
+
<tr>
|
1260
|
+
<td colspan="12"></td>
|
1261
|
+
</tr>
|
1262
|
+
<tr><td></td></tr>
|
1263
|
+
<tr>
|
1264
|
+
<td> </td>
|
1265
|
+
<td align="center">GAST</td>
|
1266
|
+
<td></td>
|
1267
|
+
<td align="center">GMST</td>
|
1268
|
+
<td></td>
|
1269
|
+
<td align="center">Eq. of Equinoxes</td>
|
1270
|
+
<td></td>
|
1271
|
+
<td align="center">Δψ</td>
|
1272
|
+
<td></td>
|
1273
|
+
<td align="center">Δε</td>
|
1274
|
+
<td></td>
|
1275
|
+
<td align="center">Mean Obl. of Ecl.</td>
|
1276
|
+
</tr>
|
1277
|
+
<tr>
|
1278
|
+
<td><font color="#500000" size="4"><b>Misc.</b></font></td>
|
1279
|
+
<td><input size="20" name="SidTapp"></td>
|
1280
|
+
<td></td>
|
1281
|
+
<td><input size="20" name="SidTmean"></td>
|
1282
|
+
<td></td>
|
1283
|
+
<td><input size="20" name="EoEquin"></td>
|
1284
|
+
<td></td>
|
1285
|
+
<td><input size="20" name="dpsi"></td>
|
1286
|
+
<td></td>
|
1287
|
+
<td><input size="20" name="deps"></td>
|
1288
|
+
<td></td>
|
1289
|
+
<td><input size="20" name="obliq"></td>
|
1290
|
+
</tr>
|
1291
|
+
<tr>
|
1292
|
+
<td colspan="12"></td>
|
1293
|
+
</tr>
|
1294
|
+
<tr><td></td></tr>
|
1295
|
+
<tr>
|
1296
|
+
<td> </td>
|
1297
|
+
<td align="center">JD</td>
|
1298
|
+
<td></td>
|
1299
|
+
<td align="center">JDE</td>
|
1300
|
+
<td></td>
|
1301
|
+
<td align="center">Lunar Dist. of Sun</td>
|
1302
|
+
<td></td>
|
1303
|
+
<td align="center">Weekday</td>
|
1304
|
+
<td></td>
|
1305
|
+
<td align="center"></td>
|
1306
|
+
<td></td>
|
1307
|
+
<td align="center">True Obl. of Ecl.</td>
|
1308
|
+
</tr>
|
1309
|
+
<tr>
|
1310
|
+
<td> </td>
|
1311
|
+
<td><input size="20" name="JulianDay"></td>
|
1312
|
+
<td></td>
|
1313
|
+
<td><input size="20" name="JulianEphemDay"></td>
|
1314
|
+
<td></td>
|
1315
|
+
<td><input size="20" name="LunarDist"></td>
|
1316
|
+
<td></td>
|
1317
|
+
<td><input size="20" name="DayOfWeek"></td>
|
1318
|
+
<td></td>
|
1319
|
+
<td></td>
|
1320
|
+
<td></td>
|
1321
|
+
<td><input size="20" name="trueobliq"></td>
|
1322
|
+
</tr>
|
1323
|
+
</tbody>
|
1324
|
+
</table>
|
1325
|
+
</form>
|
1326
|
+
|
1327
|
+
<br><br>
|
1328
|
+
|
1329
|
+
<p align="justify"><b>Description:</b> <br>This computer almanac is based
|
1330
|
+
upon formulas published in <i>Astronomical Algorithms</i> by Jean Meeus.
|
1331
|
+
The program calculates Greenwich hour angle (GHA), sidereal hour angle
|
1332
|
+
(SHA), and declination (Dec) for sun, moon, and polaris.<br><br>
|
1333
|
+
Further, the following quantities are provided:<br><br>
|
1334
|
+
Greenwich hour angle of the vernal point (Aries)<br>
|
1335
|
+
Geocentric semidiameter (SD) and equatorial horizontal parallax (HP) for sun
|
1336
|
+
and moon<br>
|
1337
|
+
Equation of time<br>
|
1338
|
+
Phase of the moon (illuminated fraction of the moon's disk)<br>
|
1339
|
+
Greenwich apparent sidereal time (GAST)<br>
|
1340
|
+
Greenwich mean sidereal time (GMST)<br>
|
1341
|
+
Equation of the equinoxes (= GAST−GMST)<br>
|
1342
|
+
Nutation in longitude (Δψ)<br>
|
1343
|
+
Nutation in obliquity (Δε)<br>
|
1344
|
+
Mean obliquity of the ecliptic<br>
|
1345
|
+
True obliquity of the ecliptic (= mean obliquity + Δε)<br>
|
1346
|
+
Julian date (JD)<br>
|
1347
|
+
Julian ephemeris date (JDE)<br>
|
1348
|
+
Geocentric lunar distance of the sun (center-center)<br>
|
1349
|
+
Day of the week<br><br>
|
1350
|
+
The almanac can be used for many decades, provided the ΔT value (= TT−UT1)
|
1351
|
+
for the given date is known. An accuracy of approx. ±1s is sufficient for most
|
1352
|
+
applications. Errors in ΔT have a much greater influence on the coordinates
|
1353
|
+
of the moon than on the other results. ΔT is obtained through the following
|
1354
|
+
formula:<br><br>
|
1355
|
+
ΔT = 32.184s + (TAI−UTC) − DUT1 <br><br>
|
1356
|
+
Current values for TAI−UTC and DUT1 (= UT1−UTC) are published on the web site
|
1357
|
+
of the <a href="http://maia.usno.navy.mil/"><i>IERS Rapid Service / Prediction
|
1358
|
+
Center</i></a> (IERS Bulletin A). <br><br>Reliable long-term predictions for
|
1359
|
+
ΔT are not possible. Here are some ΔT values of the past:
|
1360
|
+
<br><br>
|
1361
|
+
1970.0: +40.2s<br>
|
1362
|
+
1975.0: +45.5s<br>
|
1363
|
+
1980.0: +50.5s<br>
|
1364
|
+
1985.0: +54.3s<br>
|
1365
|
+
1990.0: +56.9s<br>
|
1366
|
+
1995.0: +60.8s<br>
|
1367
|
+
2000.0: +63.8s<br>
|
1368
|
+
2005.0: +64.7s<br>
|
1369
|
+
2010.0: +66.1s<br>
|
1370
|
+
2015.0: +67.6s<br>
|
1371
|
+
2016.0: +68.1s<br><br>
|
1372
|
+
|
1373
|
+
The program regards any blank dialog box in the time input field as zero. A
|
1374
|
+
missing year, month, or day will result in an error message (program must be
|
1375
|
+
restarted). The number of the year must be entered in 4-digit format.<br><br>
|
1376
|
+
A "(+)" behind the value for the illuminated fraction of the moon's disk
|
1377
|
+
indicates a waxing moon, a "(−)" a waning moon.
|
1378
|
+
<br><br>
|
1379
|
+
SHA and GHA<sub>Aries</sub> refer to the true equinox of date.<br><br>
|
1380
|
+
|
1381
|
+
</p><b>Accuracy (approximate values):</b><br>
|
1382
|
+
|
1383
|
+
<table border="0">
|
1384
|
+
<tbody>
|
1385
|
+
<tr>
|
1386
|
+
<td>GHA, SHA, and Dec of the sun: </td>
|
1387
|
+
<td>±1"</td>
|
1388
|
+
</tr>
|
1389
|
+
<tr>
|
1390
|
+
<td>GHA and SHA of the moon: </td>
|
1391
|
+
<td>±10"</td>
|
1392
|
+
</tr>
|
1393
|
+
<tr>
|
1394
|
+
<td>Dec of the moon: </td>
|
1395
|
+
<td>±5"</td>
|
1396
|
+
</tr>
|
1397
|
+
<tr>
|
1398
|
+
<td>GHA and SHA of Polaris: </td>
|
1399
|
+
<td>±2"</td>
|
1400
|
+
</tr>
|
1401
|
+
<tr>
|
1402
|
+
<td>Dec of Polaris: </td>
|
1403
|
+
<td>±1"</td>
|
1404
|
+
</tr>
|
1405
|
+
<tr>
|
1406
|
+
<td>GHA Aries: </td>
|
1407
|
+
<td>±1"</td>
|
1408
|
+
</tr>
|
1409
|
+
<tr>
|
1410
|
+
<td>HP and SD: </td>
|
1411
|
+
<td>±0.1"</td>
|
1412
|
+
</tr>
|
1413
|
+
<tr>
|
1414
|
+
<td>Equation of Time: </td>
|
1415
|
+
<td>±0.1s</td>
|
1416
|
+
</tr>
|
1417
|
+
<tr>
|
1418
|
+
<td>GAST, GMST, and Equation of Equinoxes: </td>
|
1419
|
+
<td>±0.001s</td>
|
1420
|
+
</tr>
|
1421
|
+
<tr>
|
1422
|
+
<td>Nutation (Δψ and Δε): </td>
|
1423
|
+
<td>±0.001"</td>
|
1424
|
+
</tr>
|
1425
|
+
<tr>
|
1426
|
+
<td>Mean Obliquity of the Ecliptic: </td>
|
1427
|
+
<td>±0.001"</td>
|
1428
|
+
</tr>
|
1429
|
+
<tr>
|
1430
|
+
<td>Lunar distance of sun: </td>
|
1431
|
+
<td>±10"</td>
|
1432
|
+
</tr>
|
1433
|
+
</tbody>
|
1434
|
+
</table>
|
1435
|
+
|
1436
|
+
<br><br>
|
1437
|
+
|
1438
|
+
<hr>
|
1439
|
+
<p align="justify">LICENSE<br><br>
|
1440
|
+
This program is free software: you can redistribute it and/or modify
|
1441
|
+
it under the terms of the GNU General Public License as published by the Free Software
|
1442
|
+
Foundation, either version 3 of the license or any later version.<br><br>
|
1443
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
1444
|
+
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
1445
|
+
See the GNU General Public License
|
1446
|
+
(<a href="http://www.celnav.de/index.htm">http://www.gnu.org/licenses/</a>) for more details.
|
1447
|
+
<br><br>
|
1448
|
+
Henning Umland N 53° 20' 34'' E 9° 52' 00''
|
1449
|
+
<br><br>
|
1450
|
+
Check this web site for updated versions:
|
1451
|
+
<a href="http://www.celnav.de/index.htm">http://www.celnav.de/index.htm</a></p>
|
1452
|
+
<hr>
|
1453
|
+
|
1454
|
+
|
1455
|
+
|
1456
|
+
</body></html>
|