keplemon 0.1.9__cp313-cp313-win_amd64.whl → 2.0.2__cp313-cp313-win_amd64.whl

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.
keplemon/events.pyi CHANGED
@@ -1,14 +1,42 @@
1
1
  # flake8: noqa
2
- from keplemon.time import Epoch
2
+ from keplemon.time import Epoch, TimeSpan
3
+ from keplemon.elements import HorizonState, CartesianVector, TopocentricElements
4
+ from keplemon.enums import ReferenceFrame
5
+
6
+ class FieldOfViewCandidate:
7
+ satellite_id: str
8
+ """ID of the candidate satellite"""
9
+
10
+ direction: TopocentricElements
11
+ """Measured direction to the candidate satellite in the sensor's topocentric frame"""
12
+
13
+ class FieldOfViewReport:
14
+ epoch: Epoch
15
+ """UTC epoch of the field of view report"""
16
+
17
+ sensor_position: CartesianVector
18
+ """TEME position of the sensor in the observatory's topocentric frame in **_kilometers_**"""
19
+
20
+ sensor_direction: TopocentricElements
21
+ """Direction of the sensor in the observatory's topocentric frame"""
22
+
23
+ fov_angle: float
24
+ """Field of view angle of the sensor in **_degrees_**"""
25
+
26
+ candidates: list[FieldOfViewCandidate]
27
+ """List of candidate satellites within the field of view"""
28
+
29
+ reference_frame: ReferenceFrame
30
+ """Reference frame of the output direction elements"""
3
31
 
4
32
  class CloseApproach:
5
33
  epoch: Epoch
6
34
  """UTC epoch of the close approach"""
7
35
 
8
- primary_id: int
36
+ primary_id: str
9
37
  """Satellite ID of the primary body in the close approach"""
10
38
 
11
- secondary_id: int
39
+ secondary_id: str
12
40
  """Satellite ID of the secondary body in the close approach"""
13
41
 
14
42
  distance: float
@@ -27,3 +55,49 @@ class CloseApproachReport:
27
55
 
28
56
  distance_threshold: float
29
57
  def __init__(self, start: Epoch, end: Epoch, distance_threshold: float) -> None: ...
58
+
59
+ class HorizonAccess:
60
+
61
+ satellite_id: str
62
+ """ID of the satellite for which the access is calculated"""
63
+
64
+ observatory_id: str
65
+ """ID of the observatory for which the access is calculated"""
66
+
67
+ start: HorizonState
68
+ """State of the satellite at the start of the access period"""
69
+
70
+ end: HorizonState
71
+ """State of the satellite at the end of the access period"""
72
+
73
+ class HorizonAccessReport:
74
+ """
75
+ Args:
76
+ start: UTC epoch of the start of the access report
77
+ end: UTC epoch of the end of the access report
78
+ min_elevation: Minimum elevation angle for access in **_degrees_**
79
+ min_duration: Minimum duration of access
80
+ """
81
+
82
+ accesses: list[HorizonAccess]
83
+ """List of horizon accesses found during the screening"""
84
+
85
+ elevation_threshold: float
86
+ """Minimum elevation angle for access in **_degrees_**"""
87
+
88
+ start: Epoch
89
+ """UTC epoch of the start of the access report"""
90
+
91
+ end: Epoch
92
+ """UTC epoch of the end of the access report"""
93
+
94
+ duration_threshold: TimeSpan
95
+ """Minimum duration of a valid access"""
96
+
97
+ def __init__(
98
+ self,
99
+ start: Epoch,
100
+ end: Epoch,
101
+ min_elevation: float,
102
+ min_duration: TimeSpan,
103
+ ) -> None: ...
keplemon/exceptions.py ADDED
@@ -0,0 +1,5 @@
1
+ from keplemon._keplemon.exceptions import ( # type: ignore
2
+ SAALError,
3
+ )
4
+
5
+ __all__ = ["SAALError"]
keplemon/propagation.py CHANGED
@@ -1,5 +1,7 @@
1
1
  from keplemon._keplemon.propagation import ( # type: ignore
2
2
  ForceProperties,
3
+ b_star_to_drag_coefficient,
4
+ drag_coefficient_to_b_star,
3
5
  )
4
6
 
