Class: Astronoby::LocalSiderealTime

Inherits:
SiderealTime show all
Defined in:
lib/astronoby/time/local_sidereal_time.rb

Overview

Local Sidereal Time base class. Dispatches to mean or apparent subclasses based on the type of the source GST.

Constant Summary

Constants inherited from SiderealTime

SiderealTime::TYPES

Instance Attribute Summary collapse

Attributes inherited from SiderealTime

#date, #time, #type

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from SiderealTime

#apparent?, #mean?, normalize_time, #normalize_time, validate_type!

Constructor Details

#initialize(date:, time:, longitude:, type: MEAN) ⇒ LocalSiderealTime

Returns a new instance of LocalSiderealTime.

Parameters:

  • date (Date)

    the calendar date

  • time (Numeric)

    the sidereal time in hours

  • longitude (Astronoby::Angle)

    the observer’s longitude

  • type (Symbol) (defaults to: MEAN)

    :mean or :apparent



46
47
48
49
# File 'lib/astronoby/time/local_sidereal_time.rb', line 46

def initialize(date:, time:, longitude:, type: MEAN)
  super(date: date, time: time, type: type)
  @longitude = longitude
end

Instance Attribute Details

#longitudeAstronoby::Angle (readonly)

Returns the observer’s longitude.

Returns:



8
9
10
# File 'lib/astronoby/time/local_sidereal_time.rb', line 8

def longitude
  @longitude
end

Class Method Details

.from_gst(gst:, longitude:) ⇒ Astronoby::LocalMeanSiderealTime, Astronoby::LocalApparentSiderealTime

Creates an LST from a Greenwich Sidereal Time and longitude.

Parameters:

Returns:



16
17
18
19
20
21
22
23
# File 'lib/astronoby/time/local_sidereal_time.rb', line 16

def self.from_gst(gst:, longitude:)
  case gst.type
  when MEAN
    LocalMeanSiderealTime.from_gst(gst: gst, longitude: longitude)
  when APPARENT
    LocalApparentSiderealTime.from_gst(gst: gst, longitude: longitude)
  end
end

.from_utc(utc, longitude:, type: MEAN) ⇒ Astronoby::LocalMeanSiderealTime, Astronoby::LocalApparentSiderealTime

Creates an LST from UTC and longitude.

Parameters:

  • utc (Time)

    the UTC time

  • longitude (Astronoby::Angle)

    the observer’s longitude

  • type (Symbol) (defaults to: MEAN)

    :mean or :apparent

Returns:



32
33
34
35
36
37
38
39
40
# File 'lib/astronoby/time/local_sidereal_time.rb', line 32

def self.from_utc(utc, longitude:, type: MEAN)
  validate_type!(type)
  case type
  when MEAN
    LocalMeanSiderealTime.from_utc(utc, longitude: longitude)
  when APPARENT
    LocalApparentSiderealTime.from_utc(utc, longitude: longitude)
  end
end

Instance Method Details

#to_gstAstronoby::GreenwichMeanSiderealTime, Astronoby::GreenwichApparentSiderealTime

Converts to Greenwich Sidereal Time.



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/astronoby/time/local_sidereal_time.rb', line 55

def to_gst
  case @type
  when MEAN
    lst = LocalMeanSiderealTime.new(
      date: @date,
      time: @time,
      longitude: @longitude
    )
    lst.to_gst
  when APPARENT
    last = LocalApparentSiderealTime.new(
      date: @date,
      time: @time,
      longitude: @longitude
    )
    last.to_gst
  end
end