Class: Astronoby::Refraction
- Inherits:
-
Object
- Object
- Astronoby::Refraction
- Defined in:
- lib/astronoby/refraction.rb
Constant Summary collapse
- LOW_ALTITUDE_BODY_ANGLE =
Angle.from_degrees(15)
- ZENITH =
Angle.from_degrees(90)
Class Method Summary collapse
- .angle(coordinates:, observer:) ⇒ Object
- .correct_horizontal_coordinates(coordinates:, observer:) ⇒ Object
Instance Method Summary collapse
-
#initialize(coordinates, observer) ⇒ Refraction
constructor
A new instance of Refraction.
-
#refract ⇒ Object
Source: Title: Practical Astronomy with your Calculator or Spreadsheet Authors: Peter Duffett-Smith and Jonathan Zwart Edition: Cambridge University Press Chapter: 37 - Refraction.
- #refraction_angle ⇒ Object
Constructor Details
#initialize(coordinates, observer) ⇒ Refraction
Returns a new instance of Refraction.
16 17 18 19 |
# File 'lib/astronoby/refraction.rb', line 16 def initialize(coordinates, observer) @coordinates = coordinates @observer = observer end |
Class Method Details
.angle(coordinates:, observer:) ⇒ Object
8 9 10 |
# File 'lib/astronoby/refraction.rb', line 8 def self.angle(coordinates:, observer:) new(coordinates, observer).refraction_angle end |
.correct_horizontal_coordinates(coordinates:, observer:) ⇒ Object
12 13 14 |
# File 'lib/astronoby/refraction.rb', line 12 def self.correct_horizontal_coordinates(coordinates:, observer:) new(coordinates, observer).refract end |
Instance Method Details
#refract ⇒ Object
Source:
Title: Practical Astronomy with your Calculator or Spreadsheet
Authors: Peter Duffett-Smith and Jonathan Zwart
Edition: Cambridge University Press
Chapter: 37 - Refraction
26 27 28 29 30 31 32 33 |
# File 'lib/astronoby/refraction.rb', line 26 def refract Coordinates::Horizontal.new( azimuth: @coordinates.azimuth, altitude: @coordinates.altitude + refraction_angle, latitude: @coordinates.latitude, longitude: @coordinates.longitude ) end |
#refraction_angle ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/astronoby/refraction.rb', line 35 def refraction_angle if @coordinates.altitude > LOW_ALTITUDE_BODY_ANGLE high_altitude_angle else low_altitude_angle end end |