Class: When::Ephemeris::Datum
- Inherits:
-
CelestialObject
- Object
- BasicTypes::Object
- CelestialObject
- When::Ephemeris::Datum
- Defined in:
- lib/when_exe/ephemeris.rb,
lib/when_exe/region/planets.rb
Overview
座標の基準になる天体
座標の基準になる天体の特性を定義する
Defined Under Namespace
Constant Summary
Constants included from When::Ephemeris
AU, AcS, BCENT, C0, CIRCLE, COS, COSL, COSLT, COST, DAY, DEG, EPOCH1800, EPOCH1900, EPOCH1975, EPOCH2000, FARAWAY, JCENT, JYEAR, Jupiter, LIN, Mars, Mercury, Neptune, P0B, P0L, P0P, P0dB, P0dL, P1B, P1L, P1R, P2B, P2L, P2Q, P2dL, P3L, P3Q, P4B, P4L, P4Q, P4dL, P5B, P5L, P5Q, P5dL, P5l, P5n, P5r, P5t, P6B, P6L, P6Q, P6dL, P6l, P6n, P6r, P6t, P7B, P7L, P7R, P8B, P8L, P8R, P9B, P9L, P9R, PSEC, Pluto, SIN, SINL, SINLT, SINT, Saturn, Uranus, Venus
Constants included from Parts::Resource
Parts::Resource::LabelProperty
Instance Attribute Summary collapse
-
#air ⇒ Array<Numeric>
readonly
大気の補正.
-
#axis ⇒ Array<Numeric>
readonly
自転軸.
-
#dl ⇒ Array<Numeric>
readonly
黄経の補正の係数.
-
#first_day ⇒ Numeric
readonly
計算式の精度保証期間の下限 / ユリウス日.
-
#jsl ⇒ Array<Numeric>
readonly
黄経の係数2 (木星-土星).
-
#jsn ⇒ Array<Numeric>
readonly
黄経の係数1 (木星-土星).
-
#jsr ⇒ Array<Numeric>
readonly
動径の係数 (木星-土星).
-
#jst ⇒ Array<Numeric>
readonly
黄緯の係数 (木星-土星).
-
#last_day ⇒ Numeric
readonly
計算式の精度保証期間の上限 / ユリウス日.
-
#nn ⇒ Array<Numeric>
readonly
木星と土星の相互摂動項.
-
#phi ⇒ Array<Numeric>
readonly
黄経の係数.
-
#radius ⇒ Array<Numeric>
readonly
動径の係数.
-
#shape ⇒ Array<Numeric>
readonly
惑星の形.
-
#sid ⇒ Array<Numeric>
readonly
自転 - 平均太陽の赤経(2000年分点).
-
#surface_radius ⇒ Numeric
readonly
半径/km.
-
#theta ⇒ Array<Numeric>
readonly
黄緯の係数.
-
#zeros ⇒ Hash<String=>Numeric>
readonly
天体の出没、薄明の閾値.
Attributes inherited from CelestialObject
Attributes inherited from BasicTypes::Object
Attributes included from Parts::Resource
#_pool, #child, #keys, #locale, #namespace
Instance Method Summary collapse
-
#apparent_luminosity(t, base) ⇒ Numeric
視光度 / magnitude.
-
#apparent_radius(t, base = Earth) ⇒ Numeric
視半径 / CIRCLE.
-
#axis_of_rotation(t) ⇒ When::Ephemeris::Coords
自転軸の歳差補正.
-
#eclipse(t, target, base = Earth) ⇒ Numeric
食分.
-
#elongation(t, target = Sun, base = Earth) ⇒ Numeric
離角 / CIRCLE.
-
#equation_of_time(t) ⇒ Numeric
均時差 / DAY.
-
#mean_longitude(t) ⇒ Numeric
光行差を含んだ平均黄経 / CIRCLE.
-
#mean_motion ⇒ Numeric
平均運動 / (DEG / YEAR).
-
#true_longitude(t) ⇒ Numeric
光行差を含んだ真黄経 / CIRCLE.
Methods inherited from CelestialObject
Methods included from When::Ephemeris
_adjust, _rot, _to_p2, _to_p3, _to_r3, acos, asin, cosc, cosd, delta_e, delta_p, julian_century_from_2000, julian_year_from_1975, obl, polynomial, root, sinc, sind, tanc, tand, trigonometric
Methods included from Parts::Resource
#[], #^, _decode, _encode, _extract_prefix, _instance, _parse, _path_with_prefix, _replace_tags, _setup_, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?
Methods included from Parts::Resource::Pool
#[], #[]=, #_pool, #_setup_, #pool_keys
Methods included from Parts::Resource::Synchronize
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class When::Parts::Resource
Instance Attribute Details
#air ⇒ Array<Numeric> (readonly)
大気の補正
991 992 993 |
# File 'lib/when_exe/ephemeris.rb', line 991 def air @air end |
#axis ⇒ Array<Numeric> (readonly)
自転軸
995 996 997 |
# File 'lib/when_exe/ephemeris.rb', line 995 def axis @axis end |
#dl ⇒ Array<Numeric> (readonly)
黄経の補正の係数
947 948 949 |
# File 'lib/when_exe/ephemeris.rb', line 947 def dl @dl end |
#first_day ⇒ Numeric (readonly)
計算式の精度保証期間の下限 / ユリウス日
935 936 937 |
# File 'lib/when_exe/ephemeris.rb', line 935 def first_day @first_day end |
#jsl ⇒ Array<Numeric> (readonly)
黄経の係数2 (木星-土星)
967 968 969 |
# File 'lib/when_exe/ephemeris.rb', line 967 def jsl @jsl end |
#jsn ⇒ Array<Numeric> (readonly)
黄経の係数1 (木星-土星)
963 964 965 |
# File 'lib/when_exe/ephemeris.rb', line 963 def jsn @jsn end |
#jsr ⇒ Array<Numeric> (readonly)
動径の係数 (木星-土星)
975 976 977 |
# File 'lib/when_exe/ephemeris.rb', line 975 def jsr @jsr end |
#jst ⇒ Array<Numeric> (readonly)
黄緯の係数 (木星-土星)
971 972 973 |
# File 'lib/when_exe/ephemeris.rb', line 971 def jst @jst end |
#last_day ⇒ Numeric (readonly)
計算式の精度保証期間の上限 / ユリウス日
939 940 941 |
# File 'lib/when_exe/ephemeris.rb', line 939 def last_day @last_day end |
#nn ⇒ Array<Numeric> (readonly)
木星と土星の相互摂動項
959 960 961 |
# File 'lib/when_exe/ephemeris.rb', line 959 def nn @nn end |
#phi ⇒ Array<Numeric> (readonly)
黄経の係数
943 944 945 |
# File 'lib/when_exe/ephemeris.rb', line 943 def phi @phi end |
#radius ⇒ Array<Numeric> (readonly)
動径の係数
955 956 957 |
# File 'lib/when_exe/ephemeris.rb', line 955 def radius @radius end |
#shape ⇒ Array<Numeric> (readonly)
惑星の形
979 980 981 |
# File 'lib/when_exe/ephemeris.rb', line 979 def shape @shape end |
#sid ⇒ Array<Numeric> (readonly)
自転 - 平均太陽の赤経(2000年分点)
983 984 985 |
# File 'lib/when_exe/ephemeris.rb', line 983 def sid @sid end |
#surface_radius ⇒ Numeric (readonly)
半径/km
931 932 933 |
# File 'lib/when_exe/ephemeris.rb', line 931 def surface_radius @surface_radius end |
Instance Method Details
#apparent_luminosity(t, base) ⇒ Numeric
視光度 / magnitude
1088 1089 1090 |
# File 'lib/when_exe/ephemeris.rb', line 1088 def apparent_luminosity(t, base) return @luminosity - 2.5*log10(base._coords(t).luminosity_spe(self._coords(t))) end |
#apparent_radius(t, base = Earth) ⇒ Numeric
視半径 / CIRCLE
1075 1076 1077 1078 |
# File 'lib/when_exe/ephemeris.rb', line 1075 def apparent_radius(t, base=Earth) target_coords = self.coords(t, base) asin(@surface_radius / (target_coords.radius * AU)) / CIRCLE end |
#axis_of_rotation(t) ⇒ When::Ephemeris::Coords
自転軸の歳差補正
1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 |
# File 'lib/when_exe/ephemeris.rb', line 1040 def axis_of_rotation(t) return nil unless @axis c1900 = (@axis[0]-1900.0)/100.0 dt = (+t-(EPOCH1900-0.68648354))/BCENT - c1900 Coords.polar( (@axis[1][0] + dt * @axis[2][0]) / 360, (@axis[1][1] + dt * @axis[2][1]) / 360, (@axis[1][2] + dt * @axis[2][2]) / 360 ).precession(dt, c1900) end |
#eclipse(t, target, base = Earth) ⇒ Numeric
食分
1119 1120 1121 1122 1123 1124 1125 |
# File 'lib/when_exe/ephemeris.rb', line 1119 def eclipse(t, target, base=Earth) t = +t distance = self.coords(t, base).spherical_law_of_cosines(target.coords(t, base)) / CIRCLE self_radius = self.apparent_radius(t, base) target_radius = target.apparent_radius(t, base) return (self_radius + target_radius - distance) / (2.0 * target_radius) end |
#elongation(t, target = Sun, base = Earth) ⇒ Numeric
離角 / CIRCLE
1101 1102 1103 1104 1105 1106 1107 1108 |
# File 'lib/when_exe/ephemeris.rb', line 1101 def elongation(t, target=Sun, base=Earth) t = +t self_coords = self.coords(t, base) target_coords = target.coords(t, base) elongation = acos(self_coords.spherical_law_of_cosines(target_coords)) / CIRCLE difference = (self_coords.phi - target_coords.phi + 0.5) % 1 - 0.5 return (difference >= 0) ? elongation : -elongation end |
#equation_of_time(t) ⇒ Numeric
均時差 / DAY
1058 1059 1060 1061 1062 1063 1064 1065 |
# File 'lib/when_exe/ephemeris.rb', line 1058 def equation_of_time(t) t = +t c = julian_century_from_2000(t) coords = _coords(t) coords = coords.rotate_z(0.5 - (@aberration||0) / coords.radius / 360) coords = coords.y_to_r(t, self) return 0.5 - ((coords.phi - (@sid[0] + c * (@sid[1] + c * @sid[2])) / 24.0) % 1) end |
#mean_longitude(t) ⇒ Numeric
光行差を含んだ平均黄経 / CIRCLE
1014 1015 1016 1017 |
# File 'lib/when_exe/ephemeris.rb', line 1014 def mean_longitude(t) coord = _coords(t) coord.c - @aberration / coord.radius / 360 end |
#mean_motion ⇒ Numeric
平均運動 / (DEG / YEAR)
1002 1003 1004 |
# File 'lib/when_exe/ephemeris.rb', line 1002 def mean_motion return @phi[0][2] end |
#true_longitude(t) ⇒ Numeric
光行差を含んだ真黄経 / CIRCLE
1027 1028 1029 1030 |
# File 'lib/when_exe/ephemeris.rb', line 1027 def true_longitude(t) coord = _coords(t) coord.phi - @aberration / coord.radius / 360 end |