| 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] */ }
|
|---|