mk_apos 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/lib/mk_apos/apos.rb +9 -2
- data/lib/mk_apos/compute.rb +17 -6
- data/lib/mk_apos/const.rb +1 -0
- data/lib/mk_apos/version.rb +1 -1
- data/mk_apos.gemspec +4 -2
- metadata +14 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a7e77bfad4e9fc932ae2a28c072926cf08f2f290b0fe26cd6933c7ceae350f26
|
4
|
+
data.tar.gz: bf32b745440ef0c312bfe918a594d2260b48472413db5e8e26daa85400ec20d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91d96455290ff35d3b70c440beee1ee086057479e831fc01d9481d2550df8192c19dba3b8abcbfa7c74d6ee0c20febd48d5a91855c4bc8dd09999e6d87f5fca2
|
7
|
+
data.tar.gz: 05a88b3e92064649c0e2b50e182d22f5de25e913507df1faef5fab8f184221f7c4d5704afa804ca92e92f42052fc628380782401534fdcc8cb9bad9e6a314e6c
|
data/README.md
CHANGED
@@ -38,7 +38,7 @@ Or install it yourself as:
|
|
38
38
|
a = MkApos.new("/path/to/<JPLEPH binary>")
|
39
39
|
|
40
40
|
* You can set UTC formatted `YYYYMMDD` or `YYYYMMDDHHMMSS` or `YYYYMMDDHHMMSSU...` as an argument. (`U` is microsecond)
|
41
|
-
* If you don't set a second argument, this class considers the system time to have been set as a second argument.
|
41
|
+
* If you don't set a second argument, this class considers the system time to have been set as a second argument(UTC).
|
42
42
|
|
43
43
|
### Calculation
|
44
44
|
|
data/lib/mk_apos/apos.rb
CHANGED
@@ -15,13 +15,19 @@ module MkApos
|
|
15
15
|
Const::BODIES.each { |k, v| @icrs_2[k] = get_icrs(v, @jd_tdb) }
|
16
16
|
# === 時刻 t2(= TDB) における地球と太陽・月の距離
|
17
17
|
@r_e = get_r_e
|
18
|
+
# === 太陽/月/地球の半径取得
|
19
|
+
e = EphJpl.new(@bin_path, 11, 3, @jd_tdb)
|
20
|
+
@asun = e.bin[:cvals][e.bin[:cnams].index("ASUN")]
|
21
|
+
@am = e.bin[:cvals][e.bin[:cnams].index("AM")]
|
22
|
+
@re = e.bin[:cvals][e.bin[:cnams].index("RE")]
|
18
23
|
end
|
19
24
|
|
20
25
|
#=========================================================================
|
21
26
|
# SUN
|
22
27
|
#
|
23
28
|
# @param: <none>
|
24
|
-
# @return: [lambda, beta, d]
|
29
|
+
# @return: [[lambda, beta, d], [alpha, delta, d], [apparent_radius, parallax]]
|
30
|
+
# (太陽視黄経、視黄緯、地心距離、視赤経、視赤緯、地心距離、視半径、視差))
|
25
31
|
#=========================================================================
|
26
32
|
def sun
|
27
33
|
return compute_sun
|
@@ -31,7 +37,8 @@ module MkApos
|
|
31
37
|
# MOON
|
32
38
|
#
|
33
39
|
# @param: <none>
|
34
|
-
# @return: [alpha, delta]
|
40
|
+
# @return: [[lambda, beta, d], [alpha, delta, d], [apparent_radius, parallax]]
|
41
|
+
# (月視黄経、視黄緯、地心距離、視赤経、視赤緯、地心距離、視半径、視差))
|
35
42
|
#=========================================================================
|
36
43
|
def moon
|
37
44
|
return compute_moon
|
data/lib/mk_apos/compute.rb
CHANGED
@@ -21,7 +21,7 @@ module MkApos
|
|
21
21
|
# @return: jd (Julian Day(Numeric))
|
22
22
|
#=========================================================================
|
23
23
|
def get_jd(t)
|
24
|
-
return MkTime.new(t.strftime("%Y%m%d%H%M%S")).jd
|
24
|
+
return MkTime.new(t.strftime("%Y%m%d%H%M%S%6N")).jd
|
25
25
|
rescue => e
|
26
26
|
raise
|
27
27
|
end
|
@@ -82,7 +82,7 @@ module MkApos
|
|
82
82
|
# 視黄経・視黄緯の計算(太陽)
|
83
83
|
#
|
84
84
|
# @param: <none>
|
85
|
-
# @return: [[視赤経, 視赤緯, 地心距離], [視黄経, 視黄緯, 地心距離]]
|
85
|
+
# @return: [[視赤経, 視赤緯, 地心距離], [視黄経, 視黄緯, 地心距離], [視半径, 視差]]
|
86
86
|
#=========================================================================
|
87
87
|
def compute_sun
|
88
88
|
# === 太陽が光を発した時刻 t1(JD) の計算
|
@@ -101,7 +101,12 @@ module MkApos
|
|
101
101
|
eq_pol_s = MkCoord.rect2pol(pos_sun_bpn)
|
102
102
|
ec_rect_s = MkCoord.rect_eq2ec(pos_sun_bpn, bpn.eps)
|
103
103
|
ec_pol_s = MkCoord.rect2pol(ec_rect_s)
|
104
|
-
|
104
|
+
# === 視半径/(地平)視差計算
|
105
|
+
radius = Math.asin(@asun / (eq_pol_s[2] * Const::AU / 1000))
|
106
|
+
radius *= 180 / Math::PI * 3600
|
107
|
+
parallax = Math.asin(@re / (eq_pol_s[2] * Const::AU / 1000))
|
108
|
+
parallax *= 180 / Math::PI * 3600
|
109
|
+
return [eq_pol_s, ec_pol_s, [radius, parallax]]
|
105
110
|
rescue => e
|
106
111
|
raise
|
107
112
|
end
|
@@ -110,7 +115,7 @@ module MkApos
|
|
110
115
|
# 視黄経・視黄緯の計算(月)
|
111
116
|
#
|
112
117
|
# @param: <none>
|
113
|
-
# @return: [[視赤経, 視赤緯, 地心距離], [視黄経, 視黄緯, 地心距離]]
|
118
|
+
# @return: [[視赤経, 視赤緯, 地心距離], [視黄経, 視黄緯, 地心距離], [視半径, 視差]]
|
114
119
|
#=========================================================================
|
115
120
|
def compute_moon
|
116
121
|
# === 月が光を発した時刻 t1(jd) の計算
|
@@ -129,7 +134,12 @@ module MkApos
|
|
129
134
|
eq_pol_m = MkCoord.rect2pol(pos_moon_bpn)
|
130
135
|
ec_rect_m = MkCoord.rect_eq2ec(pos_moon_bpn, bpn.eps)
|
131
136
|
ec_pol_m = MkCoord.rect2pol(ec_rect_m)
|
132
|
-
|
137
|
+
# === 視半径/(地平)視差計算
|
138
|
+
radius = Math.asin(@am / (eq_pol_m[2] * Const::AU / 1000))
|
139
|
+
radius *= 180 / Math::PI * 3600
|
140
|
+
parallax = Math.asin(@re / (eq_pol_m[2] * Const::AU / 1000))
|
141
|
+
parallax *= 180 / Math::PI * 3600
|
142
|
+
return [eq_pol_m, ec_pol_m, [radius, parallax]]
|
133
143
|
rescue => e
|
134
144
|
raise
|
135
145
|
end
|
@@ -150,7 +160,7 @@ module MkApos
|
|
150
160
|
t_2 = t_1
|
151
161
|
pv_1 = @icrs_2[target]
|
152
162
|
df, m = 1.0, 0
|
153
|
-
while df > 1.0e-10
|
163
|
+
while df > 1.0e-10
|
154
164
|
r_12 = (0..2).map { |i| pv_1[i] - @icrs_2[:earth][i] }
|
155
165
|
r_12_d = calc_dist(pv_1, @icrs_2[:earth])
|
156
166
|
df = (Const::C * Const::DAYSEC / Const::AU) * (t_2 - t_1) - r_12_d
|
@@ -158,6 +168,7 @@ module MkApos
|
|
158
168
|
df /= ((Const::C * Const::DAYSEC / Const::AU) + (df_wk) / r_12_d)
|
159
169
|
t_1 += df
|
160
170
|
m += 1
|
171
|
+
raise Const::MSG_ERR_5 if m > 10
|
161
172
|
pv_1 = get_icrs(Const::BODIES[target], t_1)
|
162
173
|
end
|
163
174
|
return t_1
|
data/lib/mk_apos/const.rb
CHANGED
@@ -4,6 +4,7 @@ module MkApos
|
|
4
4
|
MSG_ERR_2 = "[ERROR] Format: YYYYMMDD or YYYYMMDDHHMMSS or YYYYMMDDHHMMSSU..."
|
5
5
|
MSG_ERR_3 = "[ERROR] Invalid date-time!"
|
6
6
|
MSG_ERR_4 = "[ERROR] Binary file is not found!"
|
7
|
+
MSG_ERR_5 = "[ERROR] Newton method error!"
|
7
8
|
BODIES = {earth: 3, moon: 10, sun: 11} # 天体名と JPL での天体番号
|
8
9
|
AU = 149597870700 # 1天文単位 (m)
|
9
10
|
C = 299792458 # 光速 (m/s)
|
data/lib/mk_apos/version.rb
CHANGED
data/mk_apos.gemspec
CHANGED
@@ -31,7 +31,9 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_dependency "eph_jpl"
|
32
32
|
spec.add_dependency "mk_coord"
|
33
33
|
spec.add_dependency "mk_time"
|
34
|
-
spec.add_development_dependency "bundler", "~> 1.12"
|
35
|
-
spec.add_development_dependency "
|
34
|
+
#spec.add_development_dependency "bundler", "~> 1.12"
|
35
|
+
spec.add_development_dependency "bundler", ">= 2.2.10"
|
36
|
+
#spec.add_development_dependency "rake", "~> 10.0"
|
37
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
36
38
|
spec.add_development_dependency "rspec", "~> 3.0"
|
37
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mk_apos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- komasaru
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eph_bpn
|
@@ -70,30 +70,30 @@ dependencies:
|
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 2.2.10
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 2.2.10
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 12.3.3
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 12.3.3
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,7 +138,7 @@ homepage: https://github.com/komasaru/mk_apos
|
|
138
138
|
licenses:
|
139
139
|
- MIT
|
140
140
|
metadata: {}
|
141
|
-
post_install_message:
|
141
|
+
post_install_message:
|
142
142
|
rdoc_options: []
|
143
143
|
require_paths:
|
144
144
|
- lib
|
@@ -153,9 +153,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
153
|
- !ruby/object:Gem::Version
|
154
154
|
version: '0'
|
155
155
|
requirements: []
|
156
|
-
|
157
|
-
|
158
|
-
signing_key:
|
156
|
+
rubygems_version: 3.2.9
|
157
|
+
signing_key:
|
159
158
|
specification_version: 4
|
160
159
|
summary: Apparent position calculation tool.
|
161
160
|
test_files: []
|