Class: Astronoby::RiseTransitSetCalculator
- Inherits:
-
Object
- Object
- Astronoby::RiseTransitSetCalculator
- Defined in:
- lib/astronoby/events/rise_transit_set_calculator.rb
Defined Under Namespace
Classes: PotentialEvent
Constant Summary collapse
- TAU =
Math::PI * 2
- SAMPLE_THRESHOLD =
0.8- REFINEMENT_ITERATIONS =
3- MIN_TIME_ADJUSTMENT =
Constants::MICROSECOND_IN_DAYS
- STANDARD_REFRACTION_ANGLE =
-Angle.from_dms(0, 34, 0)
- SUN_REFRACTION_ANGLE =
-Angle.from_dms(0, 50, 0)
- EVENT_TYPES =
[:rising, :transit, :setting].freeze
Instance Method Summary collapse
- #event_on(date, utc_offset: 0) ⇒ Object
- #events_between(start_time, end_time) ⇒ Object
- #events_on(date, utc_offset: 0) ⇒ Object
-
#initialize(body:, observer:, ephem: nil) ⇒ RiseTransitSetCalculator
constructor
A new instance of RiseTransitSetCalculator.
Constructor Details
#initialize(body:, observer:, ephem: nil) ⇒ RiseTransitSetCalculator
Returns a new instance of RiseTransitSetCalculator.
30 31 32 33 34 |
# File 'lib/astronoby/events/rise_transit_set_calculator.rb', line 30 def initialize(body:, observer:, ephem: nil) @body = body @observer = observer @ephem = ephem end |
Instance Method Details
#event_on(date, utc_offset: 0) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/astronoby/events/rise_transit_set_calculator.rb', line 36 def event_on(date, utc_offset: 0) events = events_on(date, utc_offset: utc_offset) RiseTransitSetEvent.new( events.rising_times.first, events.transit_times.first, events.setting_times.first ) end |
#events_between(start_time, end_time) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/astronoby/events/rise_transit_set_calculator.rb', line 61 def events_between(start_time, end_time) reset_state @start_instant = Instant.from_time(start_time) @end_instant = Instant.from_time(end_time) events end |
#events_on(date, utc_offset: 0) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/astronoby/events/rise_transit_set_calculator.rb', line 45 def events_on(date, utc_offset: 0) start_time = Time.new( date.year, date.month, date.day, 0, 0, 0, utc_offset ) end_time = Time.new( date.year, date.month, date.day, 23, 59, 59, utc_offset ) events_between(start_time, end_time) end |