ootk 2.0.1 → 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 +51 -33
  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 +4 -4
  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
@@ -33,7 +33,7 @@
33
33
  * You should have received a copy of the GNU Affero General Public License along with
34
34
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
35
35
  */
36
- import { Radians } from '../ootk';
36
+ import { Degrees, Radians } from '../ootk';
37
37
  type MoonIlluminationData = {
38
38
  fraction: number;
39
39
  phase: {
@@ -71,19 +71,7 @@ type MoonIlluminationData = {
71
71
  };
72
72
  };
73
73
  export declare class MoonMath {
74
- static moonCoords(d: any): {
75
- ra: Radians;
76
- dec: Radians;
77
- dist: number;
78
- };
79
- static hoursLater(date: Date, h: number): Date;
80
- static getMoonPosition(date: any, lat: any, lon: any): {
81
- az: Radians;
82
- el: Radians;
83
- rng: number;
84
- parallacticAngle: number;
85
- };
86
- private static moonCycles;
74
+ private static moonCycles_;
87
75
  /**
88
76
  * calculations for illumination parameters of the moon,
89
77
  * based on http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mphase.pro formulas and
@@ -92,15 +80,21 @@ export declare class MoonMath {
92
80
  * @return {MoonIlluminationData} result object of moon-illumination
93
81
  */
94
82
  static getMoonIllumination(date: number | Date): MoonIlluminationData;
83
+ static getMoonPosition(date: Date, lat: Degrees, lon: Degrees): {
84
+ az: Radians;
85
+ el: Radians;
86
+ rng: number;
87
+ parallacticAngle: number;
88
+ };
95
89
  /**
96
90
  * calculations for moon rise/set times are based on http://www.stargazing.net/kepler/moonrise.html article
97
91
  * @param {number|Date} dateValue Date object or timestamp for calculating moon-times
98
- * @param {number} lat latitude for calculating moon-times
99
- * @param {number} lon longitude for calculating moon-times
92
+ * @param {Degrees} lat latitude for calculating moon-times
93
+ * @param {Degrees} lon longitude for calculating moon-times
100
94
  * @param {boolean} [isUtc] defines if the calculation should be in utc or local time (default is local)
101
95
  * @return {IMoonTimes} result object of sunTime
102
96
  */
103
- static getMoonTimes(dateValue: Date, lat: Radians, lon: Radians, isUtc?: boolean): {
97
+ static getMoonTimes(dateValue: number | Date, lat: Degrees, lon: Degrees, isUtc?: boolean): {
104
98
  rise: any;
105
99
  set: any;
106
100
  ye: any;
@@ -108,6 +102,12 @@ export declare class MoonMath {
108
102
  alwaysDown: any;
109
103
  highest: any;
110
104
  };
111
- private static calculateRiseSetTimes;
105
+ static hoursLater(date: Date, h: number): Date;
106
+ static moonCoords(d: any): {
107
+ ra: Radians;
108
+ dec: Radians;
109
+ dist: number;
110
+ };
111
+ private static calculateRiseSetTimes_;
112
112
  }
113
113
  export {};
@@ -33,46 +33,12 @@
33
33
  * You should have received a copy of the GNU Affero General Public License along with
34
34
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
35
35
  */
36
- import { DEG2RAD } from './constants';
37
36
  import { MS_PER_DAY } from '../utils/constants';
37
+ import { DEG2RAD } from './constants';
38
38
  import { SunMath } from './sun-math';
39
39
  var MoonMath = /** @class */ (function () {
40
40
  function MoonMath() {
41
41
  }
42
- MoonMath.moonCoords = function (d) {
43
- // geocentric ecliptic coordinates of the moon
44
- var L = DEG2RAD * (218.316 + 13.176396 * d); // ecliptic longitude
45
- var M = DEG2RAD * (134.963 + 13.064993 * d); // mean anomaly
46
- var F = DEG2RAD * (93.272 + 13.22935 * d); // mean distance
47
- var l = L + DEG2RAD * 6.289 * Math.sin(M); // longitude
48
- var b = DEG2RAD * 5.128 * Math.sin(F); // latitude
49
- var dt = 385001 - 20905 * Math.cos(M); // distance to the moon in km
50
- return {
51
- ra: SunMath.rightAscension(l, b),
52
- dec: SunMath.declination(l, b),
53
- dist: dt,
54
- };
55
- };
56
- MoonMath.hoursLater = function (date, h) {
57
- return new Date(date.getTime() + (h * MS_PER_DAY) / 24);
58
- };
59
- MoonMath.getMoonPosition = function (date, lat, lon) {
60
- var lw = (DEG2RAD * -lon);
61
- var phi = (DEG2RAD * lat);
62
- var d = SunMath.date2jSince2000(date);
63
- var c = MoonMath.moonCoords(d);
64
- var H = SunMath.siderealTime(d, lw) - c.ra;
65
- var h = SunMath.elevation(H, phi, c.dec);
66
- // formula 14.1 of "Astronomical Algorithms" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.
67
- var pa = Math.atan2(Math.sin(H), Math.tan(phi) * Math.cos(c.dec) - Math.sin(c.dec) * Math.cos(H));
68
- h = (h + SunMath.astroRefraction(h)); // altitude correction for refraction
69
- return {
70
- az: SunMath.azimuth(H, phi, c.dec),
71
- el: h,
72
- rng: c.dist,
73
- parallacticAngle: pa,
74
- };
75
- };
76
42
  /**
77
43
  * calculations for illumination parameters of the moon,
78
44
  * based on http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mphase.pro formulas and
@@ -122,8 +88,8 @@ var MoonMath = /** @class */ (function () {
122
88
  var next = Math.min(nextNewMoon, nextFirstQuarter, nextFullMoon, nextThirdQuarter);
123
89
  // eslint-disable-next-line init-declarations
124
90
  var phase;
125
- for (var index = 0; index < MoonMath.moonCycles.length; index++) {
126
- var element = MoonMath.moonCycles[index];
91
+ for (var index = 0; index < MoonMath.moonCycles_.length; index++) {
92
+ var element = MoonMath.moonCycles_[index];
127
93
  if (phaseValue >= element.from && phaseValue <= element.to) {
128
94
  phase = element;
129
95
  break;
@@ -170,11 +136,28 @@ var MoonMath = /** @class */ (function () {
170
136
  },
171
137
  };
172
138
  };
139
+ MoonMath.getMoonPosition = function (date, lat, lon) {
140
+ var lw = (DEG2RAD * -lon);
141
+ var phi = (DEG2RAD * lat);
142
+ var d = SunMath.date2jSince2000(date);
143
+ var c = MoonMath.moonCoords(d);
144
+ var H = SunMath.siderealTime(d, lw) - c.ra;
145
+ var h = SunMath.elevation(H, phi, c.dec);
146
+ // formula 14.1 of "Astronomical Algorithms" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.
147
+ var pa = Math.atan2(Math.sin(H), Math.tan(phi) * Math.cos(c.dec) - Math.sin(c.dec) * Math.cos(H));
148
+ h = (h + SunMath.astroRefraction(h)); // altitude correction for refraction
149
+ return {
150
+ az: SunMath.azimuth(H, phi, c.dec),
151
+ el: h,
152
+ rng: c.dist,
153
+ parallacticAngle: pa,
154
+ };
155
+ };
173
156
  /**
174
157
  * calculations for moon rise/set times are based on http://www.stargazing.net/kepler/moonrise.html article
175
158
  * @param {number|Date} dateValue Date object or timestamp for calculating moon-times
176
- * @param {number} lat latitude for calculating moon-times
177
- * @param {number} lon longitude for calculating moon-times
159
+ * @param {Degrees} lat latitude for calculating moon-times
160
+ * @param {Degrees} lon longitude for calculating moon-times
178
161
  * @param {boolean} [isUtc] defines if the calculation should be in utc or local time (default is local)
179
162
  * @return {IMoonTimes} result object of sunTime
180
163
  */
@@ -187,7 +170,7 @@ var MoonMath = /** @class */ (function () {
187
170
  else {
188
171
  t.setHours(0, 0, 0, 0);
189
172
  }
190
- var _a = MoonMath.calculateRiseSetTimes(t, lat, lon), rise = _a.rise, set = _a.set, ye = _a.ye;
173
+ var _a = MoonMath.calculateRiseSetTimes_(t, lat, lon), rise = _a.rise, set = _a.set, ye = _a.ye;
191
174
  var result = {
192
175
  rise: null,
193
176
  set: null,
@@ -197,13 +180,13 @@ var MoonMath = /** @class */ (function () {
197
180
  highest: null,
198
181
  };
199
182
  if (rise) {
200
- result.rise = new Date(MoonMath.hoursLater(dateValue, rise));
183
+ result.rise = new Date(MoonMath.hoursLater(t, rise));
201
184
  }
202
185
  else {
203
186
  result.rise = NaN;
204
187
  }
205
188
  if (set) {
206
- result.set = new Date(MoonMath.hoursLater(dateValue, set));
189
+ result.set = new Date(MoonMath.hoursLater(t, set));
207
190
  }
208
191
  else {
209
192
  result.set = NaN;
@@ -221,7 +204,7 @@ var MoonMath = /** @class */ (function () {
221
204
  else if (rise && set) {
222
205
  result.alwaysUp = false;
223
206
  result.alwaysDown = false;
224
- result.highest = new Date(MoonMath.hoursLater(dateValue, Math.min(rise, set) + Math.abs(set - rise) / 2));
207
+ result.highest = new Date(MoonMath.hoursLater(t, Math.min(rise, set) + Math.abs(set - rise) / 2));
225
208
  }
226
209
  else {
227
210
  result.alwaysUp = false;
@@ -229,8 +212,25 @@ var MoonMath = /** @class */ (function () {
229
212
  }
230
213
  return result;
231
214
  };
215
+ MoonMath.hoursLater = function (date, h) {
216
+ return new Date(date.getTime() + (h * MS_PER_DAY) / 24);
217
+ };
218
+ MoonMath.moonCoords = function (d) {
219
+ // geocentric ecliptic coordinates of the moon
220
+ var L = DEG2RAD * (218.316 + 13.176396 * d); // ecliptic longitude
221
+ var M = DEG2RAD * (134.963 + 13.064993 * d); // mean anomaly
222
+ var F = DEG2RAD * (93.272 + 13.22935 * d); // mean distance
223
+ var l = L + DEG2RAD * 6.289 * Math.sin(M); // longitude
224
+ var b = DEG2RAD * 5.128 * Math.sin(F); // latitude
225
+ var dt = 385001 - 20905 * Math.cos(M); // distance to the moon in km
226
+ return {
227
+ ra: SunMath.rightAscension(l, b),
228
+ dec: SunMath.declination(l, b),
229
+ dist: dt,
230
+ };
231
+ };
232
232
  // eslint-disable-next-line max-statements
233
- MoonMath.calculateRiseSetTimes = function (t, lat, lon) {
233
+ MoonMath.calculateRiseSetTimes_ = function (t, lat, lon) {
234
234
  var hc = 0.133 * DEG2RAD;
235
235
  var h0 = MoonMath.getMoonPosition(t, lat, lon).el - hc;
236
236
  var h1 = 0;
@@ -289,7 +289,7 @@ var MoonMath = /** @class */ (function () {
289
289
  }
290
290
  return { rise: rise, set: set, ye: ye };
291
291
  };
292
- MoonMath.moonCycles = [
292
+ MoonMath.moonCycles_ = [
293
293
  {
294
294
  from: 0,
295
295
  to: 0.033863193308711,
@@ -1 +1 @@
1
- {"version":3,"file":"moon-math.js","sourceRoot":"","sources":["../../src/utils/moon-math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"moon-math.js","sourceRoot":"","sources":["../../src/utils/moon-math.ts"],"names":[],"mappings":"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"}
@@ -33,33 +33,36 @@
33
33
  * You should have received a copy of the GNU Affero General Public License along with
34
34
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
35
35
  */
36
- import { AzEl, Meters, SunTime } from '../types/types';
37
36
  import { Degrees, Radians } from '../ootk';
37
+ import { AzEl, Meters, SunTime } from '../types/types';
38
38
  export declare class SunMath {
39
- private static readonly J1970;
40
- private static readonly J2000;
41
- private static readonly J0;
42
- private static readonly e;
43
- private static times;
44
- private static julianCycle;
39
+ private static readonly J0_;
40
+ private static readonly J1970_;
41
+ private static readonly J2000_;
42
+ private static readonly e_;
43
+ private static times_;
45
44
  /**
46
- * calculates the obderver angle
47
- * @param {number} alt the observer altitude (in meters) relative to the horizon
48
- * @returns {Degrees} height for further calculations
45
+ * approx transit
46
+ * @param {number} Ht - hourAngle
47
+ * @param {number} lw - rad * -lng
48
+ * @param {number} n - Julian cycle
49
+ * @returns {number} approx transit
49
50
  */
50
- private static observerAngle;
51
+ static approxTransit(Ht: number, lw: number, n: number): number;
51
52
  /**
52
- * get solar mean anomaly
53
- * @param {number} d - julian day
54
- * @returns {number} solar mean anomaly
53
+ * get astro refraction
54
+ * @param {Radians} h - elevation
55
+ * @returns {number} refraction
55
56
  */
56
- private static solarMeanAnomaly;
57
+ static astroRefraction(h: Radians): Radians;
57
58
  /**
58
- * convert Julian calendar to date object
59
- * @param {number} julian day number in Julian calendar to convert
60
- * @return {number} result date as timestamp
59
+ * get azimuth
60
+ * @param {number} H - siderealTime
61
+ * @param {Radians} phi - latitude
62
+ * @param {Radians} dec - The declination of the sun
63
+ * @returns {Radians} azimuth in rad
61
64
  */
62
- static julian2date(julian: number): Date;
65
+ static azimuth(H: number, phi: Radians, dec: Radians): Radians;
63
66
  /**
64
67
  * get number of days for a dateValue since 2000
65
68
  *
@@ -69,13 +72,6 @@ export declare class SunMath {
69
72
  * @return {number} count of days
70
73
  */
71
74
  static date2jSince2000(date: Date): number;
72
- /**
73
- * get right ascension
74
- * @param {number} l - ecliptic longitude
75
- * @param {number} b - ecliptic latitude
76
- * @returns {number} right ascension
77
- */
78
- static rightAscension(l: number, b: number): Radians;
79
75
  /**
80
76
  * get declination
81
77
  * @param {number} l - ecliptic longitude
@@ -84,13 +80,17 @@ export declare class SunMath {
84
80
  */
85
81
  static declination(l: number, b: number): Radians;
86
82
  /**
87
- * get azimuth
88
- * @param {number} H - siderealTime
89
- * @param {Radians} phi - latitude
90
- * @param {Radians} dec - The declination of the sun
91
- * @returns {Radians} azimuth in rad
83
+ * ecliptic latitude
84
+ * @param {number} B - ?
85
+ * @returns {number} ecliptic latitude
92
86
  */
93
- static azimuth(H: number, phi: Radians, dec: Radians): Radians;
87
+ static eclipticLatitude(B: number): number;
88
+ /**
89
+ * ecliptic longitude
90
+ * @param {number} M - solar mean anomaly
91
+ * @returns {number} ecliptic longitude
92
+ */
93
+ static eclipticLongitude(M: number): Radians;
94
94
  /**
95
95
  * get elevation (sometimes called altitude)
96
96
  * @param {number} H - siderealTime
@@ -100,30 +100,70 @@ export declare class SunMath {
100
100
  */
101
101
  static elevation(H: number, phi: Radians, dec: Radians): Radians;
102
102
  /**
103
- * side real time
104
- * @param {number} d - julian day
105
- * @param {Radians} lw - longitude of the observer
106
- * @returns {number} sidereal time
103
+ * returns set time for the given sun altitude
104
+ * @param {number} h - heigh at 0
105
+ * @param {number} lw - rad * -lng
106
+ * @param {number} phi - rad * lat;
107
+ * @param {number} dec - declination
108
+ * @param {number} n - Julian cycle
109
+ * @param {number} M - solar mean anomal
110
+ * @param {number} L - ecliptic longitude
111
+ * @returns {number} set time
107
112
  */
108
- static siderealTime(d: number, lw: Radians): number;
113
+ static getSetJulian(h: Meters, lw: number, phi: number, dec: number, n: number, M: number, L: number): number;
109
114
  /**
110
- * get astro refraction
111
- * @param {Radians} h - elevation
112
- * @returns {number} refraction
115
+ * Convert Date to Solar Date/Time
116
+ *
117
+ * Based on https://www.pveducation.org/pvcdrom/properties-of-sunlight/solar-time
118
+ *
119
+ * See: https://github.com/mourner/suncalc/pull/156
120
+ *
121
+ * @param {date} date - Date to calculate for
122
+ * @param {number} utcOffset - UTC offset in hours
123
+ * @param {Degrees} lon - Longitude in degrees
124
+ * @returns {Date} - Date Object in Solar Time
113
125
  */
114
- static astroRefraction(h: Radians): Radians;
126
+ static getSolarTime(date: Date, utcOffset: number, lon: number): Date;
127
+ static getStarAzEl(date: Date, lat: Degrees, lon: Degrees, ra: Radians, dec: Radians): AzEl;
128
+ static getSunAzEl(date: Date, lat: Degrees, lon: Degrees): AzEl;
129
+ static getSunRaDec(d: number): {
130
+ dec: Radians;
131
+ ra: Radians;
132
+ };
115
133
  /**
116
- * ecliptic longitude
117
- * @param {number} M - solar mean anomaly
118
- * @returns {number} ecliptic longitude
134
+ * calculates time for a given azimuth angle for a given date and latitude/longitude
135
+ * @param {number|Date} dateValue Date object or timestamp for calculating sun-time
136
+ * @param {Degrees} lat latitude for calculating sun-time
137
+ * @param {Degrees} lon longitude for calculating sun-time
138
+ * @param {Radians | Degrees} az azimuth for calculating sun-time
139
+ * @param {boolean} [isDegrees] true if the az angle is in degree and not in rad
140
+ * @return {Date} result time of sun-time
119
141
  */
120
- static eclipticLongitude(M: number): Radians;
142
+ static getSunTimeByAzimuth(dateValue: any, lat: Degrees, lon: Degrees, az: Radians | Degrees, isDegrees?: boolean): Date;
121
143
  /**
122
- * ecliptic latitude
123
- * @param {number} B - ?
124
- * @returns {number} ecliptic latitude
144
+ * calculates sun times for a given date and latitude/longitude
145
+ * @param {Date|number} dateVal Date object for calculating sun-times
146
+ * @param {number} lat latitude for calculating sun-times
147
+ * @param {number} lon longitude for calculating sun-times
148
+ * @param {number} [alt=0] the observer height (in meters) relative to the horizon
149
+ * @param {boolean} [isUtc=false] defines if the calculation should be in utc or local time (default is local)
150
+ * @return {SunTime} result object of sunTime
125
151
  */
126
- static eclipticLatitude(B: number): number;
152
+ static getTimes(dateVal: Date, lat: Degrees, lon: Degrees, alt?: Meters, isUtc?: boolean): SunTime;
153
+ /**
154
+ * hour angle
155
+ * @param {number} h - heigh at 0
156
+ * @param {number} phi - rad * lat;
157
+ * @param {number} dec - declination
158
+ * @returns {number} hour angle
159
+ */
160
+ static hourAngle(h: number, phi: number, dec: number): number;
161
+ /**
162
+ * convert Julian calendar to date object
163
+ * @param {number} julian day number in Julian calendar to convert
164
+ * @return {number} result date as timestamp
165
+ */
166
+ static julian2date(julian: number): Date;
127
167
  /**
128
168
  * Julian cycle
129
169
  * @param {number} d - number of days
@@ -132,13 +172,19 @@ export declare class SunMath {
132
172
  */
133
173
  static julianCyle(d: number, lw: number): number;
134
174
  /**
135
- * approx transit
136
- * @param {number} Ht - hourAngle
137
- * @param {number} lw - rad * -lng
138
- * @param {number} n - Julian cycle
139
- * @returns {number} approx transit
175
+ * get right ascension
176
+ * @param {number} l - ecliptic longitude
177
+ * @param {number} b - ecliptic latitude
178
+ * @returns {number} right ascension
140
179
  */
141
- static approxTransit(Ht: number, lw: number, n: number): number;
180
+ static rightAscension(l: number, b: number): Radians;
181
+ /**
182
+ * side real time
183
+ * @param {number} d - julian day
184
+ * @param {Radians} lw - longitude of the observer
185
+ * @returns {number} sidereal time
186
+ */
187
+ static siderealTime(d: number, lw: Radians): number;
142
188
  /**
143
189
  * solar transit in Julian
144
190
  * @param {number} ds - approxTransit
@@ -147,26 +193,15 @@ export declare class SunMath {
147
193
  * @returns {number} solar transit in Julian
148
194
  */
149
195
  static solarTransitJulian(ds: number, M: number, L: number): number;
196
+ private static calculateJnoon_;
150
197
  /**
151
- * hour angle
152
- * @param {number} h - heigh at 0
153
- * @param {number} phi - rad * lat;
154
- * @param {number} dec - declination
155
- * @returns {number} hour angle
156
- */
157
- static hourAngle(h: number, phi: number, dec: number): number;
158
- /**
159
- * returns set time for the given sun altitude
160
- * @param {number} h - heigh at 0
161
- * @param {number} lw - rad * -lng
162
- * @param {number} phi - rad * lat;
163
- * @param {number} dec - declination
164
- * @param {number} n - Julian cycle
165
- * @param {number} M - solar mean anomal
166
- * @param {number} L - ecliptic longitude
167
- * @returns {number} set time
198
+ * get azimuth
199
+ * @param {number} H - siderealTime
200
+ * @param {Radians} phi - latitude
201
+ * @param {Radians} dec - The declination of the sun
202
+ * @returns {Radians} azimuth
168
203
  */
169
- static getSetJulian(h: Meters, lw: number, phi: number, dec: number, n: number, M: number, L: number): number;
204
+ private static getAzimuth_;
170
205
  /**
171
206
  * returns set time for the given sun altitude
172
207
  * @param {Meters} alt - altitude at 0
@@ -178,53 +213,18 @@ export declare class SunMath {
178
213
  * @param {number} L - ecliptic longitude
179
214
  * @return {J2000Value} sunset time in days since 2000
180
215
  */
181
- private static getSetJ;
216
+ private static getSetJ_;
217
+ private static julianCycle_;
182
218
  /**
183
- * calculates sun times for a given date and latitude/longitude
184
- * @param {Date|number} dateVal Date object for calculating sun-times
185
- * @param {number} lat latitude for calculating sun-times
186
- * @param {number} lon longitude for calculating sun-times
187
- * @param {number} [alt=0] the observer height (in meters) relative to the horizon
188
- * @param {boolean} [isUtc=false] defines if the calculation should be in utc or local time (default is local)
189
- * @return {SunTime} result object of sunTime
190
- */
191
- static getTimes(dateVal: Date, lat: Degrees, lon: Degrees, alt?: Meters, isUtc?: boolean): SunTime;
192
- private static calculateJnoon;
193
- /**
194
- * calculates time for a given azimuth angle for a given date and latitude/longitude
195
- * @param {number|Date} dateValue Date object or timestamp for calculating sun-time
196
- * @param {Degrees} lat latitude for calculating sun-time
197
- * @param {Degrees} lon longitude for calculating sun-time
198
- * @param {Radians | Degrees} az azimuth for calculating sun-time
199
- * @param {boolean} [isDegrees] true if the az angle is in degree and not in rad
200
- * @return {Date} result time of sun-time
201
- */
202
- static getSunTimeByAzimuth(dateValue: any, lat: Degrees, lon: Degrees, az: Radians | Degrees, isDegrees?: boolean): Date;
203
- /**
204
- * get azimuth
205
- * @param {number} H - siderealTime
206
- * @param {Radians} phi - latitude
207
- * @param {Radians} dec - The declination of the sun
208
- * @returns {Radians} azimuth
219
+ * calculates the obderver angle
220
+ * @param {number} alt the observer altitude (in meters) relative to the horizon
221
+ * @returns {Degrees} height for further calculations
209
222
  */
210
- private static getAzimuth;
223
+ private static observerAngle_;
211
224
  /**
212
- * Convert Date to Solar Date/Time
213
- *
214
- * Based on https://www.pveducation.org/pvcdrom/properties-of-sunlight/solar-time
215
- *
216
- * See: https://github.com/mourner/suncalc/pull/156
217
- *
218
- * @param {date} date - Date to calculate for
219
- * @param {number} utcOffset - UTC offset in hours
220
- * @param {Degrees} lon - Longitude in degrees
221
- * @returns {Date} - Date Object in Solar Time
225
+ * get solar mean anomaly
226
+ * @param {number} d - julian day
227
+ * @returns {number} solar mean anomaly
222
228
  */
223
- static getSolarTime(date: Date, utcOffset: number, lon: number): Date;
224
- static getStarAzEl(date: Date, lat: Degrees, lon: Degrees, ra: Radians, dec: Radians): AzEl;
225
- static getSunAzEl(date: Date, lat: Degrees, lon: Degrees): AzEl;
226
- static getSunRaDec(d: number): {
227
- dec: Radians;
228
- ra: Radians;
229
- };
229
+ private static solarMeanAnomaly_;
230
230
  }