空間位置
Degree / Internal Location Unit(16”)
(3600 を 2 の因数で割りつくした値を単位とする)
黄道座標 (ecliptic coordinate system)
赤道座標 (equatorial coordinate system)
地平座標 (horizontal coordinate system)
惑星中心の高度
観測地の日心三次元座標(黄道座標)
t : ユリウス日(Terrestrial Time)または(Temporal)Positionオブジェクト
# File when/coordinates.rb, line 1493 1493: def _coords(t) 1494: t = +t 1495: @datum._coords(t) + _coords_diff(t) 1496: end
観測地の地平線の天頂角
# File when/coordinates.rb, line 1471 1471: def horizon 1472: return 0.25 if (@alt <= 0) 1473: r = obserber_distance 1474: asin((1.0+@datum.air[1]*@alt/(@datum.air[2]*@alt+r))*r/(r+@alt))/CIRCLE 1475: end
観測地の地方恒星時 / 時を返します。
t : ユリウス日(Terrestrial Time)または(Temporal)Positionオブジェクト
# File when/coordinates.rb, line 1481 1481: def local_sidereal_time(t) 1482: t = +t 1483: c = julian_century_from_2000(t) 1484: (@datum.sid[0] + c * (@datum.sid[1] + c * @datum.sid[2]) + 1485: (cosd(obl(c)) * delta_p(c) + @long/DEGREE) / 15 + 1486: (t % 1) * 24) 1487: end
観測地の惑星中心を原点とする三次元座標
t : ユリウス日(Terrestrial Time)または(Temporal)Positionオブジェクト system : 座標系 ECLIPTIC = 黄道座標 EQUATORIAL = 赤道座標 HORIZONTAL = 地平座標
# File when/coordinates.rb, line 1547 1547: def _coords_diff(t, system=ECLIPTIC) 1548: return Coordinates.polar(0,0,0) if alt == Center 1549: t = +t 1550: lat = @lat / DEGREE 1551: coords = Coordinates.polar( 1552: local_sidereal_time(t) / 24.0, 1553: (lat + @datum.shape[3] * sind(2*lat)) / 360.0, 1554: (obserber_distance + @alt) / AU) 1555: case system 1556: when ECLIPTIC ; coords.r_to_y(t, @datum) 1557: when EQUATORIAL ; coords 1558: when HORIZONTAL ; coords.r_to_h(t, self) 1559: end 1560: end
その他のメソッド
When::Coordinates::Spatial で定義されていないメソッドは 処理を @datum (type: When::Ephemeris::Datum) に委譲する
# File when/coordinates.rb, line 1566 1566: def method_missing(name, *args, &block) 1567: @datum.send(name.to_sym, self, *args, &block) 1568: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.