ootk 2.0.0 → 3.0.0

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.
Files changed (62) hide show
  1. package/.eslintrc.json +4 -4
  2. package/.prettierrc +17 -0
  3. package/babel.config.js +16 -0
  4. package/dist/objects/detailed-sat.d.ts +3 -3
  5. package/dist/objects/sat.d.ts +4 -4
  6. package/dist/objects/sensor.d.ts +8 -2
  7. package/dist/objects/star.d.ts +8 -8
  8. package/dist/ootk.d.ts +0 -1
  9. package/dist/ootk.js +1 -1
  10. package/dist/sgp4/sgp4.d.ts +9 -9
  11. package/dist/tle/tle.d.ts +25 -24
  12. package/dist/transforms/transforms.d.ts +40 -1
  13. package/dist/types/types.d.ts +417 -92
  14. package/dist/utils/moon-math.d.ts +18 -18
  15. package/dist/utils/sun-math.d.ts +118 -118
  16. package/dist/utils/utils.d.ts +6 -6
  17. package/jest.config.ts +30 -0
  18. package/lib/objects/base-object.js +33 -63
  19. package/lib/objects/base-object.js.map +1 -1
  20. package/lib/objects/detailed-sat.d.ts +3 -3
  21. package/lib/objects/detailed-sat.js.map +1 -1
  22. package/lib/objects/sat.d.ts +4 -4
  23. package/lib/objects/sat.js +1 -1
  24. package/lib/objects/sat.js.map +1 -1
  25. package/lib/objects/sensor.d.ts +8 -2
  26. package/lib/objects/sensor.js +55 -37
  27. package/lib/objects/sensor.js.map +1 -1
  28. package/lib/objects/space-object.js.map +1 -1
  29. package/lib/objects/star.d.ts +8 -8
  30. package/lib/objects/star.js +5 -5
  31. package/lib/objects/star.js.map +1 -1
  32. package/lib/ootk.d.ts +0 -1
  33. package/lib/ootk.js +0 -1
  34. package/lib/ootk.js.map +1 -1
  35. package/lib/sgp4/sgp4.d.ts +9 -9
  36. package/lib/sgp4/sgp4.js +15 -27
  37. package/lib/sgp4/sgp4.js.map +1 -1
  38. package/lib/tle/tle.d.ts +25 -24
  39. package/lib/tle/tle.js +4 -4
  40. package/lib/tle/tle.js.map +1 -1
  41. package/lib/transforms/transforms.d.ts +40 -1
  42. package/lib/transforms/transforms.js +100 -1
  43. package/lib/transforms/transforms.js.map +1 -1
  44. package/lib/types/types.d.ts +417 -92
  45. package/lib/types/types.js +3 -1
  46. package/lib/types/types.js.map +1 -1
  47. package/lib/utils/moon-math.d.ts +18 -18
  48. package/lib/utils/moon-math.js +45 -45
  49. package/lib/utils/moon-math.js.map +1 -1
  50. package/lib/utils/sun-math.d.ts +118 -118
  51. package/lib/utils/sun-math.js +237 -237
  52. package/lib/utils/sun-math.js.map +1 -1
  53. package/lib/utils/utils.d.ts +6 -6
  54. package/lib/utils/utils.js +17 -15
  55. package/lib/utils/utils.js.map +1 -1
  56. package/package.json +19 -35
  57. package/tsconfig.base.json +31 -0
  58. package/tsconfig.build.json +14 -0
  59. package/dist/sgp4/Sgp4Assembly.d.ts +0 -5
  60. package/lib/sgp4/Sgp4Assembly.d.ts +0 -5
  61. package/lib/sgp4/Sgp4Assembly.js +0 -75
  62. package/lib/sgp4/Sgp4Assembly.js.map +0 -1
