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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d844574b98c6fe33241edac6be121c39c8a509b405ab1d5478aca0de1426465
4
- data.tar.gz: 72ba006521490f7e0670ebb800457b34738df3ebbc6fd75cdcfa56259816610e
3
+ metadata.gz: 2e1fb6aee8c669efdda379b50b45af24fc6fabf6514972cbfc93a8156c54f533
4
+ data.tar.gz: cde0a77ead9cecb840aa1fad00693c5a5c61428ae6cd6f905f2faf05ec1973d7
5
5
  SHA512:
6
- metadata.gz: 3f169b773a67dd872046d08f605c7c6319930a069133c4b8732a8e7bf6953d0a64fd065b75404990cf69ac2d2892e014f6977385ae07b652e20267e2b1ebcc3e
7
- data.tar.gz: 135c8c52c2cc1b25aa543c087ec4a6c9f3ac784c3042864398363f5258b08a9e1e0463dc2a6afe6dc150765e1183d6131e9bc32db39d5fb7b362c0f48055c6a4
6
+ metadata.gz: 8981644e546a11c656d83c751aa9e9ce19046df56258287a1f9219401377feef7def725de5d4cfa75481dd156179cd93404cc89d20aa80b0761ac0fba42c4d93
7
+ data.tar.gz: 17306bb686d434c116d531681a6dcabd4998825e24ec042e65f1d08b84350e80a2645603ece086edf2c8d124811f641f0706011e5d32b29da687482c3ee61c5b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.6.0] - 2024-12-27
2
+
3
+ - Enable use SGP4
4
+
1
5
  ## [0.5.0] - 2024-12-15
2
6
 
3
7
  - Enable transformation to Cartesian elements
@@ -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