korba 0.5.0 → 0.6.0
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/korba/sgp4/elset_rec.rb +432 -0
- data/lib/korba/sgp4/sgp4.rb +2027 -0
- data/lib/korba/tle.rb +83 -5
- data/lib/korba/version.rb +1 -1
- data/lib/korba.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e1fb6aee8c669efdda379b50b45af24fc6fabf6514972cbfc93a8156c54f533
|
4
|
+
data.tar.gz: cde0a77ead9cecb840aa1fad00693c5a5c61428ae6cd6f905f2faf05ec1973d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8981644e546a11c656d83c751aa9e9ce19046df56258287a1f9219401377feef7def725de5d4cfa75481dd156179cd93404cc89d20aa80b0761ac0fba42c4d93
|
7
|
+
data.tar.gz: 17306bb686d434c116d531681a6dcabd4998825e24ec042e65f1d08b84350e80a2645603ece086edf2c8d124811f641f0706011e5d32b29da687482c3ee61c5b
|
data/CHANGELOG.md
CHANGED
@@ -0,0 +1,432 @@
|
|
1
|
+
module Korba
|
2
|
+
#
|
3
|
+
# This class implements the elsetrec data type from Vallado's SGP4 code.
|
4
|
+
#
|
5
|
+
# From SGP4.h
|
6
|
+
# #define SGP4Version "SGP4 Version 2016-03-09"
|
7
|
+
#
|
8
|
+
# @author aholinch
|
9
|
+
#
|
10
|
+
#
|
11
|
+
class ElsetRec
|
12
|
+
attr_accessor :whichconst
|
13
|
+
attr_accessor :satnum
|
14
|
+
attr_accessor :epochyr
|
15
|
+
attr_accessor :epochtynumrev
|
16
|
+
attr_accessor :error
|
17
|
+
attr_accessor :operationmode
|
18
|
+
attr_accessor :init
|
19
|
+
attr_accessor :method
|
20
|
+
attr_accessor :a
|
21
|
+
attr_accessor :altp
|
22
|
+
attr_accessor :alta
|
23
|
+
attr_accessor :epochdays
|
24
|
+
attr_accessor :jdsatepoch
|
25
|
+
attr_accessor :jdsatepochF
|
26
|
+
attr_accessor :nddot
|
27
|
+
attr_accessor :ndot
|
28
|
+
attr_accessor :bstar
|
29
|
+
attr_accessor :rcse
|
30
|
+
attr_accessor :inclo
|
31
|
+
attr_accessor :nodeo
|
32
|
+
attr_accessor :ecco
|
33
|
+
attr_accessor :argpo
|
34
|
+
attr_accessor :mo
|
35
|
+
attr_accessor :no_kozai
|
36
|
+
attr_accessor :classification
|
37
|
+
attr_accessor :intldesg
|
38
|
+
attr_accessor :ephtype
|
39
|
+
attr_accessor :elnum
|
40
|
+
attr_accessor :revnum
|
41
|
+
attr_accessor :no_unkozai
|
42
|
+
attr_accessor :am
|
43
|
+
attr_accessor :em
|
44
|
+
attr_accessor :im
|
45
|
+
attr_accessor :Om
|
46
|
+
attr_accessor :om
|
47
|
+
attr_accessor :mm
|
48
|
+
attr_accessor :nm
|
49
|
+
attr_accessor :t
|
50
|
+
attr_accessor :tumin
|
51
|
+
attr_accessor :mu
|
52
|
+
attr_accessor :radiusearthkm
|
53
|
+
attr_accessor :xke
|
54
|
+
attr_accessor :j2
|
55
|
+
attr_accessor :j3
|
56
|
+
attr_accessor :j4
|
57
|
+
attr_accessor :j3oj2
|
58
|
+
attr_accessor :dia_mm
|
59
|
+
attr_accessor :period_sec
|
60
|
+
attr_accessor :active
|
61
|
+
attr_accessor :not_orbital
|
62
|
+
attr_accessor :rcs_m2
|
63
|
+
attr_accessor :ep
|
64
|
+
attr_accessor :inclp
|
65
|
+
attr_accessor :nodep
|
66
|
+
attr_accessor :argpp
|
67
|
+
attr_accessor :mp
|
68
|
+
attr_accessor :isimp
|
69
|
+
attr_accessor :aycof
|
70
|
+
attr_accessor :con41
|
71
|
+
attr_accessor :cc1
|
72
|
+
attr_accessor :cc4
|
73
|
+
attr_accessor :cc5
|
74
|
+
attr_accessor :d2
|
75
|
+
attr_accessor :d3
|
76
|
+
attr_accessor :d4
|
77
|
+
attr_accessor :delmo
|
78
|
+
attr_accessor :eta
|
79
|
+
attr_accessor :argpdot
|
80
|
+
attr_accessor :omgcof
|
81
|
+
attr_accessor :sinmao
|
82
|
+
attr_accessor :t2cof
|
83
|
+
attr_accessor :t3cof
|
84
|
+
attr_accessor :t4cof
|
85
|
+
attr_accessor :t5cof
|
86
|
+
attr_accessor :x1mth2
|
87
|
+
attr_accessor :x7thm1
|
88
|
+
attr_accessor :mdot
|
89
|
+
attr_accessor :nodedot
|
90
|
+
attr_accessor :xlcof
|
91
|
+
attr_accessor :xmcof
|
92
|
+
attr_accessor :nodecf
|
93
|
+
attr_accessor :irez
|
94
|
+
attr_accessor :d2201
|
95
|
+
attr_accessor :d2211
|
96
|
+
attr_accessor :d3210
|
97
|
+
attr_accessor :d3222
|
98
|
+
attr_accessor :d4410
|
99
|
+
attr_accessor :d4422
|
100
|
+
attr_accessor :d5220
|
101
|
+
attr_accessor :d5232
|
102
|
+
attr_accessor :d5421
|
103
|
+
attr_accessor :d5433
|
104
|
+
attr_accessor :dedt
|
105
|
+
attr_accessor :del1
|
106
|
+
attr_accessor :del2
|
107
|
+
attr_accessor :del3
|
108
|
+
attr_accessor :didt
|
109
|
+
attr_accessor :dmdt
|
110
|
+
attr_accessor :dnodt
|
111
|
+
attr_accessor :domdt
|
112
|
+
attr_accessor :e3
|
113
|
+
attr_accessor :ee2
|
114
|
+
attr_accessor :peo
|
115
|
+
attr_accessor :pgho
|
116
|
+
attr_accessor :pho
|
117
|
+
attr_accessor :pinco
|
118
|
+
attr_accessor :plo
|
119
|
+
attr_accessor :se2
|
120
|
+
attr_accessor :se3
|
121
|
+
attr_accessor :sgh2
|
122
|
+
attr_accessor :sgh3
|
123
|
+
attr_accessor :sgh4
|
124
|
+
attr_accessor :sh2
|
125
|
+
attr_accessor :sh3
|
126
|
+
attr_accessor :si2
|
127
|
+
attr_accessor :si3
|
128
|
+
attr_accessor :sl2
|
129
|
+
attr_accessor :sl3
|
130
|
+
attr_accessor :sl4
|
131
|
+
attr_accessor :gsto
|
132
|
+
attr_accessor :xfact
|
133
|
+
attr_accessor :xgh2
|
134
|
+
attr_accessor :xgh3
|
135
|
+
attr_accessor :xgh4
|
136
|
+
attr_accessor :xh2
|
137
|
+
attr_accessor :xh3
|
138
|
+
attr_accessor :xi2
|
139
|
+
attr_accessor :xi3
|
140
|
+
attr_accessor :xl2
|
141
|
+
attr_accessor :xl3
|
142
|
+
attr_accessor :xl4
|
143
|
+
attr_accessor :xlamo
|
144
|
+
attr_accessor :zmol
|
145
|
+
attr_accessor :zmos
|
146
|
+
attr_accessor :atime
|
147
|
+
attr_accessor :xli
|
148
|
+
attr_accessor :xni
|
149
|
+
attr_accessor :snodm
|
150
|
+
attr_accessor :cnodm
|
151
|
+
attr_accessor :sinim
|
152
|
+
attr_accessor :cosim
|
153
|
+
attr_accessor :sinomm
|
154
|
+
attr_accessor :cosomm
|
155
|
+
attr_accessor :day
|
156
|
+
attr_accessor :emsq
|
157
|
+
attr_accessor :gam
|
158
|
+
attr_accessor :rtemsq
|
159
|
+
attr_accessor :s1
|
160
|
+
attr_accessor :s2
|
161
|
+
attr_accessor :s3
|
162
|
+
attr_accessor :s4
|
163
|
+
attr_accessor :s5
|
164
|
+
attr_accessor :s6
|
165
|
+
attr_accessor :s7
|
166
|
+
attr_accessor :ss1
|
167
|
+
attr_accessor :ss2
|
168
|
+
attr_accessor :ss3
|
169
|
+
attr_accessor :ss4
|
170
|
+
attr_accessor :ss5
|
171
|
+
attr_accessor :ss6
|
172
|
+
attr_accessor :ss7
|
173
|
+
attr_accessor :sz1
|
174
|
+
attr_accessor :sz2
|
175
|
+
attr_accessor :sz3
|
176
|
+
attr_accessor :sz11
|
177
|
+
attr_accessor :sz12
|
178
|
+
attr_accessor :sz13
|
179
|
+
attr_accessor :sz21
|
180
|
+
attr_accessor :sz22
|
181
|
+
attr_accessor :sz23
|
182
|
+
attr_accessor :sz31
|
183
|
+
attr_accessor :sz32
|
184
|
+
attr_accessor :sz33
|
185
|
+
attr_accessor :z1
|
186
|
+
attr_accessor :z2
|
187
|
+
attr_accessor :z3
|
188
|
+
attr_accessor :z11
|
189
|
+
attr_accessor :z12
|
190
|
+
attr_accessor :z13
|
191
|
+
attr_accessor :z21
|
192
|
+
attr_accessor :z22
|
193
|
+
attr_accessor :z23
|
194
|
+
attr_accessor :z31
|
195
|
+
attr_accessor :z32
|
196
|
+
attr_accessor :z33
|
197
|
+
attr_accessor :argpm
|
198
|
+
attr_accessor :inclm
|
199
|
+
attr_accessor :nodem
|
200
|
+
attr_accessor :dndt
|
201
|
+
attr_accessor :eccsq
|
202
|
+
attr_accessor :ainv
|
203
|
+
attr_accessor :ao
|
204
|
+
attr_accessor :con42
|
205
|
+
attr_accessor :cosio
|
206
|
+
attr_accessor :cosio2
|
207
|
+
attr_accessor :omeosq
|
208
|
+
attr_accessor :posq
|
209
|
+
attr_accessor :rp
|
210
|
+
attr_accessor :rteosq
|
211
|
+
attr_accessor :sinio
|
212
|
+
|
213
|
+
def initialize
|
214
|
+
@whichconst = 2 #SGP4.wgs72
|
215
|
+
@satnum = 0
|
216
|
+
@epochyr = 0
|
217
|
+
@epochtynumrev = 0
|
218
|
+
@error = 0
|
219
|
+
@operationmode = 0
|
220
|
+
@init = 0
|
221
|
+
@method = 0
|
222
|
+
@a = 0.0
|
223
|
+
@altp = 0.0
|
224
|
+
@alta = 0.0
|
225
|
+
@epochdays = 0.0
|
226
|
+
@jdsatepoch = 0.0
|
227
|
+
@jdsatepochF = 0.0
|
228
|
+
@nddot = 0.0
|
229
|
+
@ndot = 0.0
|
230
|
+
@bstar = 0.0
|
231
|
+
@rcse = 0.0
|
232
|
+
@inclo = 0.0
|
233
|
+
@nodeo = 0.0
|
234
|
+
@ecco = 0.0
|
235
|
+
@argpo = 0.0
|
236
|
+
@mo = 0.0
|
237
|
+
@no_kozai = 0.0
|
238
|
+
|
239
|
+
# sgp4fix add new variables from tle
|
240
|
+
@classification = "U"
|
241
|
+
@intldesg = ""
|
242
|
+
@ephtype = 0
|
243
|
+
@elnum = 0
|
244
|
+
@revnum = 0
|
245
|
+
|
246
|
+
# sgp4fix add unkozai'd variable
|
247
|
+
@no_unkozai = 0.0
|
248
|
+
# sgp4fix add singly averaged variables
|
249
|
+
@am = 0.0
|
250
|
+
@em = 0.0
|
251
|
+
@im = 0.0
|
252
|
+
@Om = 0.0
|
253
|
+
@om = 0.0
|
254
|
+
@mm = 0.0
|
255
|
+
@nm = 0.0
|
256
|
+
@t = 0.0
|
257
|
+
|
258
|
+
# sgp4fix add constant parameters to eliminate mutliple calls during execution
|
259
|
+
@tumin = 0.0
|
260
|
+
@mu = 0.0
|
261
|
+
@radiusearthkm = 0.0
|
262
|
+
@xke = 0.0
|
263
|
+
@j2 = 0.0
|
264
|
+
@j3 = 0.0
|
265
|
+
@j4 = 0.0
|
266
|
+
@j3oj2 = 0.0
|
267
|
+
|
268
|
+
# Additional elements to capture relevant TLE and object information:
|
269
|
+
@dia_mm = 0 # RSO dia in mm
|
270
|
+
@period_sec = 0.0 # Period in seconds
|
271
|
+
@active = 0 # "Active S/C" flag (0=n, 1=y)
|
272
|
+
@not_orbital = 0 # "Orbiting S/C" flag (0=n, 1=y)
|
273
|
+
@rcs_m2 = 0.0 # "RCS (m^2)" storage
|
274
|
+
|
275
|
+
# temporary variables because the original authors call the same method with different variables
|
276
|
+
@ep = 0.0
|
277
|
+
@inclp = 0.0
|
278
|
+
@nodep = 0.0
|
279
|
+
@argpp = 0.0
|
280
|
+
@mp = 0.0
|
281
|
+
|
282
|
+
@isimp = 0
|
283
|
+
@aycof = 0.0
|
284
|
+
@con41 = 0.0
|
285
|
+
@cc1 = 0.0
|
286
|
+
@cc4 = 0.0
|
287
|
+
@cc5 = 0.0
|
288
|
+
@d2 = 0.0
|
289
|
+
@d3 = 0.0
|
290
|
+
@d4 = 0.0
|
291
|
+
@delmo = 0.0
|
292
|
+
@eta = 0.0
|
293
|
+
@argpdot = 0.0
|
294
|
+
@omgcof = 0.0
|
295
|
+
@sinmao = 0.0
|
296
|
+
@t2cof = 0.0
|
297
|
+
@t3cof = 0.0
|
298
|
+
@t4cof = 0.0
|
299
|
+
@t5cof = 0.0
|
300
|
+
@x1mth2 = 0.0
|
301
|
+
@x7thm1 = 0.0
|
302
|
+
@mdot = 0.0
|
303
|
+
@nodedot = 0.0
|
304
|
+
@xlcof = 0.0
|
305
|
+
@xmcof = 0.0
|
306
|
+
@nodecf = 0.0
|
307
|
+
|
308
|
+
# deep space
|
309
|
+
@irez = 0
|
310
|
+
@d2201 = 0.0
|
311
|
+
@d2211 = 0.0
|
312
|
+
@d3210 = 0.0
|
313
|
+
@d3222 = 0.0
|
314
|
+
@d4410 = 0.0
|
315
|
+
@d4422 = 0.0
|
316
|
+
@d5220 = 0.0
|
317
|
+
@d5232 = 0.0
|
318
|
+
@d5421 = 0.0
|
319
|
+
@d5433 = 0.0
|
320
|
+
@dedt = 0.0
|
321
|
+
@del1 = 0.0
|
322
|
+
@del2 = 0.0
|
323
|
+
@del3 = 0.0
|
324
|
+
@didt = 0.0
|
325
|
+
@dmdt = 0.0
|
326
|
+
@dnodt = 0.0
|
327
|
+
@domdt = 0.0
|
328
|
+
@e3 = 0.0
|
329
|
+
@ee2 = 0.0
|
330
|
+
@peo = 0.0
|
331
|
+
@pgho = 0.0
|
332
|
+
@pho = 0.0
|
333
|
+
@pinco = 0.0
|
334
|
+
@plo = 0.0
|
335
|
+
@se2 = 0.0
|
336
|
+
@se3 = 0.0
|
337
|
+
@sgh2 = 0.0
|
338
|
+
@sgh3 = 0.0
|
339
|
+
@sgh4 = 0.0
|
340
|
+
@sh2 = 0.0
|
341
|
+
@sh3 = 0.0
|
342
|
+
@si2 = 0.0
|
343
|
+
@si3 = 0.0
|
344
|
+
@sl2 = 0.0
|
345
|
+
@sl3 = 0.0
|
346
|
+
@sl4 = 0.0
|
347
|
+
@gsto = 0.0
|
348
|
+
@xfact = 0.0
|
349
|
+
@xgh2 = 0.0
|
350
|
+
@xgh3 = 0.0
|
351
|
+
@xgh4 = 0.0
|
352
|
+
@xh2 = 0.0
|
353
|
+
@xh3 = 0.0
|
354
|
+
@xi2 = 0.0
|
355
|
+
@xi3 = 0.0
|
356
|
+
@xl2 = 0.0
|
357
|
+
@xl3 = 0.0
|
358
|
+
@xl4 = 0.0
|
359
|
+
@xlamo = 0.0
|
360
|
+
@zmol = 0.0
|
361
|
+
@zmos = 0.0
|
362
|
+
@atime = 0.0
|
363
|
+
@xli = 0.0
|
364
|
+
@xni = 0.0
|
365
|
+
@snodm = 0.0
|
366
|
+
@cnodm = 0.0
|
367
|
+
@sinim = 0.0
|
368
|
+
@cosim = 0.0
|
369
|
+
@sinomm = 0.0
|
370
|
+
@cosomm = 0.0
|
371
|
+
@day = 0.0
|
372
|
+
@emsq = 0.0
|
373
|
+
@gam = 0.0
|
374
|
+
@rtemsq = 0.0
|
375
|
+
@s1 = 0.0
|
376
|
+
@s2 = 0.0
|
377
|
+
@s3 = 0.0
|
378
|
+
@s4 = 0.0
|
379
|
+
@s5 = 0.0
|
380
|
+
@s6 = 0.0
|
381
|
+
@s7 = 0.0
|
382
|
+
@ss1 = 0.0
|
383
|
+
@ss2 = 0.0
|
384
|
+
@ss3 = 0.0
|
385
|
+
@ss4 = 0.0
|
386
|
+
@ss5 = 0.0
|
387
|
+
@ss6 = 0.0
|
388
|
+
@ss7 = 0.0
|
389
|
+
@sz1 = 0.0
|
390
|
+
@sz2 = 0.0
|
391
|
+
@sz3 = 0.0
|
392
|
+
@sz11 = 0.0
|
393
|
+
@sz12 = 0.0
|
394
|
+
@sz13 = 0.0
|
395
|
+
@sz21 = 0.0
|
396
|
+
@sz22 = 0.0
|
397
|
+
@sz23 = 0.0
|
398
|
+
@sz31 = 0.0
|
399
|
+
@sz32 = 0.0
|
400
|
+
@sz33 = 0.0
|
401
|
+
@z1 = 0.0
|
402
|
+
@z2 = 0.0
|
403
|
+
@z3 = 0.0
|
404
|
+
@z11 = 0.0
|
405
|
+
@z12 = 0.0
|
406
|
+
@z13 = 0.0
|
407
|
+
@z21 = 0.0
|
408
|
+
@z22 = 0.0
|
409
|
+
@z23 = 0.0
|
410
|
+
@z31 = 0.0
|
411
|
+
@z32 = 0.0
|
412
|
+
@z33 = 0.0
|
413
|
+
@argpm = 0.0
|
414
|
+
@inclm = 0.0
|
415
|
+
@nodem = 0.0
|
416
|
+
@dndt = 0.0
|
417
|
+
@eccsq = 0.0
|
418
|
+
|
419
|
+
# for initl
|
420
|
+
@ainv = 0.0
|
421
|
+
@ao = 0.0
|
422
|
+
@con42 = 0.0
|
423
|
+
@cosio = 0.0
|
424
|
+
@cosio2 = 0.0
|
425
|
+
@omeosq = 0.0
|
426
|
+
@posq = 0.0
|
427
|
+
@rp = 0.0
|
428
|
+
@rteosq = 0.0
|
429
|
+
@sinio = 0.0
|
430
|
+
end
|
431
|
+
end
|
432
|
+
end
|