1 | throw new Error("Description for built in functions. Must not be included!");
|
---|
2 | /**
|
---|
3 | * @fileOverview
|
---|
4 | * Documentation of Moon class built into dimctrl.
|
---|
5 | */
|
---|
6 |
|
---|
7 | /**
|
---|
8 | * @class
|
---|
9 | *
|
---|
10 | * Calculates the moon's sky position at a given time.
|
---|
11 | *
|
---|
12 | * When instantiated, the class members are set to the sky position
|
---|
13 | * of the moon at the given time. The calculation is done using
|
---|
14 | * libnova's ln_get_lunar_equ_coords. A different time can be provided
|
---|
15 | * by the user. The sky coordinates are stored together with the time.
|
---|
16 | * A function is provided to convert the moon's position to celestial
|
---|
17 | * coordinates. A function to calculate the illuminated fraction of
|
---|
18 | * the moon's disk.
|
---|
19 | *
|
---|
20 | * @param {Date} [time=new Date()]
|
---|
21 | * Reference time for the calculation of the moon's position.
|
---|
22 | *
|
---|
23 | * @example
|
---|
24 | * var moon = new Moon();
|
---|
25 | * var local = moon.toLocal();
|
---|
26 | *
|
---|
27 | * @author <a href="mailto:thomas.bretz@epfl.ch">Thomas Bretz</a>
|
---|
28 | */
|
---|
29 | function Moon(time)
|
---|
30 | {
|
---|
31 | /**
|
---|
32 | * Right ascension of the moon in hours.
|
---|
33 | *
|
---|
34 | * @type Number
|
---|
35 | * @constant
|
---|
36 | *
|
---|
37 | */
|
---|
38 | this.ra = 0;
|
---|
39 |
|
---|
40 | /**
|
---|
41 | * Declination of the moon in degrees.
|
---|
42 | *
|
---|
43 | * @type Number
|
---|
44 | * @constant
|
---|
45 | *
|
---|
46 | */
|
---|
47 | this.dec = 0;
|
---|
48 |
|
---|
49 | /**
|
---|
50 | * Time corresponding to the calculated sky coordinates of the moon.
|
---|
51 | *
|
---|
52 | * @type Date
|
---|
53 | * @constant
|
---|
54 | */
|
---|
55 | this.time = time;
|
---|
56 |
|
---|
57 | /**
|
---|
58 | * Converts the moon's sky coordinates to celestial coordinates.
|
---|
59 | * As observatory location the FACT telescope is assumed. For the
|
---|
60 | * time, the time corresponding to the stored sky coordinates is used.
|
---|
61 | * The conversion is done using libnova's ln_get_hrz_from_equ.
|
---|
62 | *
|
---|
63 | * @returns {Local}
|
---|
64 | * A Local object with the converted coordinates and
|
---|
65 | * the corresponding time.
|
---|
66 | */
|
---|
67 | this.toLocal = function() { /* [native code] */ }
|
---|
68 | }
|
---|
69 |
|
---|
70 | /**
|
---|
71 | * Calculates the illuminated fraction of the moon's disk.
|
---|
72 | *
|
---|
73 | * Calculates the illuminated fraction of the moon's disk for the
|
---|
74 | * provided time. If no time is provided, the current system time
|
---|
75 | * is used. The calculation is done using libnova's ln_get_lunar_disk.
|
---|
76 | *
|
---|
77 | * @param {Date} [time=new Date()]
|
---|
78 | * Time for which the moon disk should be calculated. If no time is
|
---|
79 | * given, the current time is used.
|
---|
80 | *
|
---|
81 | * @type Number
|
---|
82 | *
|
---|
83 | * @returns
|
---|
84 | * The illuminated fraction of the moon's disk corresponding
|
---|
85 | * to the time argument
|
---|
86 | *
|
---|
87 | */
|
---|
88 | Moon.disk = function() { /* [native code] */ }
|
---|
89 |
|
---|
90 | /**
|
---|
91 | * Calculate moon rise, set and transit times.
|
---|
92 | *
|
---|
93 | * Calculates the moon rise and set time, above and below horizon,
|
---|
94 | * and the time of culmination (transit time) for the given time.
|
---|
95 | * The calculation is done using libnova's ln_get_lunar_rst and is
|
---|
96 | * always performed for the FACT site at La Palma.
|
---|
97 | *
|
---|
98 | * @param {Date} [time=new Date()]
|
---|
99 | * Date for which the times should be calculated. Note that the date
|
---|
100 | * is converted to UTC and the times are calculated such that the
|
---|
101 | * Date (yy/mm/dd) is identical for all returned values.
|
---|
102 | *
|
---|
103 | * @type {Object}
|
---|
104 | *
|
---|
105 | * @returns
|
---|
106 | * An object with the following properties is returned: time {Date}
|
---|
107 | * the provided time; rise, transit, set {Date} times of rise, set and
|
---|
108 | * transit; isUp {Boolean} whether the moon is above or below horizon
|
---|
109 | * at the provided time. If the moon does not rise or set, the properties
|
---|
110 | * rise, transit and set will be undefined.
|
---|
111 | *
|
---|
112 | * @example
|
---|
113 | * var date = new Date("2012-10-25 16:30 GMT"); // Date in UTC
|
---|
114 | * console.out(JSON.stringify(Moon.horizon(date));
|
---|
115 | */
|
---|
116 | Moon.horizon = function() { /* [native code] */ }
|
---|