5
- __all__ = ["ForceProperties"]
7
+ __all__ = ["ForceProperties", "b_star_to_drag_coefficient", "drag_coefficient_to_b_star"]
keplemon/propagation.pyi CHANGED
@@ -17,3 +17,11 @@ class ForceProperties:
17
17
  mean_motion_dot: float,
18
18
  mean_motion_dot_dot: float,
19
19
  ) -> None: ...
20
+
21
+ def b_star_to_drag_coefficient(b_star: float) -> float:
22
+ """Convert B* to drag coefficient."""
23
+ ...
24
+
25
+ def drag_coefficient_to_b_star(drag_coefficient: float) -> float:
26
+ """Convert drag coefficient to B*."""
27
+ ...
@@ -0,0 +1,10 @@
1
+ from keplemon._keplemon.saal import ( # type: ignore
2
+ SensorInterface,
3
+ SAALSensor,
4
+ ObsInterface,
5
+ SAALObservation,
6
+ MainInterface,
7
+ TLEInterface,
8
+ )
9
+
10
+ __all__ = ["SensorInterface", "SAALSensor", "ObsInterface", "SAALObservation", "MainInterface", "TLEInterface"]
@@ -0,0 +1,562 @@
1
+ # flake8: noqa
2
+ from keplemon.enums import SAALKeyMode
3
+
4
+ class TLEInterface:
5
+ # TLE types (TLE ephemeris types) - They are different than ELTTYPE
6
+ # TLE SGP elset (Kozai mean motion)
7
+ TLETYPE_SGP: int
8
+ # TLE SGP4 elset (Brouwer mean motion)
9
+ TLETYPE_SGP4: int
10
+ # TLE SGP4-XP elset (Brouwer mean motion)
11
+ TLETYPE_XP: int
12
+ # TLE SP elset (osculating elements)
13
+ TLETYPE_SP: int
14
+
15
+ # Indexes of TLE data fields
16
+ # Satellite number
17
+ XF_TLE_SATNUM: int
18
+ # Security classification U: unclass, C: confidential, S: Secret
19
+ XF_TLE_CLASS: int
20
+ # Satellite name A8
21
+ XF_TLE_SATNAME: int
22
+ # Satellite's epoch time "YYYYJJJ.jjjjjjjj"
23
+ XF_TLE_EPOCH: int
24
+ # GP B* drag term (1/er) (not the same as XF_TLE_BTERM)
25
+ XF_TLE_BSTAR: int
26
+ # Satellite ephemeris type: 0=SGP, 2=SGP4, 4=SGP4-XP, 6=SP
27
+ XF_TLE_EPHTYPE: int
28
+ # Element set number
29
+ XF_TLE_ELSETNUM: int
30
+ # Orbit inclination (deg)
31
+ XF_TLE_INCLI: int
32
+ # Right ascension of asending node (deg)
33
+ XF_TLE_NODE: int
34
+ # Eccentricity
35
+ XF_TLE_ECCEN: int
36
+ # Argument of perigee (deg)
37
+ XF_TLE_OMEGA: int
38
+ # Mean anomaly (deg)
39
+ XF_TLE_MNANOM: int
40
+ # Mean motion (rev/day) (ephType=0: Kozai, ephType=2: Brouwer)
41
+ XF_TLE_MNMOTN: int
42
+ # Revolution number at epoch
43
+ XF_TLE_REVNUM: int
44
+
45
+ # GP Mean motion derivative (rev/day /2)
46
+ XF_TLE_NDOT: int
47
+ # GP Mean motion second derivative (rev/day**2 /6)
48
+ XF_TLE_NDOTDOT: int
49
+ # Solar radiation pressure GP (m2/kg)
50
+ XF_TLE_AGOMGP: int
51
+
52
+ # SP Radiation Pressure Coefficient
53
+ XF_TLE_SP_AGOM: int
54
+ # SP ballistic coefficient (m2/kg)
55
+ XF_TLE_SP_BTERM: int
56
+ # SP outgassing parameter (km/s2)
57
+ XF_TLE_SP_OGPARM: int
58
+
59
+ # Original satellite number
60
+ XF_TLE_ORGSATNUM: int
61
+ # GP ballistic coefficient (m2/kg) (not the same as XF_TLE_BSTAR)
62
+ XF_TLE_BTERM: int
63
+ # Time of last observation relative to epoch +/- fractional days
64
+ XF_TLE_OBSTIME: int
65
+ # Last calculated error growth rate (km/day)
66
+ XF_TLE_EGR: int
67
+ # Last calculated energy dissipation rate (w/kg)
68
+ XF_TLE_EDR: int
69
+ # Median Vismag
70
+ XF_TLE_VISMAG: int
71
+ # Median RCS - diameter in centimeters (cm)
72
+ XF_TLE_RCS: int
73
+ # Object Type (Payload, Rocket Body, Platform, Debris, Unknown)
74
+ XF_TLE_OBJTYPE: int
75
+ # Satellite name A12 (upto 12 character long)
76
+ XF_TLE_SATNAME_12: int
77
+
78
+ # Indexes of TLE numerical data in an array
79
+ # Line 1
80
+ # Satellite number
81
+ XA_TLE_SATNUM: int
82
+ # Satellite's epoch time in DS50UTC
83
+ XA_TLE_EPOCH: int
84
+ # GP Mean motion derivative (rev/day /2)
85
+ XA_TLE_NDOT: int
86
+ # GP Mean motion second derivative (rev/day**2 /6)
87
+ XA_TLE_NDOTDOT: int
88
+ # GP B* drag term (1/er)
89
+ XA_TLE_BSTAR: int
90
+ # Satellite ephemeris type: 0=SGP, 2=SGP4, 4=SGP4-XP, 6=SP
91
+ XA_TLE_EPHTYPE: int
92
+
93
+ # Line 2
94
+ # Orbit inclination (deg)
95
+ XA_TLE_INCLI: int
96
+ # Right ascension of asending node (deg)
97
+ XA_TLE_NODE: int
98
+ # Eccentricity
99
+ XA_TLE_ECCEN: int
100
+ # Argument of perigee (deg)
101
+ XA_TLE_OMEGA: int
102
+ # Mean anomaly (deg)
103
+ XA_TLE_MNANOM: int
104
+ # Mean motion (rev/day) (ephType=0, 4: Kozai, ephType=2: Brouwer)
105
+ XA_TLE_MNMOTN: int
106
+ # Revolution number at epoch
107
+ XA_TLE_REVNUM: int
108
+ # Element set number
109
+ XA_TLE_ELSETNUM: int
110
+
111
+ # CSV (or TLE-XP, ephemType=4) specific fields
112
+ # Original satellite number
113
+ XA_TLE_ORGSATNUM: int
114
+ # SP/SGP4-XP ballistic coefficient (m2/kg)
115
+ XA_TLE_BTERM: int
116
+ # Time of last observation relative to epoch +/- fractional days
117
+ XA_TLE_OBSTIME: int
118
+ # Last calculated error growth rate (km/day)
119
+ XA_TLE_EGR: int
120
+ # Last calculated energy dissipation rate (w/kg)
121
+ XA_TLE_EDR: int
122
+ # Median Vismag
123
+ XA_TLE_VISMAG: int
124
+ # Median RCS - diameter in centimeters (cm)
125
+ XA_TLE_RCS: int
126
+
127
+ # CSV (or TLE-XP, ephemType=4)
128
+ # Solar Radiation Pressure Coefficient GP (m2/kg)
129
+ XA_TLE_AGOMGP: int
130
+
131
+ # SP specific fields
132
+ # SP ballistic coefficient (m2/kg)
133
+ XA_TLE_SP_BTERM: int
134
+ # SP outgassing parameter (km/s2)
135
+ XA_TLE_SP_OGPARM: int
136
+ # SP Radiation Pressure Coefficient
137
+ XA_TLE_SP_AGOM: int
138
+
139
+ XA_TLE_SIZE: int
140
+
141
+ # Indexes of TLE text data in an array of chars
142
+ # Security classification of line 1 and line 2
143
+ XS_TLE_SECCLASS_1: int
144
+ # Satellite name
145
+ XS_TLE_SATNAME_12: int
146
+ # Object Type (Payload, Rocket Body, Platform, Debris, Unknown) - csv only
147
+ XS_TLE_OBJTYPE_11: int
148
+
149
+ XS_TLE_SIZE: int
150
+
151
+ # TLE's text data fields - new convention (start index, string length)
152
+ # Security classification of line 1 and line 2
153
+ XS_TLE_SECCLASS_0_1: int
154
+ # Satellite name
155
+ XS_TLE_SATNAME_1_12: int
156
+ # Object Type (Payload, Rocket Body, Platform, Debris, Unknown) - csv only
157
+ XS_TLE_OBJTYPE_13_1: int
158
+
159
+ XS_TLE_LENGTH: int
160
+
161
+ # Indexes of different TLE file's formats
162
+ # Original TLE format
163
+ XF_TLEFORM_ORG: int
164
+ # CSV format
165
+ XF_TLEFORM_CSV: int
166
+ @staticmethod
167
+ def get_check_sums(line_1: str, line_2: str) -> tuple[int, int]: ...
168
+
169
+ class MainInterface:
170
+ @staticmethod
171
+ def get_key_mode() -> SAALKeyMode: ...
172
+ @staticmethod
173
+ def set_key_mode(mode: SAALKeyMode) -> None: ...
174
+
175
+ class SAALSensor:
176
+ key: int
177
+ """Unique key used to retrieve this sensor from the SensorInterface"""
178
+ number: int
179
+ """3-digit sensor number"""
180
+ minimum_range: float | None
181
+ """Minimum range used for access checks"""
182
+ maximum_range: float | None
183
+ """Maximum range used for access checks"""
184
+ range_rate_limit: float | None
185
+ """Range rate limit used for access checks"""
186
+ apply_range_limits: bool
187
+ """Whether to apply range limits during access checks"""
188
+ mobile: bool
189
+ """Whether the sensor is mobile"""
190
+ latitude: float
191
+ """Geodetic latitude of the sensor (deg)"""
192
+ longitude: float
193
+ """Geodetic longitude of the sensor (deg)"""
194
+ altitude: float
195
+ """Altitude of the sensor (km)"""
196
+ astronomical_latitude: float
197
+ """Astronomical latitude of the sensor (deg)"""
198
+ astronomical_longitude: float
199
+ """Astronomical longitude of the sensor (deg)"""
200
+ azimuth_noise: float | None
201
+ """Azimuth noise standard deviation (deg)"""
202
+ elevation_noise: float | None
203
+ """Elevation noise standard deviation (deg)"""
204
+ range_noise: float | None
205
+ """Range noise standard deviation (km)"""
206
+ range_rate_noise: float | None
207
+ """Range rate noise standard deviation (km/s)"""
208
+ azimuth_rate_noise: float | None
209
+ """Azimuth rate noise standard deviation (deg/s)"""
210
+ elevation_rate_noise: float | None
211
+ """Elevation rate noise standard deviation (deg/s)"""
212
+ angular_noise: float | None
213
+ """Combined angular noise standard deviation (deg)"""
214
+ description: str | None
215
+ """24-character sensor description/narrative/notes"""
216
+
217
+ class SensorInterface:
218
+
219
+ XA_SEN_GEN_SENNUM: int
220
+ """Index for sensor number in sensor data array"""
221
+
222
+ XA_SEN_GEN_MINRNG: int
223
+ """Index for minimum range in sensor data array"""
224
+
225
+ XA_SEN_GEN_MAXRNG: int
226
+ """Index for maximum range in sensor data array"""
227
+
228
+ XA_SEN_GEN_RRLIM: int
229
+ """Index for range rate limit in sensor data array"""
230
+
231
+ XA_SEN_GEN_RNGLIMFLG: int
232
+ """Index for range limit flag in sensor data array"""
233
+
234
+ XA_SEN_GEN_SMSEN: int
235
+ """Index for sensor mobility flag in sensor data array"""
236
+
237
+ XA_SEN_GRN_LOCTYPE: int
238
+ """Index for ground sensor location type in sensor data array"""
239
+
240
+ XA_SEN_GRN_POS1: int
241
+ """Index for ground sensor position component 1 in sensor data array"""
242
+
243
+ XA_SEN_GRN_POS2: int
244
+ """Index for ground sensor position component 2 in sensor data array"""
245
+
246
+ XA_SEN_GRN_POS3: int
247
+ """Index for ground sensor position component 3 in sensor data array"""
248
+
249
+ XA_SEN_GRN_ASTROLAT: int
250
+ """Index for ground sensor astronomical latitude in sensor data array"""
251
+
252
+ XA_SEN_GRN_ASTROLON: int
253
+ """Index for ground sensor astronomical longitude in sensor data array"""
254
+
255
+ XA_SEN_GRN_ECITIME: int
256
+ """Index for ground sensor ECI time in sensor data array"""
257
+
258
+ XA_SEN_GEN_ELSIGMA: int
259
+ """Index for elevation noise standard deviation in sensor data array"""
260
+
261
+ XA_SEN_GEN_AZSIGMA: int
262
+ """Index for azimuth noise standard deviation in sensor data array"""
263
+
264
+ XA_SEN_GEN_RGSIGMA: int
265
+ """Index for range noise standard deviation in sensor data array"""
266
+
267
+ XA_SEN_GEN_RRSIGMA: int
268
+ """Index for range rate noise standard deviation in sensor data array"""
269
+
270
+ XA_SEN_GEN_ARSIGMA: int
271
+ """Index for azimuth rate noise standard deviation in sensor data array"""
272
+
273
+ XA_SEN_GEN_ERSIGMA: int
274
+ """Index for elevation rate noise standard deviation in sensor data array"""
275
+
276
+ XA_SEN_GEN_ELBIAS: int
277
+ """Index for elevation bias in sensor data array"""
278
+
279
+ XA_SEN_GEN_AZBIAS: int
280
+ """Index for azimuth bias in sensor data array"""
281
+
282
+ XA_SEN_GEN_RGBIAS: int
283
+ """Index for range bias in sensor data array"""
284
+
285
+ XA_SEN_GEN_RRBIAS: int
286
+ """Index for range rate bias in sensor data array"""
287
+
288
+ XA_SEN_GEN_TIMEBIAS: int
289
+ """Index for time bias in sensor data array"""
290
+
291
+ XA_SEN_SIZE: int
292
+ """Array size for sensor data"""
293
+
294
+ @staticmethod
295
+ def get_astronomical_ll(sen_key: int) -> list[float]:
296
+ """Get the sensor's astronomical latitude and longitude
297
+
298
+ !!! warning
299
+ West is positive longitude in this system.
300
+
301
+ Args:
302
+ sen_key (int): The sensor key in the SAAL binary tree
303
+
304
+ Returns:
305
+ [latitude (deg), longitude (deg)]
306
+ """
307
+
308
+ @staticmethod
309
+ def get_lla(sen_key: int) -> list[float]: ...
310
+ @staticmethod
311
+ def get_loaded_keys() -> list[int]: ...
312
+ @staticmethod
313
+ def load_card(card: str) -> None: ...
314
+ @staticmethod
315
+ def remove_key(sen_key: int) -> None: ...
316
+ @staticmethod
317
+ def count_loaded() -> int: ...
318
+ @staticmethod
319
+ def get(sen_key: int) -> "SAALSensor": ...
320
+ @staticmethod
321
+ def load_file(file_path: str) -> None: ...
322
+ @staticmethod
323
+ def remove_all() -> None: ...
324
+ @staticmethod
325
+ def get_all() -> list["SAALSensor"]: ...
326
+ @staticmethod
327
+ def prune_missing_locations() -> None: ...
328
+ @staticmethod
329
+ def get_arrays(sen_key: int) -> tuple[list[float], str]: ...
330
+
331
+ class SAALObservation:
332
+
333
+ security_character: str
334
+ """Classification of the observation"""
335
+
336
+ satellite_number: int
337
+ """Identifier for the target"""
338
+
339
+ sensor_number: int
340
+ """Identifier for the observer"""
341
+
342
+ epoch_ds50utc: float
343
+ """Epoch of the observation in DS50 UTC format"""
344
+
345
+ elevation_or_declination: float
346
+ """TEME Elevation or Declination in degrees"""
347
+
348
+ azimuth_or_right_ascension: float
349
+ """TEME Azimuth or Right Ascension in degrees"""
350
+
351
+ slant_range: float
352
+ """Range from observer to target in kilometers"""
353
+
354
+ range_rate: float
355
+ """Rate of change of slant range in kilometers/second"""
356
+
357
+ elevation_rate: float
358
+ """Rate of change of elevation/declination in degrees/second"""
359
+
360
+ azimuth_rate: float
361
+ """Rate of change of azimuth/right ascension in degrees/second"""
362
+
363
+ range_acceleration: float
364
+ """Acceleration of slant range in kilometers/second^2"""
365
+
366
+ observation_type: str
367
+ """B3 type of observation"""
368
+
369
+ track_position_indicator: int
370
+ """Indicator of track position (3==beginning, 4==middle, 5==end)"""
371
+
372
+ association_status: int
373
+ """Association status of the observation"""
374
+
375
+ site_tag: int
376
+ """Identifier for the target as labeled by the observer"""
377
+
378
+ spadoc_tag: int
379
+ """Identifier for the target as labeled by SPADOC"""
380
+
381
+ position: list[float]
382
+ """Sensor position in TEME coordinates (X, Y, Z) in kilometers"""
383
+
384
+ def __init__(self, b3_string: str) -> None:
385
+ """Parser for B3 observation strings"""
386
+
387
+ class ObsInterface:
388
+ """Interface for working with observation data"""
389
+
390
+ XA_OBS_SECCLASS: int
391
+ """Index for security classification (1=Unclassified, 2=Confidential, 3=Secret)"""
392
+
393
+ XA_OBS_SATNUM: int
394
+ """Index for satellite number"""
395
+
396
+ XA_OBS_SENNUM: int
397
+ """Index for sensor number"""
398
+
399
+ XA_OBS_DS50UTC: int
400
+ """Index for observation time in days since 1950 UTC"""
401
+
402
+ XA_OBS_OBSTYPE: int
403
+ """Index for observation type"""
404
+
405
+ XA_OBS_ELORDEC: int
406
+ """Index for elevation (ob type 1,2,3,4,8) or declination (ob type 5,9) (deg)"""
407
+
408
+ XA_OBS_AZORRA: int
409
+ """Index for azimuth (ob type 1,2,3,4,8) or right ascension (ob type 5,9) (deg)"""
410
+
411
+ XA_OBS_RANGE: int
412
+ """Index for range (km)"""
413
+
414
+ XA_OBS_RANGERATE: int
415
+ """Index for range rate (km/s) for non-optical obs type"""
416
+
417
+ XA_OBS_ELRATE: int
418
+ """Index for elevation rate (deg/s)"""
419
+
420
+ XA_OBS_AZRATE: int
421
+ """Index for azimuth rate (deg/s)"""
422
+
423
+ XA_OBS_RANGEACCEL: int
424
+ """Index for range acceleration (km/s^2)"""
425
+
426
+ XA_OBS_TRACKIND: int
427
+ """Index for track position indicator (3=start track, 4=in track, 5=end track)"""
428
+
429
+ XA_OBS_ASTAT: int
430
+ """Index for association status assigned by SPADOC"""
431
+
432
+ XA_OBS_SITETAG: int
433
+ """Index for original satellite number"""
434
+
435
+ XA_OBS_SPADOCTAG: int
436
+ """Index for SPADOC-assigned tag number"""
437
+
438
+ XA_OBS_POSX: int
439
+ """Index for position X/ECI or X/EFG (km)"""
440
+
441
+ XA_OBS_POSY: int
442
+ """Index for position Y/ECI or Y/EFG (km)"""
443
+
444
+ XA_OBS_POSZ: int
445
+ """Index for position Z/ECI or Z/EFG (km)"""
446
+
447
+ XA_OBS_VELX: int
448
+ """Index for velocity X/ECI (km/s) or Edot/EFG (km) for ob type 7 TTY"""
449
+
450
+ XA_OBS_VELY: int
451
+ """Index for velocity Y/ECI (km/s) or Fdot/EFG (km) for ob type 7 TTY"""
452
+
453
+ XA_OBS_VELZ: int
454
+ """Index for velocity Z/ECI (km/s) or Gdot/EFG (km) for ob type 7 TTY"""
455
+
456
+ XA_OBS_YROFEQNX: int
457
+ """Index for year of equinox indicator for obs type 5/9 (0=Time of obs, 1=0 Jan of date, 2=J2000, 3=B1950)"""
458
+
459
+ XA_OBS_ABERRATION: int
460
+ """Index for aberration indicator (0=not corrected, 1=corrected)"""
461
+
462
+ XA_OBS_AZORRABIAS: int
463
+ """Index for AZ/RA bias (deg)"""
464
+
465
+ XA_OBS_ELORDECBIAS: int
466
+ """Index for EL/DEC bias (deg)"""
467
+
468
+ XA_OBS_RGBIAS: int
469
+ """Index for range bias (km)"""
470
+
471
+ XA_OBS_RRBIAS: int
472
+ """Index for range-rate bias (km/sec)"""
473
+
474
+ XA_OBS_TIMEBIAS: int
475
+ """Index for time bias (sec)"""
476
+
477
+ XA_OBS_RAZORRABIAS: int
478
+ """Index for AZ/RA rate bias (deg/sec)"""
479
+
480
+ XA_OBS_RELORDECBIAS: int
481
+ """Index for EL/DEC rate bias (deg/sec)"""
482
+
483
+ XA_OBS_SIGMATYPE: int
484
+ """Index for individual obs's sigmas type (0=N/A, 6=6 elements, 21=21 elements, 7=CSV obs)"""
485
+
486
+ XA_OBS_SIGMAEL1: int
487
+ """Index for sigma covariance element 1 - 6 elements - Az sigma"""
488
+
489
+ XA_OBS_SIGMAEL2: int
490
+ """Index for sigma covariance element 2 - 6 elements - El sigma"""
491
+
492
+ XA_OBS_SIGMAEL3: int
493
+ """Index for sigma covariance element 3 - 6 elements - Range sigma"""
494
+
495
+ XA_OBS_SIGMAEL4: int
496
+ """Index for sigma covariance element 4 - 6 elements - Range rate sigma"""
497
+
498
+ XA_OBS_SIGMAEL5: int
499
+ """Index for sigma covariance element 5 - 6 elements - Az rate sigma"""
500
+
501
+ XA_OBS_SIGMAEL6: int
502
+ """Index for sigma covariance element 6 - 6 elements - El rate sigma"""
503
+
504
+ XA_OBS_SIGMAEL7: int
505
+ """Index for sigma covariance element 7"""
506
+
507
+ XA_OBS_SIGMAEL8: int
508
+ """Index for sigma covariance element 8"""
509
+
510
+ XA_OBS_SIGMAEL9: int
511
+ """Index for sigma covariance element 9"""
512
+
513
+ XA_OBS_SIGMAEL10: int
514
+ """Index for sigma covariance element 10"""
515
+
516
+ XA_OBS_SIGMAEL11: int
517
+ """Index for sigma covariance element 11"""
518
+
519
+ XA_OBS_SIGMAEL12: int
520
+ """Index for sigma covariance element 12"""
521
+
522
+ XA_OBS_SIGMAEL13: int
523
+ """Index for sigma covariance element 13"""
524
+
525
+ XA_OBS_SIGMAEL14: int
526
+ """Index for sigma covariance element 14"""
527
+
528
+ XA_OBS_SIGMAEL15: int
529
+ """Index for sigma covariance element 15"""
530
+
531
+ XA_OBS_SIGMAEL16: int
532
+ """Index for sigma covariance element 16"""
533
+
534
+ XA_OBS_SIGMAEL17: int
535
+ """Index for sigma covariance element 17"""
536
+
537
+ XA_OBS_SIGMAEL18: int
538
+ """Index for sigma covariance element 18"""
539
+
540
+ XA_OBS_SIGMAEL19: int
541
+ """Index for sigma covariance element 19"""
542
+
543
+ XA_OBS_SIGMAEL20: int
544
+ """Index for sigma covariance element 20"""
545
+
546
+ XA_OBS_SIGMAEL21: int
547
+ """Index for sigma covariance element 21"""
548
+
549
+ XA_OBS_SIZE: int
550
+ """Array size for observation data"""
551
+ @staticmethod
552
+ def get_csv_from_b3() -> str: ...
553
+ @staticmethod
554
+ def load_from_b3(b3_string: str) -> int: ...
555
+ @staticmethod
556
+ def remove_key(key: int) -> None: ...
557
+ @staticmethod
558
+ def get_field(key: int, field: str) -> str: ...
559
+ @staticmethod
560
+ def get_array(key: int) -> list[float]: ...
561
+ @staticmethod
562
+ def count_loaded() -> int: ...