Class Index [+]

Quicksearch

When::Ephemeris::TimeStandard

時刻系

Public Class Methods

delta_t(jd_utc) click to toggle source

ΔT

  jd_utc  : ユリウス日(Universal Time, Coordinated)

  returns :  (dynamical_time - universal_time) / second
    1/2048 second(≒0.5ms)未満を四捨五入
      # File when/ephemeris.rb, line 1115
1115:       def delta_t(jd_utc)
1116:         (delta_t_coordinated(jd_utc) * 4096 + 1).floor / 4096.0
1117:       end
delta_t_coordinated(jd_utc) click to toggle source

ΔT - 閏秒による(TT-UTC)

  jd_utc  : ユリウス日(Universal Time, Coordinated)

  returns : (Terrestrial Time - Universal Time, Coordinated) / second
      # File when/ephemeris.rb, line 1126
1126:       def delta_t_coordinated(jd_utc)
1127:         list = _leap_seconds
1128:         list.each do |v|
1129:           if jd_utc >= v[0]
1130:             result  = 32.184 + v[1]
1131:             result += (jd_utc - (2400000.5 + v[2])) * v[3] unless (v[3]||0) == 0
1132:             return result
1133:           end
1134:         end
1135:         delta_t_observed(jd_utc)
1136:       end
delta_t_observed(jd_utc) click to toggle source

ΔT - 観測による(TT-UT1)

  jd_utc  : ユリウス日(Universal Time, Coordinated)

  returns : (Terrestrial Time - Universal Time 1) / second
      # File when/ephemeris.rb, line 1144
1144:       def delta_t_observed(jd_utc)
1145:         c2000 = (jd_utc - EPOCH4)/JCENT  # 2000年からの経過世紀
1146:         year  =  c2000 * 100.0 + 2000.0  #    0年からの経過年
1147:         i = (year-1599.0).floor          # 1599年からの経過年(整数)
1148:         if year >= 2009.0
1149:           dt = 65.46 + 0.224 * (year-2009.0)
1150:         elsif i>0
1151:           n    = year % 1
1152:           d0   = DeltaT[i+0] - DeltaT[i-1]
1153:           d1   = DeltaT[i+1] - DeltaT[i+0]
1154:           d2   = DeltaT[i+2] - DeltaT[i+1]
1155:           d10  = d1  - d0
1156:           d21  = d2  - d1
1157:           d210 = d21 - d10
1158:           dt   = DeltaT[i] + n*d1 + n*(n-1.0)/4.0*(d10+d21) + n*(n-1.0)*(n-0.5)/6.0*d210
1159:         elsif year <948.0
1160:           dt   = 2715.6 + 573.36 * c2000 + 46.5*c2000*c2000
1161:         else
1162:           dt   =   50.6 +  67.5  * c2000 + 22.5*c2000*c2000
1163:         end
1164:         return dt
1165:       end
setup(leap_seconds=nil) click to toggle source

When::Ephemeris::TimeStandard Class のグローバルな設定を行う

  leap_seconds [[JD, TAI-UTC, (MJD, OFFSET)]] or Stirng
    閏秒の挿入記録
      JD      - 閏秒を挿入した日時のユリウス日
      TAI-UTC - 閏秒を挿入後の TAI と UTC の差
      MJD     - 周波数オフセットの基準となる日時の修正ユリウス日
      OFFSET  - 周波数オフセット値
    指定が文字列の場合は、その文字列をファイルパスとみなして、
    http://maia.usno.navy.mil/ser7/tai-utc.dat 形式のファイルから
    閏秒の挿入記録を読み込んで使用する
      # File when/ephemeris.rb, line 1080
1080:       def setup(leap_seconds=nil)
1081:         leap_seconds ||= TAI_UTC
1082:         @leap_seconds  =
1083:           if leap_seconds.kind_of?(String)
1084:             OpenURI
1085:             open(leap_seconds) do |file|
1086:               file.read.split(/[\n\r]+/).map { |line|
1087:                 line.split(/[^\d.]+/)[3..6].map {|d| d.to_f}
1088:               }.reverse
1089:             end
1090:           else
1091:             leap_seconds.reverse
1092:           end
1093:       end

Public Instance Methods

from_dynamical_time(time) click to toggle source

dynamical time を当該時刻系の日時に変換する(ダミー)

  time    : dynamical time(Numeric)
  returns : 当該時刻系の日時(Numeric)
      # File when/ephemeris.rb, line 1182
1182:     def from_dynamical_time(time)
1183:       raise TypeError, "Abstract Time Standard Class Type"
1184:     end
leap?() click to toggle source

当該時刻系に閏秒があるか?

  returns : Boolean
    true  - 閏秒あり
    false - 閏秒なし
      # File when/ephemeris.rb, line 1200
1200:     def leap?
1201:       raise TypeError, "Abstract Time Standard Class Type"
1202:     end
now() click to toggle source

現在日時を当該時刻系の日時で返す(ダミー)

  returns : 当該時刻系の日時(Numeric)
      # File when/ephemeris.rb, line 1190
1190:     def now
1191:       raise TypeError, "Abstract Time Standard Class Type"
1192:     end
to_dynamical_time(time) click to toggle source

当該時刻系の日時を dynamical time に変換する(ダミー)

  time    : 当該時刻系の日時(Numeric)
  returns : dynamical time(Numeric)
      # File when/ephemeris.rb, line 1173
1173:     def to_dynamical_time(time)
1174:       raise TypeError, "Abstract Time Standard Class Type"
1175:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.