Class: Astronoby::LunarEclipseCalculator::Geometry
- Inherits:
-
Object
- Object
- Astronoby::LunarEclipseCalculator::Geometry
- Defined in:
- lib/astronoby/events/lunar_eclipse_calculator.rb
Overview
Geometry of the Sun, Moon and Earth’s shadow at one instant, in kilometres in the plane perpendicular to the shadow axis at the Moon’s distance.
Instance Attribute Summary collapse
-
#axis_distance ⇒ Float
readonly
Distance of the Moon’s centre from the shadow axis (km).
-
#gamma ⇒ Float
readonly
Signed distance from the shadow axis, in Earth radii.
-
#penumbra_radius ⇒ Float
readonly
Radius of the penumbra at the Moon’s distance (km).
-
#umbra_radius ⇒ Float
readonly
Radius of the umbra at the Moon’s distance (km).
Instance Method Summary collapse
-
#initialize(axis_distance:, umbra_radius:, penumbra_radius:, gamma:) ⇒ Geometry
constructor
A new instance of Geometry.
- #partial_contact_value ⇒ Object
- #penumbral_contact_value ⇒ Object
- #penumbral_magnitude ⇒ Object
- #total_contact_value ⇒ Object
- #umbral_magnitude ⇒ Object
Constructor Details
#initialize(axis_distance:, umbra_radius:, penumbra_radius:, gamma:) ⇒ Geometry
Returns a new instance of Geometry.
71 72 73 74 75 76 77 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 71 def initialize(axis_distance:, umbra_radius:, penumbra_radius:, gamma:) @axis_distance = axis_distance @umbra_radius = umbra_radius @penumbra_radius = penumbra_radius @gamma = gamma freeze end |
Instance Attribute Details
#axis_distance ⇒ Float (readonly)
Returns distance of the Moon’s centre from the shadow axis (km).
60 61 62 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 60 def axis_distance @axis_distance end |
#gamma ⇒ Float (readonly)
Returns signed distance from the shadow axis, in Earth radii.
69 70 71 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 69 def gamma @gamma end |
#penumbra_radius ⇒ Float (readonly)
Returns radius of the penumbra at the Moon’s distance (km).
66 67 68 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 66 def penumbra_radius @penumbra_radius end |
#umbra_radius ⇒ Float (readonly)
Returns radius of the umbra at the Moon’s distance (km).
63 64 65 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 63 def umbra_radius @umbra_radius end |
Instance Method Details
#partial_contact_value ⇒ Object
93 94 95 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 93 def partial_contact_value axis_distance - (umbra_radius + MOON_RADIUS_KM) end |
#penumbral_contact_value ⇒ Object
89 90 91 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 89 def penumbral_contact_value axis_distance - (penumbra_radius + MOON_RADIUS_KM) end |
#penumbral_magnitude ⇒ Object
83 84 85 86 87 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 83 def penumbral_magnitude ( penumbra_radius + MOON_RADIUS_KM - axis_distance ) / (2 * MOON_RADIUS_KM) end |
#total_contact_value ⇒ Object
97 98 99 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 97 def total_contact_value axis_distance - (umbra_radius - MOON_RADIUS_KM) end |
#umbral_magnitude ⇒ Object
79 80 81 |
# File 'lib/astronoby/events/lunar_eclipse_calculator.rb', line 79 def umbral_magnitude (umbra_radius + MOON_RADIUS_KM - axis_distance) / (2 * MOON_RADIUS_KM) end |