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
_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 inherited from BasicTypes::Object
Methods included from Parts::Resource
#[], #^, _extract_prefix, _instance, _parse, _path_with_prefix, _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)
大気の補正
956 957 958 |
# File 'lib/when_exe/ephemeris.rb', line 956 def air @air end |
#axis ⇒ Array<Numeric> (readonly)
自転軸
960 961 962 |
# File 'lib/when_exe/ephemeris.rb', line 960 def axis @axis end |
#dl ⇒ Array<Numeric> (readonly)
黄経の補正の係数
912 913 914 |
# File 'lib/when_exe/ephemeris.rb', line 912 def dl @dl end |
#first_day ⇒ Numeric (readonly)
計算式の精度保証期間の下限 / ユリウス日
900 901 902 |
# File 'lib/when_exe/ephemeris.rb', line 900 def first_day @first_day end |
#jsl ⇒ Array<Numeric> (readonly)
黄経の係数2 (木星-土星)
932 933 934 |
# File 'lib/when_exe/ephemeris.rb', line 932 def jsl @jsl end |
#jsn ⇒ Array<Numeric> (readonly)
黄経の係数1 (木星-土星)
928 929 930 |
# File 'lib/when_exe/ephemeris.rb', line 928 def jsn @jsn end |
#jsr ⇒ Array<Numeric> (readonly)
動径の係数 (木星-土星)
940 941 942 |
# File 'lib/when_exe/ephemeris.rb', line 940 def jsr @jsr end |
#jst ⇒ Array<Numeric> (readonly)
黄緯の係数 (木星-土星)
936 937 938 |
# File 'lib/when_exe/ephemeris.rb', line 936 def jst @jst end |
#last_day ⇒ Numeric (readonly)
計算式の精度保証期間の上限 / ユリウス日
904 905 906 |
# File 'lib/when_exe/ephemeris.rb', line 904 def last_day @last_day end |
#nn ⇒ Array<Numeric> (readonly)
木星と土星の相互摂動項
924 925 926 |
# File 'lib/when_exe/ephemeris.rb', line 924 def nn @nn end |
#phi ⇒ Array<Numeric> (readonly)
黄経の係数
908 909 910 |
# File 'lib/when_exe/ephemeris.rb', line 908 def phi @phi end |
#radius ⇒ Array<Numeric> (readonly)
動径の係数
920 921 922 |
# File 'lib/when_exe/ephemeris.rb', line 920 def radius @radius end |
#shape ⇒ Array<Numeric> (readonly)
惑星の形
944 945 946 |
# File 'lib/when_exe/ephemeris.rb', line 944 def shape @shape end |
#sid ⇒ Array<Numeric> (readonly)
自転 - 平均太陽の赤経(2000年分点)
948 949 950 |
# File 'lib/when_exe/ephemeris.rb', line 948 def sid @sid end |
#surface_radius ⇒ Numeric (readonly)
半径/km
896 897 898 |
# File 'lib/when_exe/ephemeris.rb', line 896 def surface_radius @surface_radius end |
Instance Method Details
#apparent_luminosity(t, base) ⇒ Numeric
視光度 / magnitude
1053 1054 1055 |
# File 'lib/when_exe/ephemeris.rb', line 1053 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
1040 1041 1042 1043 |
# File 'lib/when_exe/ephemeris.rb', line 1040 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
自転軸の歳差補正
1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 |
# File 'lib/when_exe/ephemeris.rb', line 1005 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
食分
1084 1085 1086 1087 1088 1089 1090 |
# File 'lib/when_exe/ephemeris.rb', line 1084 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
1066 1067 1068 1069 1070 1071 1072 1073 |
# File 'lib/when_exe/ephemeris.rb', line 1066 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
1023 1024 1025 1026 1027 1028 1029 1030 |
# File 'lib/when_exe/ephemeris.rb', line 1023 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
979 980 981 982 |
# File 'lib/when_exe/ephemeris.rb', line 979 def mean_longitude(t) coord = _coords(t) coord.c - @aberration / coord.radius / 360 end |
#mean_motion ⇒ Numeric
平均運動 / (DEG / YEAR)
967 968 969 |
# File 'lib/when_exe/ephemeris.rb', line 967 def mean_motion return @phi[0][2] end |
#true_longitude(t) ⇒ Numeric
光行差を含んだ真黄経 / CIRCLE
992 993 994 995 |
# File 'lib/when_exe/ephemeris.rb', line 992 def true_longitude(t) coord = _coords(t) coord.phi - @aberration / coord.radius / 360 end |