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, Parts::Resource::Prefix, Parts::Resource::PrefixIndex, Parts::Resource::PrefixKeys, Parts::Resource::PrefixValues
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, #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)
大気の補正
954 955 956 |
# File 'lib/when_exe/ephemeris.rb', line 954 def air @air end |
#axis ⇒ Array<Numeric> (readonly)
自転軸
958 959 960 |
# File 'lib/when_exe/ephemeris.rb', line 958 def axis @axis end |
#dl ⇒ Array<Numeric> (readonly)
黄経の補正の係数
910 911 912 |
# File 'lib/when_exe/ephemeris.rb', line 910 def dl @dl end |
#first_day ⇒ Numeric (readonly)
計算式の精度保証期間の下限 / ユリウス日
898 899 900 |
# File 'lib/when_exe/ephemeris.rb', line 898 def first_day @first_day end |
#jsl ⇒ Array<Numeric> (readonly)
黄経の係数2 (木星-土星)
930 931 932 |
# File 'lib/when_exe/ephemeris.rb', line 930 def jsl @jsl end |
#jsn ⇒ Array<Numeric> (readonly)
黄経の係数1 (木星-土星)
926 927 928 |
# File 'lib/when_exe/ephemeris.rb', line 926 def jsn @jsn end |
#jsr ⇒ Array<Numeric> (readonly)
動径の係数 (木星-土星)
938 939 940 |
# File 'lib/when_exe/ephemeris.rb', line 938 def jsr @jsr end |
#jst ⇒ Array<Numeric> (readonly)
黄緯の係数 (木星-土星)
934 935 936 |
# File 'lib/when_exe/ephemeris.rb', line 934 def jst @jst end |
#last_day ⇒ Numeric (readonly)
計算式の精度保証期間の上限 / ユリウス日
902 903 904 |
# File 'lib/when_exe/ephemeris.rb', line 902 def last_day @last_day end |
#nn ⇒ Array<Numeric> (readonly)
木星と土星の相互摂動項
922 923 924 |
# File 'lib/when_exe/ephemeris.rb', line 922 def nn @nn end |
#phi ⇒ Array<Numeric> (readonly)
黄経の係数
906 907 908 |
# File 'lib/when_exe/ephemeris.rb', line 906 def phi @phi end |
#radius ⇒ Array<Numeric> (readonly)
動径の係数
918 919 920 |
# File 'lib/when_exe/ephemeris.rb', line 918 def radius @radius end |
#shape ⇒ Array<Numeric> (readonly)
惑星の形
942 943 944 |
# File 'lib/when_exe/ephemeris.rb', line 942 def shape @shape end |
#sid ⇒ Array<Numeric> (readonly)
自転 - 平均太陽の赤経(2000年分点)
946 947 948 |
# File 'lib/when_exe/ephemeris.rb', line 946 def sid @sid end |
#surface_radius ⇒ Numeric (readonly)
半径/km
894 895 896 |
# File 'lib/when_exe/ephemeris.rb', line 894 def surface_radius @surface_radius end |
Instance Method Details
#apparent_luminosity(t, base) ⇒ Numeric
視光度 / magnitude
1051 1052 1053 |
# File 'lib/when_exe/ephemeris.rb', line 1051 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
1038 1039 1040 1041 |
# File 'lib/when_exe/ephemeris.rb', line 1038 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
自転軸の歳差補正
1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 |
# File 'lib/when_exe/ephemeris.rb', line 1003 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
食分
1082 1083 1084 1085 1086 1087 1088 |
# File 'lib/when_exe/ephemeris.rb', line 1082 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
1064 1065 1066 1067 1068 1069 1070 1071 |
# File 'lib/when_exe/ephemeris.rb', line 1064 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
1021 1022 1023 1024 1025 1026 1027 1028 |
# File 'lib/when_exe/ephemeris.rb', line 1021 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
977 978 979 980 |
# File 'lib/when_exe/ephemeris.rb', line 977 def mean_longitude(t) coord = _coords(t) coord.c - @aberration / coord.radius / 360 end |
#mean_motion ⇒ Numeric
平均運動 / (DEG / YEAR)
965 966 967 |
# File 'lib/when_exe/ephemeris.rb', line 965 def mean_motion return @phi[0][2] end |
#true_longitude(t) ⇒ Numeric
光行差を含んだ真黄経 / CIRCLE
990 991 992 993 |
# File 'lib/when_exe/ephemeris.rb', line 990 def true_longitude(t) coord = _coords(t) coord.phi - @aberration / coord.radius / 360 end |