Class: Astronoby::MoonPhasesPeriodicTerms
- Inherits:
-
Object
- Object
- Astronoby::MoonPhasesPeriodicTerms
- Defined in:
- lib/astronoby/astronomical_models/moon_phases_periodic_terms.rb
Instance Method Summary collapse
-
#additional_corrections ⇒ Float
Additional corrections.
-
#first_quarter_correction ⇒ Float
First quarter correction.
-
#full_moon_correction ⇒ Float
Full moon correction.
-
#initialize(julian_centuries:, time:, eccentricity_correction:, moon_mean_anomaly:, sun_mean_anomaly:, moon_argument_of_latitude:, longitude_of_the_ascending_node:) ⇒ MoonPhasesPeriodicTerms
constructor
A new instance of MoonPhasesPeriodicTerms.
-
#last_quarter_correction ⇒ Float
Last quarter correction.
-
#new_moon_correction ⇒ Float
New moon correction.
Constructor Details
#initialize(julian_centuries:, time:, eccentricity_correction:, moon_mean_anomaly:, sun_mean_anomaly:, moon_argument_of_latitude:, longitude_of_the_ascending_node:) ⇒ MoonPhasesPeriodicTerms
Returns a new instance of MoonPhasesPeriodicTerms.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/astronoby/astronomical_models/moon_phases_periodic_terms.rb', line 20 def initialize( julian_centuries:, time:, eccentricity_correction:, moon_mean_anomaly:, sun_mean_anomaly:, moon_argument_of_latitude:, longitude_of_the_ascending_node: ) @julian_centuries = julian_centuries @time = time @eccentricity_correction = eccentricity_correction @moon_mean_anomaly = moon_mean_anomaly @sun_mean_anomaly = sun_mean_anomaly @moon_argument_of_latitude = moon_argument_of_latitude @longitude_of_the_ascending_node = longitude_of_the_ascending_node end |
Instance Method Details
#additional_corrections ⇒ Float
Returns Additional corrections.
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/astronoby/astronomical_models/moon_phases_periodic_terms.rb', line 122 def additional_corrections [ [0.000325, a1], [0.000165, a2], [0.000164, a3], [0.000126, a4], [0.000110, a5], [0.000062, a6], [0.000060, a7], [0.000056, a8], [0.000047, a9], [0.000042, a10], [0.000040, a11], [0.000037, a12], [0.000035, a13], [0.000023, a14] ].map { _1.first * _1.last.sin }.sum end |
#first_quarter_correction ⇒ Float
Returns First quarter correction.
76 77 78 |
# File 'lib/astronoby/astronomical_models/moon_phases_periodic_terms.rb', line 76 def first_quarter_correction first_and_last_quarter_correction + first_and_last_quarter_final_correction end |
#full_moon_correction ⇒ Float
Returns Full moon correction.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/astronoby/astronomical_models/moon_phases_periodic_terms.rb', line 81 def full_moon_correction ecc = @eccentricity_correction mma = @moon_mean_anomaly.radians sma = @sun_mean_anomaly.radians maol = @moon_argument_of_latitude.radians lotan = @longitude_of_the_ascending_node.radians [ [-0.40614, mma], [0.17302 * ecc, sma], [0.01614, 2 * mma], [0.01043, 2 * maol], [0.00734 * ecc, mma - sma], [-0.00515 * ecc, mma + sma], [0.00209 * ecc * ecc, 2 * sma], [-0.00111, mma - 2 * maol], [-0.00057, mma + 2 * maol], [0.00056 * ecc, 2 * mma + sma], [-0.00042, 3 * mma], [0.00042 * ecc, sma + 2 * maol], [0.00038 * ecc, sma - 2 * maol], [-0.00024 * ecc, 2 * mma - sma], [-0.00017, lotan], [-0.00007, mma + 2 * sma], [0.00004, 2 * mma - 2 * maol], [0.00004, 3 * sma], [0.00003, mma + sma - 2 * maol], [0.00003, 2 * mma + 2 * maol], [-0.00003, mma + sma + 2 * maol], [0.00003, mma - sma + 2 * maol], [-0.00002, mma - sma - 2 * maol], [-0.00002, 3 * mma + sma], [0.00002, 4 * mma] ].map { _1.first * Math.sin(_1.last) }.sum end |
#last_quarter_correction ⇒ Float
Returns Last quarter correction.
117 118 119 |
# File 'lib/astronoby/astronomical_models/moon_phases_periodic_terms.rb', line 117 def last_quarter_correction first_and_last_quarter_correction - first_and_last_quarter_final_correction end |
#new_moon_correction ⇒ Float
Returns New moon correction.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/astronoby/astronomical_models/moon_phases_periodic_terms.rb', line 40 def new_moon_correction ecc = @eccentricity_correction mma = @moon_mean_anomaly.radians sma = @sun_mean_anomaly.radians maol = @moon_argument_of_latitude.radians lotan = @longitude_of_the_ascending_node.radians [ [-0.40720, mma], [0.17241 * ecc, sma], [0.01608, 2 * mma], [0.01039, 2 * maol], [0.00739 * ecc, mma - sma], [-0.00514 * ecc, mma + sma], [0.00208 * ecc * ecc, 2 * sma], [-0.00111, mma - 2 * maol], [-0.00057, mma + 2 * maol], [0.00056 * ecc, 2 * mma + sma], [-0.00042, 3 * mma], [0.00042 * ecc, sma + 2 * maol], [0.00038 * ecc, sma - 2 * maol], [-0.00024 * ecc, 2 * mma - sma], [-0.00017, lotan], [-0.00007, mma + 2 * sma], [0.00004, 2 * mma - 2 * maol], [0.00004, 3 * sma], [0.00003, mma + sma - 2 * maol], [0.00003, 2 * mma + 2 * maol], [-0.00003, mma + sma + 2 * maol], [0.00003, mma - sma + 2 * maol], [-0.00002, mma - sma - 2 * maol], [-0.00002, 3 * mma + sma], [0.00002, 4 * mma] ].map { _1.first * Math.sin(_1.last) }.sum end |