@@ -38,34 +38,36 @@ var TAU = Math.PI * 2; // https://tauday.com/tau-manifesto
38
38
  var SunMath = /** @class */ (function () {
39
39
  function SunMath() {
40
40
  }
41
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
- SunMath.julianCycle = function (d, lw) {
43
- var lonOffset = lw / TAU;
44
- return Math.round(d - SunMath.J0 - lonOffset);
45
- };
46
41
  /**
47
- * calculates the obderver angle
48
- * @param {number} alt the observer altitude (in meters) relative to the horizon
49
- * @returns {Degrees} height for further calculations
42
+ * approx transit
43
+ * @param {number} Ht - hourAngle
44
+ * @param {number} lw - rad * -lng
45
+ * @param {number} n - Julian cycle
46
+ * @returns {number} approx transit
50
47
  */
51
- SunMath.observerAngle = function (alt) {
52
- return ((-2.076 * Math.sqrt(alt)) / 60);
48
+ SunMath.approxTransit = function (Ht, lw, n) {
49
+ return SunMath.J0_ + (Ht + lw) / TAU + n;
53
50
  };
54
51
  /**
55
- * get solar mean anomaly
56
- * @param {number} d - julian day
57
- * @returns {number} solar mean anomaly
52
+ * get astro refraction
53
+ * @param {Radians} h - elevation
54
+ * @returns {number} refraction
58
55
  */
59
- SunMath.solarMeanAnomaly = function (d) {
60
- return DEG2RAD * (357.5291 + 0.98560028 * d);
56
+ SunMath.astroRefraction = function (h) {
57
+ if (h < 0) {
58
+ h = 0;
59
+ }
60
+ return (0.0002967 / Math.tan(h + 0.00312536 / (h + 0.08901179)));
61
61
  };
62
62
  /**
63
- * convert Julian calendar to date object
64
- * @param {number} julian day number in Julian calendar to convert
65
- * @return {number} result date as timestamp
63
+ * get azimuth
64
+ * @param {number} H - siderealTime
65
+ * @param {Radians} phi - latitude
66
+ * @param {Radians} dec - The declination of the sun
67
+ * @returns {Radians} azimuth in rad
66
68
  */
67
- SunMath.julian2date = function (julian) {
68
- return new Date((julian - SunMath.J1970) * MS_PER_DAY);
69
+ SunMath.azimuth = function (H, phi, dec) {
70
+ return (Math.PI + Math.atan2(Math.sin(H), Math.cos(H) * Math.sin(phi) - Math.tan(dec) * Math.cos(phi)));
69
71
  };
70
72
  /**
71
73
  * get number of days for a dateValue since 2000
@@ -76,16 +78,7 @@ var SunMath = /** @class */ (function () {
76
78
  * @return {number} count of days
77
79
  */
78
80
  SunMath.date2jSince2000 = function (date) {
79
- return date.getTime() / MS_PER_DAY + SunMath.J1970 - SunMath.J2000;
80
- };
81
- /**
82
- * get right ascension
83
- * @param {number} l - ecliptic longitude
84
- * @param {number} b - ecliptic latitude
85
- * @returns {number} right ascension
86
- */
87
- SunMath.rightAscension = function (l, b) {
88
- return Math.atan2(Math.sin(l) * Math.cos(SunMath.e) - Math.tan(b) * Math.sin(SunMath.e), Math.cos(l));
81
+ return date.getTime() / MS_PER_DAY + SunMath.J1970_ - SunMath.J2000_;
89
82
  };
90
83
  /**
91
84
  * get declination
@@ -94,57 +87,7 @@ var SunMath = /** @class */ (function () {
94
87
  * @returns {number} declination
95
88
  */
96
89
  SunMath.declination = function (l, b) {
97
- return Math.asin(Math.sin(b) * Math.cos(SunMath.e) + Math.cos(b) * Math.sin(SunMath.e) * Math.sin(l));
98
- };
99
- /**
100
- * get azimuth
101
- * @param {number} H - siderealTime
102
- * @param {Radians} phi - latitude
103
- * @param {Radians} dec - The declination of the sun
104
- * @returns {Radians} azimuth in rad
105
- */
106
- SunMath.azimuth = function (H, phi, dec) {
107
- return (Math.PI + Math.atan2(Math.sin(H), Math.cos(H) * Math.sin(phi) - Math.tan(dec) * Math.cos(phi)));
108
- };
109
- /**
110
- * get elevation (sometimes called altitude)
111
- * @param {number} H - siderealTime
112
- * @param {Radians} phi - latitude
113
- * @param {Radians} dec - The declination of the sun
114
- * @returns {Radians} elevation
115
- */
116
- SunMath.elevation = function (H, phi, dec) {
117
- return Math.asin(Math.sin(phi) * Math.sin(dec) + Math.cos(phi) * Math.cos(dec) * Math.cos(H));
118
- };
119
- /**
120
- * side real time
121
- * @param {number} d - julian day
122
- * @param {Radians} lw - longitude of the observer
123
- * @returns {number} sidereal time
124
- */
125
- SunMath.siderealTime = function (d, lw) {
126
- return DEG2RAD * (280.16 + 360.9856235 * d) - lw;
127
- };
128
- /**
129
- * get astro refraction
130
- * @param {Radians} h - elevation
131
- * @returns {number} refraction
132
- */
133
- SunMath.astroRefraction = function (h) {
134
- if (h < 0) {
135
- h = 0;
136
- }
137
- return (0.0002967 / Math.tan(h + 0.00312536 / (h + 0.08901179)));
138
- };
139
- /**
140
- * ecliptic longitude
141
- * @param {number} M - solar mean anomaly
142
- * @returns {number} ecliptic longitude
143
- */
144
- SunMath.eclipticLongitude = function (M) {
145
- var C = DEG2RAD * (1.9148 * Math.sin(M) + 0.02 * Math.sin(2 * M) + 0.0003 * Math.sin(3 * M));
146
- var P = DEG2RAD * 102.9372; // perihelion of Earth
147
- return (M + C + P + Math.PI); // Sun's mean longitude
90
+ return Math.asin(Math.sin(b) * Math.cos(SunMath.e_) + Math.cos(b) * Math.sin(SunMath.e_) * Math.sin(l));
148
91
  };
149
92
  /**
150
93
  * ecliptic latitude
@@ -157,43 +100,24 @@ var SunMath = /** @class */ (function () {
157
100
  return TAU * (L + 0.0003 * Math.sin(C * 2 * L));
158
101
  };
159
102
  /**
160
- * Julian cycle
161
- * @param {number} d - number of days
162
- * @param {number} lw - rad * -lng;
163
- * @returns {number} julian cycle
164
- */
165
- SunMath.julianCyle = function (d, lw) {
166
- return Math.round(d - SunMath.J0 - lw / ((2 * TAU) / 2));
167
- };
168
- /**
169
- * approx transit
170
- * @param {number} Ht - hourAngle
171
- * @param {number} lw - rad * -lng
172
- * @param {number} n - Julian cycle
173
- * @returns {number} approx transit
174
- */
175
- SunMath.approxTransit = function (Ht, lw, n) {
176
- return SunMath.J0 + (Ht + lw) / TAU + n;
177
- };
178
- /**
179
- * solar transit in Julian
180
- * @param {number} ds - approxTransit
181
- * @param {number} M - solar mean anomal
182
- * @param {number} L - ecliptic longitude
183
- * @returns {number} solar transit in Julian
103
+ * ecliptic longitude
104
+ * @param {number} M - solar mean anomaly
105
+ * @returns {number} ecliptic longitude
184
106
  */
185
- SunMath.solarTransitJulian = function (ds, M, L) {
186
- return SunMath.J2000 + ds + 0.0053 * Math.sin(M) - 0.0069 * Math.sin(2 * L);
107
+ SunMath.eclipticLongitude = function (M) {
108
+ var C = DEG2RAD * (1.9148 * Math.sin(M) + 0.02 * Math.sin(2 * M) + 0.0003 * Math.sin(3 * M));
109
+ var P = DEG2RAD * 102.9372; // perihelion of Earth
110
+ return (M + C + P + Math.PI); // Sun's mean longitude
187
111
  };
188
112
  /**
189
- * hour angle
190
- * @param {number} h - heigh at 0
191
- * @param {number} phi - rad * lat;
192
- * @param {number} dec - declination
193
- * @returns {number} hour angle
113
+ * get elevation (sometimes called altitude)
114
+ * @param {number} H - siderealTime
115
+ * @param {Radians} phi - latitude
116
+ * @param {Radians} dec - The declination of the sun
117
+ * @returns {Radians} elevation
194
118
  */
195
- SunMath.hourAngle = function (h, phi, dec) {
196
- return Math.acos((Math.sin(h) - Math.sin(phi) * Math.sin(dec)) / (Math.cos(phi) * Math.cos(dec)));
119
+ SunMath.elevation = function (H, phi, dec) {
120
+ return Math.asin(Math.sin(phi) * Math.sin(dec) + Math.cos(phi) * Math.cos(dec) * Math.cos(H));
197
121
  };
198
122
  /**
199
123
  * returns set time for the given sun altitude
@@ -212,20 +136,106 @@ var SunMath = /** @class */ (function () {
212
136
  return SunMath.solarTransitJulian(a, M, L);
213
137
  };
214
138
  /**
215
- * returns set time for the given sun altitude
216
- * @param {Meters} alt - altitude at 0
217
- * @param {Radians} lw - -lng
218
- * @param {Radians} phi - lat;
219
- * @param {Radians} dec - declination
220
- * @param {number} n - Julian cycle
221
- * @param {number} M - solar mean anomal
222
- * @param {number} L - ecliptic longitude
223
- * @return {J2000Value} sunset time in days since 2000
139
+ * Convert Date to Solar Date/Time
140
+ *
141
+ * Based on https://www.pveducation.org/pvcdrom/properties-of-sunlight/solar-time
142
+ *
143
+ * See: https://github.com/mourner/suncalc/pull/156
144
+ *
145
+ * @param {date} date - Date to calculate for
146
+ * @param {number} utcOffset - UTC offset in hours
147
+ * @param {Degrees} lon - Longitude in degrees
148
+ * @returns {Date} - Date Object in Solar Time
224
149
  */
225
- SunMath.getSetJ = function (alt, lw, phi, dec, n, M, L) {
226
- var w = SunMath.hourAngle(alt, phi, dec);
227
- var a = SunMath.approxTransit(w, lw, n);
228
- return SunMath.solarTransitJulian(a, M, L);
150
+ SunMath.getSolarTime = function (date, utcOffset, lon) {
151
+ // calculate the day of year
152
+ var start = new Date();
153
+ start.setUTCFullYear(date.getUTCFullYear(), 0, 1);
154
+ start.setUTCHours(0, 0, 0, 0);
155
+ var diff = date.getTime() - start.getTime();
156
+ var dayOfYear = Math.floor(diff / MS_PER_DAY);
157
+ var b = (360 / 365) * (dayOfYear - 81) * DEG2RAD;
158
+ var equationOfTime = 9.87 * Math.sin(2 * b) - 7.53 * Math.cos(b) - 1.5 * Math.sin(b);
159
+ var localSolarTimeMeridian = 15 * utcOffset;
160
+ var timeCorrection = equationOfTime + 4 * (lon - localSolarTimeMeridian);
161
+ return new Date(date.getTime() + timeCorrection * 60 * 1000);
162
+ };
163
+ SunMath.getStarAzEl = function (date, lat, lon, ra, dec) {
164
+ var lw = (-lon * DEG2RAD);
165
+ var phi = (lat * DEG2RAD);
166
+ var d = SunMath.date2jSince2000(date);
167
+ var H = SunMath.siderealTime(d, lw) - ra;
168
+ var el = SunMath.elevation(H, phi, dec);
169
+ var az = SunMath.azimuth(H, phi, dec);
170
+ el = (el + SunMath.astroRefraction(el)); // elevation correction for refraction
171
+ return {
172
+ az: az,
173
+ el: el,
174
+ };
175
+ };
176
+ SunMath.getSunAzEl = function (date, lat, lon) {
177
+ var lw = (-lon * DEG2RAD);
178
+ var phi = (lat * DEG2RAD);
179
+ var d = SunMath.date2jSince2000(date);
180
+ var c = SunMath.getSunRaDec(d);
181
+ var H = SunMath.siderealTime(d, lw) - c.ra;
182
+ return {
183
+ az: SunMath.azimuth(H, phi, c.dec),
184
+ el: SunMath.elevation(H, phi, c.dec),
185
+ };
186
+ };
187
+ SunMath.getSunRaDec = function (d) {
188
+ var M = SunMath.solarMeanAnomaly_(d);
189
+ var L = SunMath.eclipticLongitude(M);
190
+ return {
191
+ dec: SunMath.declination(L, 0),
192
+ ra: SunMath.rightAscension(L, 0),
193
+ };
194
+ };
195
+ /**
196
+ * calculates time for a given azimuth angle for a given date and latitude/longitude
197
+ * @param {number|Date} dateValue Date object or timestamp for calculating sun-time
198
+ * @param {Degrees} lat latitude for calculating sun-time
199
+ * @param {Degrees} lon longitude for calculating sun-time
200
+ * @param {Radians | Degrees} az azimuth for calculating sun-time
201
+ * @param {boolean} [isDegrees] true if the az angle is in degree and not in rad
202
+ * @return {Date} result time of sun-time
203
+ */
204
+ SunMath.getSunTimeByAzimuth = function (dateValue, lat, lon, az, isDegrees) {
205
+ if (isDegrees === void 0) { isDegrees = false; }
206
+ if (isNaN(az)) {
207
+ throw new Error('azimuth missing');
208
+ }
209
+ if (isNaN(lat)) {
210
+ throw new Error('latitude missing');
211
+ }
212
+ if (isNaN(lon)) {
213
+ throw new Error('longitude missing');
214
+ }
215
+ if (isDegrees) {
216
+ az = (az * DEG2RAD);
217
+ }
218
+ var date = new Date(dateValue);
219
+ var lw = (DEG2RAD * -lon);
220
+ var phi = (DEG2RAD * lat);
221
+ var dateVal = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime();
222
+ var addval = MS_PER_DAY; // / 2);
223
+ dateVal += addval;
224
+ while (addval > 200) {
225
+ // let nazi = this.getPosition(dateVal, lat, lng).azimuth;
226
+ var d = SunMath.date2jSince2000(new Date(dateVal));
227
+ var c = SunMath.getSunRaDec(d);
228
+ var H = SunMath.siderealTime(d, lw) - c.ra;
229
+ var newAz = SunMath.getAzimuth_(H, phi, c.dec);
230
+ addval /= 2;
231
+ if (newAz < az) {
232
+ dateVal += addval;
233
+ }
234
+ else {
235
+ dateVal -= addval;
236
+ }
237
+ }
238
+ return new Date(Math.floor(dateVal));
229
239
  };
230
240
  /**
231
241
  * calculates sun times for a given date and latitude/longitude
@@ -258,81 +268,91 @@ var SunMath = /** @class */ (function () {
258
268
  var h0 = 0;
259
269
  var Jset = 0;
260
270
  var Jrise = 0;
261
- var _a = SunMath.calculateJnoon(lon, lat, alt, date), Jnoon = _a.Jnoon, dh = _a.dh, lw = _a.lw, phi = _a.phi, dec = _a.dec, n = _a.n, M = _a.M, L = _a.L;
271
+ var _a = SunMath.calculateJnoon_(lon, lat, alt, date), Jnoon = _a.Jnoon, dh = _a.dh, lw = _a.lw, phi = _a.phi, dec = _a.dec, n = _a.n, M = _a.M, L = _a.L;
262
272
  // Determine when the sun is at its highest and lowest (darkest) points.
263
273
  var result = {
264
274
  solarNoon: SunMath.julian2date(Jnoon),
265
275
  nadir: SunMath.julian2date(Jnoon + 0.5), // https://github.com/mourner/suncalc/pull/125
266
276
  };
267
277
  // Add all other unique times using Jnoon as a reference
268
- for (i = 0, len = SunMath.times.length; i < len; i += 1) {
269
- time = SunMath.times[i];
278
+ for (i = 0, len = SunMath.times_.length; i < len; i += 1) {
279
+ time = SunMath.times_[i];
270
280
  h0 = ((time[0] + dh) * DEG2RAD);
271
- Jset = SunMath.getSetJ(h0, lw, phi, dec, n, M, L);
281
+ Jset = SunMath.getSetJ_(h0, lw, phi, dec, n, M, L);
272
282
  Jrise = Jnoon - (Jset - Jnoon);
273
283
  result[time[1]] = SunMath.julian2date(Jrise);
274
284
  result[time[2]] = SunMath.julian2date(Jset);
275
285
  }
276
286
  return result;
277
287
  };
278
- SunMath.calculateJnoon = function (lon, lat, alt, date) {
288
+ /**
289
+ * hour angle
290
+ * @param {number} h - heigh at 0
291
+ * @param {number} phi - rad * lat;
292
+ * @param {number} dec - declination
293
+ * @returns {number} hour angle
294
+ */
295
+ SunMath.hourAngle = function (h, phi, dec) {
296
+ return Math.acos((Math.sin(h) - Math.sin(phi) * Math.sin(dec)) / (Math.cos(phi) * Math.cos(dec)));
297
+ };
298
+ /**
299
+ * convert Julian calendar to date object
300
+ * @param {number} julian day number in Julian calendar to convert
301
+ * @return {number} result date as timestamp
302
+ */
303
+ SunMath.julian2date = function (julian) {
304
+ return new Date((julian - SunMath.J1970_) * MS_PER_DAY);
305
+ };
306
+ /**
307
+ * Julian cycle
308
+ * @param {number} d - number of days
309
+ * @param {number} lw - rad * -lng;
310
+ * @returns {number} julian cycle
311
+ */
312
+ SunMath.julianCyle = function (d, lw) {
313
+ return Math.round(d - SunMath.J0_ - lw / ((2 * TAU) / 2));
314
+ };
315
+ /**
316
+ * get right ascension
317
+ * @param {number} l - ecliptic longitude
318
+ * @param {number} b - ecliptic latitude
319
+ * @returns {number} right ascension
320
+ */
321
+ SunMath.rightAscension = function (l, b) {
322
+ return Math.atan2(Math.sin(l) * Math.cos(SunMath.e_) - Math.tan(b) * Math.sin(SunMath.e_), Math.cos(l));
323
+ };
324
+ /**
325
+ * side real time
326
+ * @param {number} d - julian day
327
+ * @param {Radians} lw - longitude of the observer
328
+ * @returns {number} sidereal time
329
+ */
330
+ SunMath.siderealTime = function (d, lw) {
331
+ return DEG2RAD * (280.16 + 360.9856235 * d) - lw;
332
+ };
333
+ /**
334
+ * solar transit in Julian
335
+ * @param {number} ds - approxTransit
336
+ * @param {number} M - solar mean anomal
337
+ * @param {number} L - ecliptic longitude
338
+ * @returns {number} solar transit in Julian
339
+ */
340
+ SunMath.solarTransitJulian = function (ds, M, L) {
341
+ return SunMath.J2000_ + ds + 0.0053 * Math.sin(M) - 0.0069 * Math.sin(2 * L);
342
+ };
343
+ SunMath.calculateJnoon_ = function (lon, lat, alt, date) {
279
344
  var lw = (DEG2RAD * -lon);
280
345
  var phi = (DEG2RAD * lat);
281
- var dh = SunMath.observerAngle(alt);
346
+ var dh = SunMath.observerAngle_(alt);
282
347
  var d = SunMath.date2jSince2000(date);
283
- var n = SunMath.julianCycle(d, lw);
348
+ var n = SunMath.julianCycle_(d, lw);
284
349
  var ds = SunMath.approxTransit(0, lw, n);
285
- var M = SunMath.solarMeanAnomaly(ds);
350
+ var M = SunMath.solarMeanAnomaly_(ds);
286
351
  var L = SunMath.eclipticLongitude(M);
287
352
  var dec = SunMath.declination(L, 0);
288
353
  var Jnoon = SunMath.solarTransitJulian(ds, M, L);
289
354
  return { Jnoon: Jnoon, dh: dh, lw: lw, phi: phi, dec: dec, n: n, M: M, L: L };
290
355
  };
291
- /**
292
- * calculates time for a given azimuth angle for a given date and latitude/longitude
293
- * @param {number|Date} dateValue Date object or timestamp for calculating sun-time
294
- * @param {Degrees} lat latitude for calculating sun-time
295
- * @param {Degrees} lon longitude for calculating sun-time
296
- * @param {Radians | Degrees} az azimuth for calculating sun-time
297
- * @param {boolean} [isDegrees] true if the az angle is in degree and not in rad
298
- * @return {Date} result time of sun-time
299
- */
300
- SunMath.getSunTimeByAzimuth = function (dateValue, lat, lon, az, isDegrees) {
301
- if (isDegrees === void 0) { isDegrees = false; }
302
- if (isNaN(az)) {
303
- throw new Error('azimuth missing');
304
- }
305
- if (isNaN(lat)) {
306
- throw new Error('latitude missing');
307
- }
308
- if (isNaN(lon)) {
309
- throw new Error('longitude missing');
310
- }
311
- if (isDegrees) {
312
- az = (az * DEG2RAD);
313
- }
314
- var date = new Date(dateValue);
315
- var lw = (DEG2RAD * -lon);
316
- var phi = (DEG2RAD * lat);
317
- var dateVal = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime();
318
- var addval = MS_PER_DAY; // / 2);
319
- dateVal += addval;
320
- while (addval > 200) {
321
- // let nazi = this.getPosition(dateVal, lat, lng).azimuth;
322
- var d = SunMath.date2jSince2000(new Date(dateVal));
323
- var c = SunMath.getSunRaDec(d);
324
- var H = SunMath.siderealTime(d, lw) - c.ra;
325
- var newAz = SunMath.getAzimuth(H, phi, c.dec);
326
- addval /= 2;
327
- if (newAz < az) {
328
- dateVal += addval;
329
- }
330
- else {
331
- dateVal -= addval;
332
- }
333
- }
334
- return new Date(Math.floor(dateVal));
335
- };
336
356
  /**
337
357
  * get azimuth
338
358
  * @param {number} H - siderealTime
@@ -340,71 +360,51 @@ var SunMath = /** @class */ (function () {
340
360
  * @param {Radians} dec - The declination of the sun
341
361
  * @returns {Radians} azimuth
342
362
  */
343
- SunMath.getAzimuth = function (H, phi, dec) {
363
+ SunMath.getAzimuth_ = function (H, phi, dec) {
344
364
  return Math.atan2(Math.sin(H), Math.cos(H) * Math.sin(phi) - Math.tan(dec) * Math.cos(phi)) + Math.PI;
345
365
  };
346
366
  /**
347
- * Convert Date to Solar Date/Time
348
- *
349
- * Based on https://www.pveducation.org/pvcdrom/properties-of-sunlight/solar-time
350
- *
351
- * See: https://github.com/mourner/suncalc/pull/156
352
- *
353
- * @param {date} date - Date to calculate for
354
- * @param {number} utcOffset - UTC offset in hours
355
- * @param {Degrees} lon - Longitude in degrees
356
- * @returns {Date} - Date Object in Solar Time
367
+ * returns set time for the given sun altitude
368
+ * @param {Meters} alt - altitude at 0
369
+ * @param {Radians} lw - -lng
370
+ * @param {Radians} phi - lat;
371
+ * @param {Radians} dec - declination
372
+ * @param {number} n - Julian cycle
373
+ * @param {number} M - solar mean anomal
374
+ * @param {number} L - ecliptic longitude
375
+ * @return {J2000Value} sunset time in days since 2000
357
376
  */
358
- SunMath.getSolarTime = function (date, utcOffset, lon) {
359
- // calculate the day of year
360
- var start = new Date();
361
- start.setUTCFullYear(date.getUTCFullYear(), 0, 1);
362
- start.setUTCHours(0, 0, 0, 0);
363
- var diff = date.getTime() - start.getTime();
364
- var dayOfYear = Math.floor(diff / MS_PER_DAY);
365
- var b = (360 / 365) * (dayOfYear - 81) * DEG2RAD;
366
- var equationOfTime = 9.87 * Math.sin(2 * b) - 7.53 * Math.cos(b) - 1.5 * Math.sin(b);
367
- var localSolarTimeMeridian = 15 * utcOffset;
368
- var timeCorrection = equationOfTime + 4 * (lon - localSolarTimeMeridian);
369
- return new Date(date.getTime() + timeCorrection * 60 * 1000);
377
+ SunMath.getSetJ_ = function (alt, lw, phi, dec, n, M, L) {
378
+ var w = SunMath.hourAngle(alt, phi, dec);
379
+ var a = SunMath.approxTransit(w, lw, n);
380
+ return SunMath.solarTransitJulian(a, M, L);
370
381
  };
371
- SunMath.getStarAzEl = function (date, lat, lon, ra, dec) {
372
- var lw = (-lon * DEG2RAD);
373
- var phi = (lat * DEG2RAD);
374
- var d = SunMath.date2jSince2000(date);
375
- var H = SunMath.siderealTime(d, lw) - ra;
376
- var el = SunMath.elevation(H, phi, dec);
377
- var az = SunMath.azimuth(H, phi, dec);
378
- el = (el + SunMath.astroRefraction(el)); // elevation correction for refraction
379
- return {
380
- az: az,
381
- el: el,
382
- };
382
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
383
+ SunMath.julianCycle_ = function (d, lw) {
384
+ var lonOffset = lw / TAU;
385
+ return Math.round(d - SunMath.J0_ - lonOffset);
383
386
  };
384
- SunMath.getSunAzEl = function (date, lat, lon) {
385
- var lw = (-lon * DEG2RAD);
386
- var phi = (lat * DEG2RAD);
387
- var d = SunMath.date2jSince2000(date);
388
- var c = SunMath.getSunRaDec(d);
389
- var H = SunMath.siderealTime(d, lw) - c.ra;
390
- return {
391
- az: SunMath.azimuth(H, phi, c.dec),
392
- el: SunMath.elevation(H, phi, c.dec),
393
- };
387
+ /**
388
+ * calculates the obderver angle
389
+ * @param {number} alt the observer altitude (in meters) relative to the horizon
390
+ * @returns {Degrees} height for further calculations
391
+ */
392
+ SunMath.observerAngle_ = function (alt) {
393
+ return ((-2.076 * Math.sqrt(alt)) / 60);
394
394
  };
395
- SunMath.getSunRaDec = function (d) {
396
- var M = SunMath.solarMeanAnomaly(d);
397
- var L = SunMath.eclipticLongitude(M);
398
- return {
399
- dec: SunMath.declination(L, 0),
400
- ra: SunMath.rightAscension(L, 0),
401
- };
395
+ /**
396
+ * get solar mean anomaly
397
+ * @param {number} d - julian day
398
+ * @returns {number} solar mean anomaly
399
+ */
400
+ SunMath.solarMeanAnomaly_ = function (d) {
401
+ return DEG2RAD * (357.5291 + 0.98560028 * d);
402
402
  };
403
- SunMath.J1970 = 2440587.5;
404
- SunMath.J2000 = 2451545;
405
- SunMath.J0 = 0.0009;
406
- SunMath.e = DEG2RAD * 23.4397;
407
- SunMath.times = [
403
+ SunMath.J0_ = 0.0009;
404
+ SunMath.J1970_ = 2440587.5;
405
+ SunMath.J2000_ = 2451545;
406
+ SunMath.e_ = DEG2RAD * 23.4397;
407
+ SunMath.times_ = [
408
408
  [6, 'goldenHourDawnEnd', 'goldenHourDuskStart'],
409
409
  [-0.3, 'sunriseEnd', 'sunsetStart'],
410
410
  [-0.833, 'sunriseStart', 'sunsetEnd'],
@@ -1 +1 @@
1
- {"version":3,"file":"sun-math.js","sourceRoot":"","sources":["../../src/utils/sun-math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sun-math.js","sourceRoot":"","sources":["../../src/utils/sun-math.ts"],"names":[],"mappings":"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"}
@@ -24,16 +24,16 @@ import { EciVec3, Kilometers } from '../types/types';
24
24
  import { MoonMath } from './moon-math';
25
25
  import { SunMath } from './sun-math';
26
26
  declare class Utils {
27
+ static MoonMath: typeof MoonMath;
28
+ static SunMath: typeof SunMath;
27
29
  static Types: typeof Types;
30
+ static jday: (year?: number, mon?: number, day?: number, hr?: number, minute?: number, sec?: number) => number;
31
+ static createVec(start: number, stop: number, step: number): number[];
28
32
  static distance(pos1: EciVec3, pos2: EciVec3): Kilometers;
29
- private static sign;
30
33
  static dopplerFactor(location: EciVec3, position: EciVec3, velocity: EciVec3): Kilometers;
31
- static createVec(start: number, stop: number, step: number): number[];
32
- static jday: (year?: number, mon?: number, day?: number, hr?: number, minute?: number, sec?: number) => number;
33
34
  static getDayOfYear(date: Date): number;
34
- private static isLeapYear;
35
35
  static roundToNDecimalPlaces(value: number, places: number): number;
36
- static SunMath: typeof SunMath;
37
- static MoonMath: typeof MoonMath;
36
+ private static isLeapYear_;
37
+ private static sign_;
38
38
  }
39
39
  export { Utils };