Class: Astronoby::Aberration
- Inherits:
-
Object
- Object
- Astronoby::Aberration
- Defined in:
- lib/astronoby/aberration.rb
Overview
Applies relativistic aberration corrections to an astrometric position based on observer velocity.
Constant Summary collapse
- LIGHT_SPEED =
Source:
Title: Explanatory Supplement to the Astronomical Almanac Authors: Sean E. Urban and P. Kenneth Seidelmann Edition: University Science Books Chapter: 7.2.3 - Aberration Astronoby::Velocity.light_speed.mps
Instance Method Summary collapse
-
#corrected_position ⇒ Astronoby::Vector<Astronoby::Distance>
Computes the aberration-corrected position.
-
#initialize(astrometric_position:, observer_velocity:) ⇒ Aberration
constructor
Initializes the aberration correction with position and observer velocity.
Constructor Details
#initialize(astrometric_position:, observer_velocity:) ⇒ Aberration
Initializes the aberration correction with position and observer velocity.
21 22 23 24 25 26 |
# File 'lib/astronoby/aberration.rb', line 21 def initialize(astrometric_position:, observer_velocity:) @position = astrometric_position @velocity = observer_velocity @distance_meters = @position.norm.m @observer_speed = @velocity.norm.mps end |
Instance Method Details
#corrected_position ⇒ Astronoby::Vector<Astronoby::Distance>
Computes the aberration-corrected position.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/astronoby/aberration.rb', line 32 def corrected_position beta = @observer_speed / LIGHT_SPEED projected_velocity = beta * aberration_angle_cos lorentz_factor_inv = lorentz_factor_inverse(beta) velocity_correction = velocity_correction_factor(projected_velocity) * velocity_mps normalization_factor = 1.0 + projected_velocity position_scaled = position_meters * lorentz_factor_inv Distance.vector_from_meters( (position_scaled + velocity_correction) / normalization_factor ) end |