ccsds-ndm-py 0.0.2__cp39-abi3-win_amd64.whl → 0.0.4__cp39-abi3-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.
ccsds_ndm/__init__.pyi
CHANGED
|
@@ -94,6 +94,15 @@ class Acm:
|
|
|
94
94
|
@header.setter
|
|
95
95
|
def header(self, value: AdmHeader) -> None: ...
|
|
96
96
|
@property
|
|
97
|
+
def id(self) -> Optional[str]:
|
|
98
|
+
"""
|
|
99
|
+
The message identifier.
|
|
100
|
+
"""
|
|
101
|
+
...
|
|
102
|
+
|
|
103
|
+
@id.setter
|
|
104
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
105
|
+
@property
|
|
97
106
|
def segment(self) -> AcmSegment:
|
|
98
107
|
"""
|
|
99
108
|
ACM Segment.
|
|
@@ -102,19 +111,41 @@ class Acm:
|
|
|
102
111
|
|
|
103
112
|
@segment.setter
|
|
104
113
|
def segment(self, value: AcmSegment) -> None: ...
|
|
105
|
-
def to_file(self, path, format):
|
|
114
|
+
def to_file(self, path, format, validate=True):
|
|
106
115
|
""" """
|
|
107
116
|
...
|
|
108
117
|
|
|
109
|
-
def to_str(self, format):
|
|
118
|
+
def to_str(self, format, validate=True):
|
|
110
119
|
""" """
|
|
111
120
|
...
|
|
112
121
|
|
|
122
|
+
def validate(self, strict=True):
|
|
123
|
+
"""
|
|
124
|
+
Validate the message against CCSDS rules.
|
|
125
|
+
|
|
126
|
+
Parameters
|
|
127
|
+
----------
|
|
128
|
+
strict : bool, optional
|
|
129
|
+
If True (default), raises ValueError on the first error found.
|
|
130
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
131
|
+
"""
|
|
132
|
+
...
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def version(self) -> str:
|
|
136
|
+
"""
|
|
137
|
+
The message version.
|
|
138
|
+
"""
|
|
139
|
+
...
|
|
140
|
+
|
|
141
|
+
@version.setter
|
|
142
|
+
def version(self, value: str) -> None: ...
|
|
143
|
+
|
|
113
144
|
class AcmAttitudeDetermination:
|
|
114
145
|
"""
|
|
115
146
|
ACM Data: Attitude Determination Data Section.
|
|
116
147
|
"""
|
|
117
|
-
def __init__(ad_id, comment) -> None: ...
|
|
148
|
+
def __init__(ad_id=None, comment=None) -> None: ...
|
|
118
149
|
def __getstate__(self, /):
|
|
119
150
|
"""
|
|
120
151
|
Helper for pickle.
|
|
@@ -125,7 +156,9 @@ class AcmAttitudeState:
|
|
|
125
156
|
"""
|
|
126
157
|
ACM Data: Attitude State Time History Section.
|
|
127
158
|
"""
|
|
128
|
-
def __init__(
|
|
159
|
+
def __init__(
|
|
160
|
+
ref_frame_a, ref_frame_b, att_type, att_lines, comment=None
|
|
161
|
+
) -> None: ...
|
|
129
162
|
def __getstate__(self, /):
|
|
130
163
|
"""
|
|
131
164
|
Helper for pickle.
|
|
@@ -136,7 +169,9 @@ class AcmCovarianceMatrix:
|
|
|
136
169
|
"""
|
|
137
170
|
ACM Data: Covariance Time History Section.
|
|
138
171
|
"""
|
|
139
|
-
def __init__(
|
|
172
|
+
def __init__(
|
|
173
|
+
cov_basis, cov_ref_frame, cov_type, cov_lines, comment=None
|
|
174
|
+
) -> None: ...
|
|
140
175
|
def __getstate__(self, /):
|
|
141
176
|
"""
|
|
142
177
|
Helper for pickle.
|
|
@@ -147,7 +182,9 @@ class AcmData:
|
|
|
147
182
|
"""
|
|
148
183
|
ACM Data Section.
|
|
149
184
|
"""
|
|
150
|
-
def __init__(
|
|
185
|
+
def __init__(
|
|
186
|
+
att=None, phys=None, cov=None, man=None, ad=None, user=None
|
|
187
|
+
) -> None: ...
|
|
151
188
|
def __getstate__(self, /):
|
|
152
189
|
"""
|
|
153
190
|
Helper for pickle.
|
|
@@ -182,12 +219,17 @@ class AcmData:
|
|
|
182
219
|
|
|
183
220
|
@user.setter
|
|
184
221
|
def user(self, value: UserDefined) -> None: ...
|
|
222
|
+
def validate(self, metadata):
|
|
223
|
+
"""
|
|
224
|
+
Validate the data section against CCSDS rules.
|
|
225
|
+
"""
|
|
226
|
+
...
|
|
185
227
|
|
|
186
228
|
class AcmManeuverParameters:
|
|
187
229
|
"""
|
|
188
230
|
ACM Data: Maneuver Specification Section.
|
|
189
231
|
"""
|
|
190
|
-
def __init__(man_id, comment) -> None: ...
|
|
232
|
+
def __init__(man_id=None, comment=None) -> None: ...
|
|
191
233
|
def __getstate__(self, /):
|
|
192
234
|
"""
|
|
193
235
|
Helper for pickle.
|
|
@@ -246,12 +288,17 @@ class AcmMetadata:
|
|
|
246
288
|
|
|
247
289
|
@object_name.setter
|
|
248
290
|
def object_name(self, value: str) -> None: ...
|
|
291
|
+
def validate(self):
|
|
292
|
+
"""
|
|
293
|
+
Validate the metadata section against CCSDS rules.
|
|
294
|
+
"""
|
|
295
|
+
...
|
|
249
296
|
|
|
250
297
|
class AcmPhysicalDescription:
|
|
251
298
|
"""
|
|
252
299
|
ACM Data: Space Object Physical Characteristics Section.
|
|
253
300
|
"""
|
|
254
|
-
def __init__(comment) -> None: ...
|
|
301
|
+
def __init__(comment=None) -> None: ...
|
|
255
302
|
def __getstate__(self, /):
|
|
256
303
|
"""
|
|
257
304
|
Helper for pickle.
|
|
@@ -284,6 +331,11 @@ class AcmSegment:
|
|
|
284
331
|
|
|
285
332
|
@metadata.setter
|
|
286
333
|
def metadata(self, value: AcmMetadata) -> None: ...
|
|
334
|
+
def validate(self, header):
|
|
335
|
+
"""
|
|
336
|
+
Validate the segment against CCSDS rules.
|
|
337
|
+
"""
|
|
338
|
+
...
|
|
287
339
|
|
|
288
340
|
class AdditionalParameters:
|
|
289
341
|
"""
|
|
@@ -436,7 +488,7 @@ class AdmHeader:
|
|
|
436
488
|
Represents the `admHeader` complex type from the XSD.
|
|
437
489
|
"""
|
|
438
490
|
def __init__(
|
|
439
|
-
creation_date, originator, classification, message_id, comment
|
|
491
|
+
creation_date, originator, classification=None, message_id=None, comment=None
|
|
440
492
|
) -> None: ...
|
|
441
493
|
def __getstate__(self, /):
|
|
442
494
|
"""
|
|
@@ -554,6 +606,15 @@ class Aem:
|
|
|
554
606
|
@header.setter
|
|
555
607
|
def header(self, value: AdmHeader) -> None: ...
|
|
556
608
|
@property
|
|
609
|
+
def id(self) -> Optional[str]:
|
|
610
|
+
"""
|
|
611
|
+
The message identifier.
|
|
612
|
+
"""
|
|
613
|
+
...
|
|
614
|
+
|
|
615
|
+
@id.setter
|
|
616
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
617
|
+
@property
|
|
557
618
|
def segments(self) -> list[AemSegment]:
|
|
558
619
|
"""
|
|
559
620
|
AEM Segments.
|
|
@@ -562,19 +623,45 @@ class Aem:
|
|
|
562
623
|
|
|
563
624
|
@segments.setter
|
|
564
625
|
def segments(self, value: list[AemSegment]) -> None: ...
|
|
565
|
-
def to_file(self, path, format):
|
|
566
|
-
"""
|
|
626
|
+
def to_file(self, path, format, validate=True):
|
|
627
|
+
"""
|
|
628
|
+
Write to file.
|
|
629
|
+
"""
|
|
567
630
|
...
|
|
568
631
|
|
|
569
|
-
def to_str(self, format):
|
|
570
|
-
"""
|
|
632
|
+
def to_str(self, format, validate=True):
|
|
633
|
+
"""
|
|
634
|
+
Serialize to string.
|
|
635
|
+
"""
|
|
636
|
+
...
|
|
637
|
+
|
|
638
|
+
def validate(self, strict=True):
|
|
639
|
+
"""
|
|
640
|
+
Validate the message against CCSDS rules.
|
|
641
|
+
|
|
642
|
+
Parameters
|
|
643
|
+
----------
|
|
644
|
+
strict : bool, optional
|
|
645
|
+
If True (default), raises ValueError on the first error found.
|
|
646
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
647
|
+
"""
|
|
571
648
|
...
|
|
572
649
|
|
|
650
|
+
@property
|
|
651
|
+
def version(self) -> str:
|
|
652
|
+
"""
|
|
653
|
+
The message version.
|
|
654
|
+
"""
|
|
655
|
+
...
|
|
656
|
+
|
|
657
|
+
@version.setter
|
|
658
|
+
def version(self, value: str) -> None: ...
|
|
659
|
+
|
|
573
660
|
class AemData:
|
|
574
661
|
"""
|
|
575
662
|
AEM Data Section.
|
|
576
663
|
"""
|
|
577
|
-
def __init__(attitude_states, comment) -> None: ...
|
|
664
|
+
def __init__(attitude_states, comment=None) -> None: ...
|
|
578
665
|
def __getstate__(self, /):
|
|
579
666
|
"""
|
|
580
667
|
Helper for pickle.
|
|
@@ -591,14 +678,27 @@ class AemData:
|
|
|
591
678
|
@attitude_states.setter
|
|
592
679
|
def attitude_states(self, value: list[AttitudeState]) -> None: ...
|
|
593
680
|
@property
|
|
594
|
-
def
|
|
681
|
+
def attitude_states_epochs(self) -> list[str]:
|
|
595
682
|
"""
|
|
596
|
-
|
|
683
|
+
Epochs for attitude states (ISO 8601).
|
|
684
|
+
"""
|
|
685
|
+
...
|
|
686
|
+
|
|
687
|
+
@attitude_states_epochs.setter
|
|
688
|
+
def attitude_states_epochs(self, value: list[str]) -> None: ...
|
|
689
|
+
@property
|
|
690
|
+
def attitude_states_numpy(self) -> numpy.ndarray:
|
|
691
|
+
"""
|
|
692
|
+
Get attitude states as a 2D NumPy array.
|
|
693
|
+
|
|
694
|
+
Use `attitude_states_epochs` for the corresponding epochs.
|
|
695
|
+
|
|
696
|
+
Currently only supports Quaternion Ephemeris states.
|
|
597
697
|
"""
|
|
598
698
|
...
|
|
599
699
|
|
|
600
700
|
@attitude_states_numpy.setter
|
|
601
|
-
def attitude_states_numpy(self, value:
|
|
701
|
+
def attitude_states_numpy(self, value: numpy.ndarray) -> None: ...
|
|
602
702
|
@property
|
|
603
703
|
def comment(self) -> list[str]:
|
|
604
704
|
"""
|
|
@@ -609,6 +709,16 @@ class AemData:
|
|
|
609
709
|
|
|
610
710
|
@comment.setter
|
|
611
711
|
def comment(self, value: list[str]) -> None: ...
|
|
712
|
+
@staticmethod
|
|
713
|
+
def from_numpy(epochs, array, comment=None):
|
|
714
|
+
""" """
|
|
715
|
+
...
|
|
716
|
+
|
|
717
|
+
def validate(self, attitude_type):
|
|
718
|
+
"""
|
|
719
|
+
Validate the data section against CCSDS rules.
|
|
720
|
+
"""
|
|
721
|
+
...
|
|
612
722
|
|
|
613
723
|
class AemMetadata:
|
|
614
724
|
"""
|
|
@@ -853,6 +963,11 @@ class AemMetadata:
|
|
|
853
963
|
|
|
854
964
|
@useable_stop_time.setter
|
|
855
965
|
def useable_stop_time(self, value: str) -> None: ...
|
|
966
|
+
def validate(self):
|
|
967
|
+
"""
|
|
968
|
+
Validate the metadata section against CCSDS rules.
|
|
969
|
+
"""
|
|
970
|
+
...
|
|
856
971
|
|
|
857
972
|
class AemSegment:
|
|
858
973
|
def __init__(metadata, data) -> None: ...
|
|
@@ -880,6 +995,11 @@ class AemSegment:
|
|
|
880
995
|
|
|
881
996
|
@metadata.setter
|
|
882
997
|
def metadata(self, value: AemMetadata) -> None: ...
|
|
998
|
+
def validate(self):
|
|
999
|
+
"""
|
|
1000
|
+
Validate the segment against CCSDS rules.
|
|
1001
|
+
"""
|
|
1002
|
+
...
|
|
883
1003
|
|
|
884
1004
|
class AngVelState:
|
|
885
1005
|
"""
|
|
@@ -1015,6 +1135,15 @@ class Apm:
|
|
|
1015
1135
|
@header.setter
|
|
1016
1136
|
def header(self, value: AdmHeader) -> None: ...
|
|
1017
1137
|
@property
|
|
1138
|
+
def id(self) -> Optional[str]:
|
|
1139
|
+
"""
|
|
1140
|
+
The message identifier.
|
|
1141
|
+
"""
|
|
1142
|
+
...
|
|
1143
|
+
|
|
1144
|
+
@id.setter
|
|
1145
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
1146
|
+
@property
|
|
1018
1147
|
def segment(self) -> ApmSegment:
|
|
1019
1148
|
"""
|
|
1020
1149
|
APM Segment.
|
|
@@ -1023,27 +1152,53 @@ class Apm:
|
|
|
1023
1152
|
|
|
1024
1153
|
@segment.setter
|
|
1025
1154
|
def segment(self, value: ApmSegment) -> None: ...
|
|
1026
|
-
def to_file(self, path, format):
|
|
1027
|
-
"""
|
|
1155
|
+
def to_file(self, path, format, validate=True):
|
|
1156
|
+
"""
|
|
1157
|
+
Write to file.
|
|
1158
|
+
"""
|
|
1028
1159
|
...
|
|
1029
1160
|
|
|
1030
|
-
def to_str(self, format):
|
|
1031
|
-
"""
|
|
1161
|
+
def to_str(self, format, validate=True):
|
|
1162
|
+
"""
|
|
1163
|
+
Serialize to string.
|
|
1164
|
+
"""
|
|
1165
|
+
...
|
|
1166
|
+
|
|
1167
|
+
def validate(self, strict=True):
|
|
1168
|
+
"""
|
|
1169
|
+
Validate the message against CCSDS rules.
|
|
1170
|
+
|
|
1171
|
+
Parameters
|
|
1172
|
+
----------
|
|
1173
|
+
strict : bool, optional
|
|
1174
|
+
If True (default), raises ValueError on the first error found.
|
|
1175
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
1176
|
+
"""
|
|
1032
1177
|
...
|
|
1033
1178
|
|
|
1179
|
+
@property
|
|
1180
|
+
def version(self) -> str:
|
|
1181
|
+
"""
|
|
1182
|
+
The message version.
|
|
1183
|
+
"""
|
|
1184
|
+
...
|
|
1185
|
+
|
|
1186
|
+
@version.setter
|
|
1187
|
+
def version(self, value: str) -> None: ...
|
|
1188
|
+
|
|
1034
1189
|
class ApmData:
|
|
1035
1190
|
"""
|
|
1036
1191
|
APM Data Section.
|
|
1037
1192
|
"""
|
|
1038
1193
|
def __init__(
|
|
1039
1194
|
epoch,
|
|
1040
|
-
quaternion_state,
|
|
1041
|
-
euler_angle_state,
|
|
1042
|
-
angular_velocity,
|
|
1043
|
-
spin,
|
|
1044
|
-
inertia,
|
|
1045
|
-
maneuver_parameters,
|
|
1046
|
-
comment,
|
|
1195
|
+
quaternion_state=None,
|
|
1196
|
+
euler_angle_state=None,
|
|
1197
|
+
angular_velocity=None,
|
|
1198
|
+
spin=None,
|
|
1199
|
+
inertia=None,
|
|
1200
|
+
maneuver_parameters=None,
|
|
1201
|
+
comment=None,
|
|
1047
1202
|
) -> None: ...
|
|
1048
1203
|
def __getstate__(self, /):
|
|
1049
1204
|
"""
|
|
@@ -1409,7 +1564,7 @@ class Cdm:
|
|
|
1409
1564
|
- Relative position and velocity of Object2 with respect to Object1.
|
|
1410
1565
|
- Metadata describing how the data was determined (orbit determination settings).
|
|
1411
1566
|
"""
|
|
1412
|
-
def __init__(header, body
|
|
1567
|
+
def __init__(header, body) -> None: ...
|
|
1413
1568
|
def __getstate__(self, /):
|
|
1414
1569
|
"""
|
|
1415
1570
|
Helper for pickle.
|
|
@@ -1508,7 +1663,7 @@ class Cdm:
|
|
|
1508
1663
|
|
|
1509
1664
|
@id.setter
|
|
1510
1665
|
def id(self, value: Optional[str]) -> None: ...
|
|
1511
|
-
def to_file(self, path, format):
|
|
1666
|
+
def to_file(self, path, format, validate=True):
|
|
1512
1667
|
"""
|
|
1513
1668
|
Write the CDM to a file.
|
|
1514
1669
|
|
|
@@ -1518,10 +1673,12 @@ class Cdm:
|
|
|
1518
1673
|
The output file path.
|
|
1519
1674
|
format : str
|
|
1520
1675
|
The output format ('kvn' or 'xml').
|
|
1676
|
+
validate : bool, optional
|
|
1677
|
+
Whether to validate the message before writing (default: True).
|
|
1521
1678
|
"""
|
|
1522
1679
|
...
|
|
1523
1680
|
|
|
1524
|
-
def to_str(self, format):
|
|
1681
|
+
def to_str(self, format, validate=True):
|
|
1525
1682
|
"""
|
|
1526
1683
|
Serialize the CDM to a string.
|
|
1527
1684
|
|
|
@@ -1529,6 +1686,8 @@ class Cdm:
|
|
|
1529
1686
|
----------
|
|
1530
1687
|
format : str
|
|
1531
1688
|
The output format ('kvn' or 'xml').
|
|
1689
|
+
validate : bool, optional
|
|
1690
|
+
Whether to validate the message before writing (default: True).
|
|
1532
1691
|
|
|
1533
1692
|
Returns
|
|
1534
1693
|
-------
|
|
@@ -1537,6 +1696,18 @@ class Cdm:
|
|
|
1537
1696
|
"""
|
|
1538
1697
|
...
|
|
1539
1698
|
|
|
1699
|
+
def validate(self, strict=True):
|
|
1700
|
+
"""
|
|
1701
|
+
Validate the message against CCSDS rules.
|
|
1702
|
+
|
|
1703
|
+
Parameters
|
|
1704
|
+
----------
|
|
1705
|
+
strict : bool, optional
|
|
1706
|
+
If True (default), raises ValueError on the first error found.
|
|
1707
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
1708
|
+
"""
|
|
1709
|
+
...
|
|
1710
|
+
|
|
1540
1711
|
@property
|
|
1541
1712
|
def version(self) -> str:
|
|
1542
1713
|
"""
|
|
@@ -1708,31 +1879,31 @@ class CdmCovarianceMatrix:
|
|
|
1708
1879
|
cndot_rdot,
|
|
1709
1880
|
cndot_tdot,
|
|
1710
1881
|
cndot_ndot,
|
|
1711
|
-
cdrg_r,
|
|
1712
|
-
cdrg_t,
|
|
1713
|
-
cdrg_n,
|
|
1714
|
-
cdrg_rdot,
|
|
1715
|
-
cdrg_tdot,
|
|
1716
|
-
cdrg_ndot,
|
|
1717
|
-
cdrg_drg,
|
|
1718
|
-
csrp_r,
|
|
1719
|
-
csrp_t,
|
|
1720
|
-
csrp_n,
|
|
1721
|
-
csrp_rdot,
|
|
1722
|
-
csrp_tdot,
|
|
1723
|
-
csrp_ndot,
|
|
1724
|
-
csrp_drg,
|
|
1725
|
-
csrp_srp,
|
|
1726
|
-
cthr_r,
|
|
1727
|
-
cthr_t,
|
|
1728
|
-
cthr_n,
|
|
1729
|
-
cthr_rdot,
|
|
1730
|
-
cthr_tdot,
|
|
1731
|
-
cthr_ndot,
|
|
1732
|
-
cthr_drg,
|
|
1733
|
-
cthr_srp,
|
|
1734
|
-
cthr_thr,
|
|
1735
|
-
comment,
|
|
1882
|
+
cdrg_r=None,
|
|
1883
|
+
cdrg_t=None,
|
|
1884
|
+
cdrg_n=None,
|
|
1885
|
+
cdrg_rdot=None,
|
|
1886
|
+
cdrg_tdot=None,
|
|
1887
|
+
cdrg_ndot=None,
|
|
1888
|
+
cdrg_drg=None,
|
|
1889
|
+
csrp_r=None,
|
|
1890
|
+
csrp_t=None,
|
|
1891
|
+
csrp_n=None,
|
|
1892
|
+
csrp_rdot=None,
|
|
1893
|
+
csrp_tdot=None,
|
|
1894
|
+
csrp_ndot=None,
|
|
1895
|
+
csrp_drg=None,
|
|
1896
|
+
csrp_srp=None,
|
|
1897
|
+
cthr_r=None,
|
|
1898
|
+
cthr_t=None,
|
|
1899
|
+
cthr_n=None,
|
|
1900
|
+
cthr_rdot=None,
|
|
1901
|
+
cthr_tdot=None,
|
|
1902
|
+
cthr_ndot=None,
|
|
1903
|
+
cthr_drg=None,
|
|
1904
|
+
cthr_srp=None,
|
|
1905
|
+
cthr_thr=None,
|
|
1906
|
+
comment=None,
|
|
1736
1907
|
) -> None: ...
|
|
1737
1908
|
def __getstate__(self, /):
|
|
1738
1909
|
"""
|
|
@@ -2244,10 +2415,16 @@ class CdmCovarianceMatrix:
|
|
|
2244
2415
|
|
|
2245
2416
|
@cthr_thr.setter
|
|
2246
2417
|
def cthr_thr(self, value: float) -> None: ...
|
|
2418
|
+
@staticmethod
|
|
2419
|
+
def from_numpy(array, comment=None):
|
|
2420
|
+
""" """
|
|
2421
|
+
...
|
|
2422
|
+
|
|
2247
2423
|
def to_numpy(self):
|
|
2248
2424
|
"""
|
|
2249
|
-
Returns the
|
|
2250
|
-
|
|
2425
|
+
Returns the covariance matrix as a NumPy array.
|
|
2426
|
+
The size will be 6x6, 7x7, 8x8, or 9x9 depending on whether optional
|
|
2427
|
+
Drag, SRP, and Thrust parameters are provided, as per CCSDS 508.0-B-1.
|
|
2251
2428
|
"""
|
|
2252
2429
|
...
|
|
2253
2430
|
|
|
@@ -2265,7 +2442,13 @@ class CdmData:
|
|
|
2265
2442
|
covariance_matrix : CdmCovarianceMatrix
|
|
2266
2443
|
Object covariance at TCA.
|
|
2267
2444
|
"""
|
|
2268
|
-
def __init__(
|
|
2445
|
+
def __init__(
|
|
2446
|
+
state_vector,
|
|
2447
|
+
covariance_matrix=None,
|
|
2448
|
+
od_parameters=None,
|
|
2449
|
+
additional_parameters=None,
|
|
2450
|
+
comments=None,
|
|
2451
|
+
) -> None: ...
|
|
2269
2452
|
def __getstate__(self, /):
|
|
2270
2453
|
"""
|
|
2271
2454
|
Helper for pickle.
|
|
@@ -2291,14 +2474,37 @@ class CdmData:
|
|
|
2291
2474
|
@comment.setter
|
|
2292
2475
|
def comment(self, value: list[str]) -> None: ...
|
|
2293
2476
|
@property
|
|
2294
|
-
def covariance_matrix(self) -> CdmCovarianceMatrix:
|
|
2477
|
+
def covariance_matrix(self) -> Optional[CdmCovarianceMatrix]:
|
|
2295
2478
|
"""
|
|
2296
2479
|
Covariance Matrix.
|
|
2297
2480
|
"""
|
|
2298
2481
|
...
|
|
2299
2482
|
|
|
2300
2483
|
@covariance_matrix.setter
|
|
2301
|
-
def covariance_matrix(self, value: CdmCovarianceMatrix) -> None: ...
|
|
2484
|
+
def covariance_matrix(self, value: Optional[CdmCovarianceMatrix]) -> None: ...
|
|
2485
|
+
@property
|
|
2486
|
+
def covariance_matrix_numpy(self) -> numpy.ndarray:
|
|
2487
|
+
"""
|
|
2488
|
+
Covariance matrix as a NumPy array (convenience method).
|
|
2489
|
+
|
|
2490
|
+
Returns:
|
|
2491
|
+
numpy.ndarray: 9x9 covariance matrix.
|
|
2492
|
+
"""
|
|
2493
|
+
...
|
|
2494
|
+
|
|
2495
|
+
@covariance_matrix_numpy.setter
|
|
2496
|
+
def covariance_matrix_numpy(self, value: numpy.ndarray) -> None: ...
|
|
2497
|
+
@staticmethod
|
|
2498
|
+
def from_numpy(
|
|
2499
|
+
state_vector,
|
|
2500
|
+
covariance_matrix=None,
|
|
2501
|
+
od_parameters=None,
|
|
2502
|
+
additional_parameters=None,
|
|
2503
|
+
comments=None,
|
|
2504
|
+
):
|
|
2505
|
+
""" """
|
|
2506
|
+
...
|
|
2507
|
+
|
|
2302
2508
|
@property
|
|
2303
2509
|
def od_parameters(self) -> Optional[OdParameters]:
|
|
2304
2510
|
"""
|
|
@@ -2317,6 +2523,19 @@ class CdmData:
|
|
|
2317
2523
|
|
|
2318
2524
|
@state_vector.setter
|
|
2319
2525
|
def state_vector(self, value: CdmStateVector) -> None: ...
|
|
2526
|
+
@property
|
|
2527
|
+
def state_vector_numpy(self) -> numpy.ndarray:
|
|
2528
|
+
"""
|
|
2529
|
+
State vector as a NumPy array (convenience method).
|
|
2530
|
+
|
|
2531
|
+
Returns:
|
|
2532
|
+
numpy.ndarray: 1D array of shape (6,) containing [X, Y, Z, X_DOT, Y_DOT, Z_DOT].
|
|
2533
|
+
Units: [km, km, km, km/s, km/s, km/s]
|
|
2534
|
+
"""
|
|
2535
|
+
...
|
|
2536
|
+
|
|
2537
|
+
@state_vector_numpy.setter
|
|
2538
|
+
def state_vector_numpy(self, value: numpy.ndarray) -> None: ...
|
|
2320
2539
|
|
|
2321
2540
|
class CdmHeader:
|
|
2322
2541
|
"""
|
|
@@ -2467,10 +2686,10 @@ class CdmMetadata:
|
|
|
2467
2686
|
catalog_name,
|
|
2468
2687
|
object_name,
|
|
2469
2688
|
international_designator,
|
|
2689
|
+
ref_frame,
|
|
2470
2690
|
ephemeris_name=...,
|
|
2471
2691
|
covariance_method=None,
|
|
2472
2692
|
maneuverable=None,
|
|
2473
|
-
ref_frame=None,
|
|
2474
2693
|
object_type=None,
|
|
2475
2694
|
operator_contact_position=None,
|
|
2476
2695
|
operator_organization=None,
|
|
@@ -2539,7 +2758,7 @@ class CdmMetadata:
|
|
|
2539
2758
|
@covariance_method.setter
|
|
2540
2759
|
def covariance_method(self, value: CovarianceMethodType) -> None: ...
|
|
2541
2760
|
@property
|
|
2542
|
-
def earth_tides(self) -> Optional[
|
|
2761
|
+
def earth_tides(self) -> Optional[bool]:
|
|
2543
2762
|
"""
|
|
2544
2763
|
Indication of whether solid Earth and ocean tides were used for the OD of the object.
|
|
2545
2764
|
|
|
@@ -2548,7 +2767,7 @@ class CdmMetadata:
|
|
|
2548
2767
|
...
|
|
2549
2768
|
|
|
2550
2769
|
@earth_tides.setter
|
|
2551
|
-
def earth_tides(self, value: Optional[
|
|
2770
|
+
def earth_tides(self, value: Optional[bool]) -> None: ...
|
|
2552
2771
|
@property
|
|
2553
2772
|
def ephemeris_name(self) -> str:
|
|
2554
2773
|
"""
|
|
@@ -2591,7 +2810,7 @@ class CdmMetadata:
|
|
|
2591
2810
|
@international_designator.setter
|
|
2592
2811
|
def international_designator(self, value: str) -> None: ...
|
|
2593
2812
|
@property
|
|
2594
|
-
def intrack_thrust(self) -> Optional[
|
|
2813
|
+
def intrack_thrust(self) -> Optional[bool]:
|
|
2595
2814
|
"""
|
|
2596
2815
|
Indication of whether in-track thrust modeling was used for the OD of the object.
|
|
2597
2816
|
|
|
@@ -2600,7 +2819,7 @@ class CdmMetadata:
|
|
|
2600
2819
|
...
|
|
2601
2820
|
|
|
2602
2821
|
@intrack_thrust.setter
|
|
2603
|
-
def intrack_thrust(self, value: Optional[
|
|
2822
|
+
def intrack_thrust(self, value: Optional[bool]) -> None: ...
|
|
2604
2823
|
@property
|
|
2605
2824
|
def maneuverable(self) -> ManeuverableType:
|
|
2606
2825
|
"""
|
|
@@ -2738,7 +2957,7 @@ class CdmMetadata:
|
|
|
2738
2957
|
@ref_frame.setter
|
|
2739
2958
|
def ref_frame(self, value: ReferenceFrameType) -> None: ...
|
|
2740
2959
|
@property
|
|
2741
|
-
def solar_rad_pressure(self) -> Optional[
|
|
2960
|
+
def solar_rad_pressure(self) -> Optional[bool]:
|
|
2742
2961
|
"""
|
|
2743
2962
|
Indication of whether solar radiation pressure perturbations were used for the OD of the
|
|
2744
2963
|
object.
|
|
@@ -2748,7 +2967,7 @@ class CdmMetadata:
|
|
|
2748
2967
|
...
|
|
2749
2968
|
|
|
2750
2969
|
@solar_rad_pressure.setter
|
|
2751
|
-
def solar_rad_pressure(self, value: Optional[
|
|
2970
|
+
def solar_rad_pressure(self, value: Optional[bool]) -> None: ...
|
|
2752
2971
|
|
|
2753
2972
|
class CdmObjectType:
|
|
2754
2973
|
"""
|
|
@@ -2819,6 +3038,21 @@ class CdmStateVector:
|
|
|
2819
3038
|
"""
|
|
2820
3039
|
...
|
|
2821
3040
|
|
|
3041
|
+
@staticmethod
|
|
3042
|
+
def from_numpy(array):
|
|
3043
|
+
""" """
|
|
3044
|
+
...
|
|
3045
|
+
|
|
3046
|
+
def to_numpy(self) -> numpy.ndarray:
|
|
3047
|
+
"""
|
|
3048
|
+
Return the state vector as a NumPy array.
|
|
3049
|
+
|
|
3050
|
+
Returns:
|
|
3051
|
+
numpy.ndarray: 1D array of shape (6,) containing [X, Y, Z, X_DOT, Y_DOT, Z_DOT].
|
|
3052
|
+
Units: [km, km, km, km/s, km/s, km/s]
|
|
3053
|
+
"""
|
|
3054
|
+
...
|
|
3055
|
+
|
|
2822
3056
|
@property
|
|
2823
3057
|
def x(self) -> float:
|
|
2824
3058
|
"""
|
|
@@ -3690,8 +3924,8 @@ class KeplerianElements:
|
|
|
3690
3924
|
ra_of_asc_node,
|
|
3691
3925
|
arg_of_pericenter,
|
|
3692
3926
|
gm,
|
|
3693
|
-
true_anomaly,
|
|
3694
|
-
mean_anomaly,
|
|
3927
|
+
true_anomaly=None,
|
|
3928
|
+
mean_anomaly=None,
|
|
3695
3929
|
) -> None: ...
|
|
3696
3930
|
def __getstate__(self, /):
|
|
3697
3931
|
"""
|
|
@@ -3848,8 +4082,8 @@ class ManeuverParameters:
|
|
|
3848
4082
|
man_tor_1,
|
|
3849
4083
|
man_tor_2,
|
|
3850
4084
|
man_tor_3,
|
|
3851
|
-
man_delta_mass,
|
|
3852
|
-
comment,
|
|
4085
|
+
man_delta_mass=None,
|
|
4086
|
+
comment=None,
|
|
3853
4087
|
) -> None: ...
|
|
3854
4088
|
def __getstate__(self, /):
|
|
3855
4089
|
"""
|
|
@@ -3984,9 +4218,9 @@ class MeanElements:
|
|
|
3984
4218
|
ra_of_asc_node,
|
|
3985
4219
|
arg_of_pericenter,
|
|
3986
4220
|
mean_anomaly,
|
|
3987
|
-
semi_major_axis,
|
|
3988
|
-
mean_motion,
|
|
3989
|
-
gm,
|
|
4221
|
+
semi_major_axis=None,
|
|
4222
|
+
mean_motion=None,
|
|
4223
|
+
gm=None,
|
|
3990
4224
|
) -> None: ...
|
|
3991
4225
|
def __getstate__(self, /):
|
|
3992
4226
|
"""
|
|
@@ -4183,7 +4417,7 @@ class Ndm:
|
|
|
4183
4417
|
def messages(
|
|
4184
4418
|
self, value: list[Union[Oem, Cdm, Opm, Omm, Ocm, Rdm, Tdm, Ndm]]
|
|
4185
4419
|
) -> None: ...
|
|
4186
|
-
def to_file(self, path, format):
|
|
4420
|
+
def to_file(self, path, format, validate=True):
|
|
4187
4421
|
"""
|
|
4188
4422
|
Write to file.
|
|
4189
4423
|
|
|
@@ -4193,15 +4427,29 @@ class Ndm:
|
|
|
4193
4427
|
Output file path.
|
|
4194
4428
|
format : str
|
|
4195
4429
|
Output format ('kvn' or 'xml').
|
|
4430
|
+
validate : bool, optional
|
|
4431
|
+
Whether to validate the message before writing (default: True).
|
|
4196
4432
|
"""
|
|
4197
4433
|
...
|
|
4198
4434
|
|
|
4199
|
-
def to_str(self, format):
|
|
4435
|
+
def to_str(self, format, validate=True):
|
|
4200
4436
|
"""
|
|
4201
4437
|
Serialize to a string.
|
|
4202
4438
|
"""
|
|
4203
4439
|
...
|
|
4204
4440
|
|
|
4441
|
+
def validate(self, strict=True):
|
|
4442
|
+
"""
|
|
4443
|
+
Validate the combined message against CCSDS rules.
|
|
4444
|
+
|
|
4445
|
+
Parameters
|
|
4446
|
+
----------
|
|
4447
|
+
strict : bool, optional
|
|
4448
|
+
If True (default), raises ValueError on the first error found.
|
|
4449
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
4450
|
+
"""
|
|
4451
|
+
...
|
|
4452
|
+
|
|
4205
4453
|
class ObjectDescription:
|
|
4206
4454
|
def __getstate__(self, /):
|
|
4207
4455
|
"""
|
|
@@ -4297,6 +4545,15 @@ class Ocm:
|
|
|
4297
4545
|
@header.setter
|
|
4298
4546
|
def header(self, value: OdmHeader) -> None: ...
|
|
4299
4547
|
@property
|
|
4548
|
+
def id(self) -> Optional[str]:
|
|
4549
|
+
"""
|
|
4550
|
+
The message identifier.
|
|
4551
|
+
"""
|
|
4552
|
+
...
|
|
4553
|
+
|
|
4554
|
+
@id.setter
|
|
4555
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
4556
|
+
@property
|
|
4300
4557
|
def segment(self) -> OcmSegment:
|
|
4301
4558
|
"""
|
|
4302
4559
|
The OCM data segment.
|
|
@@ -4305,7 +4562,7 @@ class Ocm:
|
|
|
4305
4562
|
|
|
4306
4563
|
@segment.setter
|
|
4307
4564
|
def segment(self, value: OcmSegment) -> None: ...
|
|
4308
|
-
def to_file(self, path, format):
|
|
4565
|
+
def to_file(self, path, format, validate=True):
|
|
4309
4566
|
"""
|
|
4310
4567
|
Write to file.
|
|
4311
4568
|
|
|
@@ -4315,10 +4572,12 @@ class Ocm:
|
|
|
4315
4572
|
Output file path.
|
|
4316
4573
|
format : str
|
|
4317
4574
|
Output format ('kvn' or 'xml').
|
|
4575
|
+
validate : bool, optional
|
|
4576
|
+
Whether to validate the message before writing (default: True).
|
|
4318
4577
|
"""
|
|
4319
4578
|
...
|
|
4320
4579
|
|
|
4321
|
-
def to_str(self, format):
|
|
4580
|
+
def to_str(self, format, validate=True):
|
|
4322
4581
|
"""
|
|
4323
4582
|
Serialize to string.
|
|
4324
4583
|
|
|
@@ -4326,6 +4585,8 @@ class Ocm:
|
|
|
4326
4585
|
----------
|
|
4327
4586
|
format : str
|
|
4328
4587
|
Output format ('kvn' or 'xml').
|
|
4588
|
+
validate : bool, optional
|
|
4589
|
+
Whether to validate the message before writing (default: True).
|
|
4329
4590
|
|
|
4330
4591
|
Returns
|
|
4331
4592
|
-------
|
|
@@ -4334,6 +4595,28 @@ class Ocm:
|
|
|
4334
4595
|
"""
|
|
4335
4596
|
...
|
|
4336
4597
|
|
|
4598
|
+
def validate(self, strict=True):
|
|
4599
|
+
"""
|
|
4600
|
+
Validate the message against CCSDS rules.
|
|
4601
|
+
|
|
4602
|
+
Parameters
|
|
4603
|
+
----------
|
|
4604
|
+
strict : bool, optional
|
|
4605
|
+
If True (default), raises ValueError on the first error found.
|
|
4606
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
4607
|
+
"""
|
|
4608
|
+
...
|
|
4609
|
+
|
|
4610
|
+
@property
|
|
4611
|
+
def version(self) -> str:
|
|
4612
|
+
"""
|
|
4613
|
+
The message version.
|
|
4614
|
+
"""
|
|
4615
|
+
...
|
|
4616
|
+
|
|
4617
|
+
@version.setter
|
|
4618
|
+
def version(self, value: str) -> None: ...
|
|
4619
|
+
|
|
4337
4620
|
class OcmCovarianceMatrix:
|
|
4338
4621
|
"""
|
|
4339
4622
|
OCM Covariance Matrix.
|
|
@@ -7839,17 +8122,17 @@ class OdParameters:
|
|
|
7839
8122
|
Comments.
|
|
7840
8123
|
"""
|
|
7841
8124
|
def __init__(
|
|
7842
|
-
time_lastob_start,
|
|
7843
|
-
time_lastob_end,
|
|
7844
|
-
recommended_od_span,
|
|
7845
|
-
actual_od_span,
|
|
7846
|
-
obs_available,
|
|
7847
|
-
obs_used,
|
|
7848
|
-
tracks_available,
|
|
7849
|
-
tracks_used,
|
|
7850
|
-
residuals_accepted,
|
|
7851
|
-
weighted_rms,
|
|
7852
|
-
comment
|
|
8125
|
+
time_lastob_start=None,
|
|
8126
|
+
time_lastob_end=None,
|
|
8127
|
+
recommended_od_span=None,
|
|
8128
|
+
actual_od_span=None,
|
|
8129
|
+
obs_available=None,
|
|
8130
|
+
obs_used=None,
|
|
8131
|
+
tracks_available=None,
|
|
8132
|
+
tracks_used=None,
|
|
8133
|
+
residuals_accepted=None,
|
|
8134
|
+
weighted_rms=None,
|
|
8135
|
+
comment=...,
|
|
7853
8136
|
) -> None: ...
|
|
7854
8137
|
def __getstate__(self, /):
|
|
7855
8138
|
"""
|
|
@@ -7990,7 +8273,7 @@ class OdmHeader:
|
|
|
7990
8273
|
Comments.
|
|
7991
8274
|
"""
|
|
7992
8275
|
def __init__(
|
|
7993
|
-
creation_date, originator, classification, message_id, comment
|
|
8276
|
+
creation_date, originator, classification=None, message_id=None, comment=None
|
|
7994
8277
|
) -> None: ...
|
|
7995
8278
|
def __getstate__(self, /):
|
|
7996
8279
|
"""
|
|
@@ -8011,9 +8294,17 @@ class OdmHeader:
|
|
|
8011
8294
|
@classification.setter
|
|
8012
8295
|
def classification(self, value: Optional[str]) -> None: ...
|
|
8013
8296
|
@property
|
|
8014
|
-
def comment(self):
|
|
8297
|
+
def comment(self) -> list[str]:
|
|
8298
|
+
"""
|
|
8299
|
+
Comments (allowed in the ODM Header only immediately after the ODM version number).
|
|
8300
|
+
(See 7.8 for formatting rules.)
|
|
8301
|
+
|
|
8302
|
+
Examples: This is a comment
|
|
8303
|
+
"""
|
|
8304
|
+
...
|
|
8305
|
+
|
|
8015
8306
|
@comment.setter
|
|
8016
|
-
def comment(self, value:
|
|
8307
|
+
def comment(self, value: list[str]) -> None: ...
|
|
8017
8308
|
@property
|
|
8018
8309
|
def creation_date(self) -> str:
|
|
8019
8310
|
"""
|
|
@@ -8129,6 +8420,15 @@ class Oem:
|
|
|
8129
8420
|
@header.setter
|
|
8130
8421
|
def header(self, value: OdmHeader) -> None: ...
|
|
8131
8422
|
@property
|
|
8423
|
+
def id(self) -> Optional[str]:
|
|
8424
|
+
"""
|
|
8425
|
+
The message identifier.
|
|
8426
|
+
"""
|
|
8427
|
+
...
|
|
8428
|
+
|
|
8429
|
+
@id.setter
|
|
8430
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
8431
|
+
@property
|
|
8132
8432
|
def segments(self) -> list[OemSegment]:
|
|
8133
8433
|
"""
|
|
8134
8434
|
The list of data segments.
|
|
@@ -8137,7 +8437,7 @@ class Oem:
|
|
|
8137
8437
|
|
|
8138
8438
|
@segments.setter
|
|
8139
8439
|
def segments(self, value: list[OemSegment]) -> None: ...
|
|
8140
|
-
def to_file(self, path, format):
|
|
8440
|
+
def to_file(self, path, format, validate=True):
|
|
8141
8441
|
"""
|
|
8142
8442
|
Write to file.
|
|
8143
8443
|
|
|
@@ -8147,10 +8447,20 @@ class Oem:
|
|
|
8147
8447
|
Output file path.
|
|
8148
8448
|
format : str
|
|
8149
8449
|
Output format ('kvn' or 'xml').
|
|
8450
|
+
Write to file.
|
|
8451
|
+
|
|
8452
|
+
Parameters
|
|
8453
|
+
----------
|
|
8454
|
+
path : str
|
|
8455
|
+
Output file path.
|
|
8456
|
+
format : str
|
|
8457
|
+
Output format ('kvn' or 'xml').
|
|
8458
|
+
validate : bool, optional
|
|
8459
|
+
Whether to validate the message before writing (default: True).
|
|
8150
8460
|
"""
|
|
8151
8461
|
...
|
|
8152
8462
|
|
|
8153
|
-
def to_str(self, format):
|
|
8463
|
+
def to_str(self, format, validate=True):
|
|
8154
8464
|
"""
|
|
8155
8465
|
Serialize to string.
|
|
8156
8466
|
|
|
@@ -8163,9 +8473,44 @@ class Oem:
|
|
|
8163
8473
|
-------
|
|
8164
8474
|
str
|
|
8165
8475
|
The serialized string.
|
|
8476
|
+
Serialize to string.
|
|
8477
|
+
|
|
8478
|
+
Parameters
|
|
8479
|
+
----------
|
|
8480
|
+
format : str
|
|
8481
|
+
Output format ('kvn' or 'xml').
|
|
8482
|
+
validate : bool, optional
|
|
8483
|
+
Whether to validate the message before writing (default: True).
|
|
8484
|
+
|
|
8485
|
+
Returns
|
|
8486
|
+
-------
|
|
8487
|
+
str
|
|
8488
|
+
The serialized string.
|
|
8489
|
+
"""
|
|
8490
|
+
...
|
|
8491
|
+
|
|
8492
|
+
def validate(self, strict=True):
|
|
8493
|
+
"""
|
|
8494
|
+
Validate the message against CCSDS rules.
|
|
8495
|
+
|
|
8496
|
+
Parameters
|
|
8497
|
+
----------
|
|
8498
|
+
strict : bool, optional
|
|
8499
|
+
If True (default), raises ValueError on the first error found.
|
|
8500
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
8501
|
+
"""
|
|
8502
|
+
...
|
|
8503
|
+
|
|
8504
|
+
@property
|
|
8505
|
+
def version(self) -> str:
|
|
8506
|
+
"""
|
|
8507
|
+
The message version.
|
|
8166
8508
|
"""
|
|
8167
8509
|
...
|
|
8168
8510
|
|
|
8511
|
+
@version.setter
|
|
8512
|
+
def version(self, value: str) -> None: ...
|
|
8513
|
+
|
|
8169
8514
|
class OemCovarianceMatrix:
|
|
8170
8515
|
"""
|
|
8171
8516
|
OEM Covariance Matrix.
|
|
@@ -8178,7 +8523,8 @@ class OemCovarianceMatrix:
|
|
|
8178
8523
|
epoch : str
|
|
8179
8524
|
Epoch of the covariance matrix (ISO 8601).
|
|
8180
8525
|
values : numpy.ndarray
|
|
8181
|
-
|
|
8526
|
+
NumPy array of shape (21,) containing the lower-triangular values, or (6,6) for
|
|
8527
|
+
a full symmetric matrix.
|
|
8182
8528
|
cov_ref_frame : str, optional
|
|
8183
8529
|
Reference frame for the covariance matrix.
|
|
8184
8530
|
comment : list[str], optional
|
|
@@ -8513,7 +8859,7 @@ class OemData:
|
|
|
8513
8859
|
comments : list[str], optional
|
|
8514
8860
|
Comments.
|
|
8515
8861
|
"""
|
|
8516
|
-
def __init__(state_vectors, comments) -> None: ...
|
|
8862
|
+
def __init__(state_vectors, covariance_matrix=None, comments=None) -> None: ...
|
|
8517
8863
|
def __getstate__(self, /):
|
|
8518
8864
|
"""
|
|
8519
8865
|
Helper for pickle.
|
|
@@ -8546,19 +8892,43 @@ class OemData:
|
|
|
8546
8892
|
@covariance_matrix.setter
|
|
8547
8893
|
def covariance_matrix(self, value: list[OemCovarianceMatrix]) -> None: ...
|
|
8548
8894
|
@property
|
|
8549
|
-
def
|
|
8895
|
+
def covariance_matrix_epochs(self) -> list[str]:
|
|
8550
8896
|
"""
|
|
8551
|
-
|
|
8897
|
+
Epochs for covariance matrices (ISO 8601).
|
|
8898
|
+
"""
|
|
8899
|
+
...
|
|
8552
8900
|
|
|
8553
|
-
|
|
8554
|
-
|
|
8901
|
+
@covariance_matrix_epochs.setter
|
|
8902
|
+
def covariance_matrix_epochs(self, value: list[str]) -> None: ...
|
|
8903
|
+
@property
|
|
8904
|
+
def covariance_matrix_numpy(self) -> numpy.ndarray:
|
|
8905
|
+
"""
|
|
8906
|
+
Get covariance matrices as a NumPy array.
|
|
8907
|
+
|
|
8908
|
+
Use `covariance_matrix_epochs` for the corresponding epochs.
|
|
8909
|
+
|
|
8910
|
+
The returned array is a 3D tensor of shape (N, 6, 6), where N is the number of covariance
|
|
8911
|
+
matrices. Each 6x6 matrix is symmetric and constructed from the lower-triangular CCSDS data.
|
|
8912
|
+
|
|
8913
|
+
Indices: 0=X, 1=Y, 2=Z, 3=X_DOT, 4=Y_DOT, 5=Z_DOT
|
|
8555
8914
|
"""
|
|
8556
8915
|
...
|
|
8557
8916
|
|
|
8558
8917
|
@covariance_matrix_numpy.setter
|
|
8559
|
-
def covariance_matrix_numpy(
|
|
8560
|
-
|
|
8561
|
-
|
|
8918
|
+
def covariance_matrix_numpy(self, value: numpy.ndarray) -> None: ...
|
|
8919
|
+
@staticmethod
|
|
8920
|
+
def from_numpy(
|
|
8921
|
+
state_vector_epochs,
|
|
8922
|
+
state_vector_numpy,
|
|
8923
|
+
covariance_matrix_epochs=None,
|
|
8924
|
+
covariance_matrix_numpy=None,
|
|
8925
|
+
cov_ref_frames=None,
|
|
8926
|
+
cov_comments=None,
|
|
8927
|
+
comments=None,
|
|
8928
|
+
):
|
|
8929
|
+
""" """
|
|
8930
|
+
...
|
|
8931
|
+
|
|
8562
8932
|
@property
|
|
8563
8933
|
def state_vector(self) -> list[StateVectorAcc]:
|
|
8564
8934
|
"""
|
|
@@ -8574,31 +8944,42 @@ class OemData:
|
|
|
8574
8944
|
@state_vector.setter
|
|
8575
8945
|
def state_vector(self, value: list[StateVectorAcc]) -> None: ...
|
|
8576
8946
|
@property
|
|
8577
|
-
def
|
|
8947
|
+
def state_vector_epochs(self) -> list[str]:
|
|
8948
|
+
"""
|
|
8949
|
+
Epochs for state vectors (ISO 8601).
|
|
8578
8950
|
"""
|
|
8579
|
-
|
|
8951
|
+
...
|
|
8580
8952
|
|
|
8581
|
-
|
|
8582
|
-
|
|
8953
|
+
@state_vector_epochs.setter
|
|
8954
|
+
def state_vector_epochs(self, value: list[str]) -> None: ...
|
|
8955
|
+
@property
|
|
8956
|
+
def state_vector_numpy(self) -> numpy.ndarray:
|
|
8957
|
+
"""
|
|
8958
|
+
State vectors as a NumPy array.
|
|
8959
|
+
|
|
8960
|
+
Use `state_vector_epochs` for the corresponding epochs.
|
|
8583
8961
|
|
|
8584
8962
|
Returns
|
|
8585
8963
|
-------
|
|
8586
|
-
|
|
8587
|
-
|
|
8588
|
-
-
|
|
8589
|
-
-
|
|
8590
|
-
- N x 6: [X, Y, Z, X_DOT, Y_DOT, Z_DOT] if no accelerations.
|
|
8591
|
-
- N x 9: [X, Y, Z, X_DOT, Y_DOT, Z_DOT, X_DDOT, Y_DDOT, Z_DDOT] if accelerations present.
|
|
8964
|
+
numpy.ndarray
|
|
8965
|
+
2D array of shape (N, 6) or (N, 9):
|
|
8966
|
+
- N x 6: [X, Y, Z, X_DOT, Y_DOT, Z_DOT] if no accelerations.
|
|
8967
|
+
- N x 9: [X, Y, Z, X_DOT, Y_DOT, Z_DOT, X_DDOT, Y_DDOT, Z_DDOT] if accelerations present.
|
|
8592
8968
|
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8969
|
+
Units:
|
|
8970
|
+
- Position: km
|
|
8971
|
+
- Velocity: km/s
|
|
8972
|
+
- Acceleration: km/s²
|
|
8597
8973
|
"""
|
|
8598
8974
|
...
|
|
8599
8975
|
|
|
8600
8976
|
@state_vector_numpy.setter
|
|
8601
|
-
def state_vector_numpy(self, value:
|
|
8977
|
+
def state_vector_numpy(self, value: numpy.ndarray) -> None: ...
|
|
8978
|
+
def validate(self):
|
|
8979
|
+
"""
|
|
8980
|
+
Validate the data section against CCSDS rules.
|
|
8981
|
+
"""
|
|
8982
|
+
...
|
|
8602
8983
|
|
|
8603
8984
|
class OemMetadata:
|
|
8604
8985
|
"""
|
|
@@ -8834,6 +9215,11 @@ class OemMetadata:
|
|
|
8834
9215
|
|
|
8835
9216
|
@useable_stop_time.setter
|
|
8836
9217
|
def useable_stop_time(self, value: Optional[str]) -> None: ...
|
|
9218
|
+
def validate(self):
|
|
9219
|
+
"""
|
|
9220
|
+
Validate the metadata against CCSDS rules.
|
|
9221
|
+
"""
|
|
9222
|
+
...
|
|
8837
9223
|
|
|
8838
9224
|
class OemSegment:
|
|
8839
9225
|
"""
|
|
@@ -8875,6 +9261,11 @@ class OemSegment:
|
|
|
8875
9261
|
|
|
8876
9262
|
@metadata.setter
|
|
8877
9263
|
def metadata(self, value: OemMetadata) -> None: ...
|
|
9264
|
+
def validate(self):
|
|
9265
|
+
"""
|
|
9266
|
+
Validate the segment against CCSDS rules.
|
|
9267
|
+
"""
|
|
9268
|
+
...
|
|
8878
9269
|
|
|
8879
9270
|
class Omm:
|
|
8880
9271
|
"""
|
|
@@ -8946,6 +9337,15 @@ class Omm:
|
|
|
8946
9337
|
@header.setter
|
|
8947
9338
|
def header(self, value: OdmHeader) -> None: ...
|
|
8948
9339
|
@property
|
|
9340
|
+
def id(self) -> Optional[str]:
|
|
9341
|
+
"""
|
|
9342
|
+
The message identifier.
|
|
9343
|
+
"""
|
|
9344
|
+
...
|
|
9345
|
+
|
|
9346
|
+
@id.setter
|
|
9347
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
9348
|
+
@property
|
|
8949
9349
|
def segment(self) -> OmmSegment:
|
|
8950
9350
|
"""
|
|
8951
9351
|
The data segment.
|
|
@@ -8954,7 +9354,7 @@ class Omm:
|
|
|
8954
9354
|
|
|
8955
9355
|
@segment.setter
|
|
8956
9356
|
def segment(self, value: OmmSegment) -> None: ...
|
|
8957
|
-
def to_file(self, path, format):
|
|
9357
|
+
def to_file(self, path, format, validate=True):
|
|
8958
9358
|
"""
|
|
8959
9359
|
Write to file.
|
|
8960
9360
|
|
|
@@ -8964,10 +9364,12 @@ class Omm:
|
|
|
8964
9364
|
Output file path.
|
|
8965
9365
|
format : str
|
|
8966
9366
|
Output format ('kvn' or 'xml').
|
|
9367
|
+
validate : bool, optional
|
|
9368
|
+
Whether to validate the message before writing (default: True).
|
|
8967
9369
|
"""
|
|
8968
9370
|
...
|
|
8969
9371
|
|
|
8970
|
-
def to_str(self, format):
|
|
9372
|
+
def to_str(self, format, validate=True):
|
|
8971
9373
|
"""
|
|
8972
9374
|
Serialize to string.
|
|
8973
9375
|
|
|
@@ -8976,6 +9378,8 @@ class Omm:
|
|
|
8976
9378
|
format : str
|
|
8977
9379
|
Output format ('kvn' or 'xml').
|
|
8978
9380
|
(Mandatory)
|
|
9381
|
+
validate : bool, optional
|
|
9382
|
+
Whether to validate the message before writing (default: True).
|
|
8979
9383
|
|
|
8980
9384
|
Returns
|
|
8981
9385
|
-------
|
|
@@ -8984,11 +9388,33 @@ class Omm:
|
|
|
8984
9388
|
"""
|
|
8985
9389
|
...
|
|
8986
9390
|
|
|
9391
|
+
def validate(self, strict=True):
|
|
9392
|
+
"""
|
|
9393
|
+
Validate the message against CCSDS rules.
|
|
9394
|
+
|
|
9395
|
+
Parameters
|
|
9396
|
+
----------
|
|
9397
|
+
strict : bool, optional
|
|
9398
|
+
If True (default), raises ValueError on the first error found.
|
|
9399
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
9400
|
+
"""
|
|
9401
|
+
...
|
|
9402
|
+
|
|
9403
|
+
@property
|
|
9404
|
+
def version(self) -> str:
|
|
9405
|
+
"""
|
|
9406
|
+
The message version.
|
|
9407
|
+
"""
|
|
9408
|
+
...
|
|
9409
|
+
|
|
9410
|
+
@version.setter
|
|
9411
|
+
def version(self, value: str) -> None: ...
|
|
9412
|
+
|
|
8987
9413
|
class OmmData:
|
|
8988
9414
|
"""
|
|
8989
9415
|
OMM Data section.
|
|
8990
9416
|
"""
|
|
8991
|
-
def __init__(mean_elements, comments) -> None: ...
|
|
9417
|
+
def __init__(mean_elements, comments=None) -> None: ...
|
|
8992
9418
|
def __getstate__(self, /):
|
|
8993
9419
|
"""
|
|
8994
9420
|
Helper for pickle.
|
|
@@ -9307,6 +9733,15 @@ class Opm:
|
|
|
9307
9733
|
@header.setter
|
|
9308
9734
|
def header(self, value: OdmHeader) -> None: ...
|
|
9309
9735
|
@property
|
|
9736
|
+
def id(self) -> Optional[str]:
|
|
9737
|
+
"""
|
|
9738
|
+
The message identifier.
|
|
9739
|
+
"""
|
|
9740
|
+
...
|
|
9741
|
+
|
|
9742
|
+
@id.setter
|
|
9743
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
9744
|
+
@property
|
|
9310
9745
|
def segment(self) -> OpmSegment:
|
|
9311
9746
|
"""
|
|
9312
9747
|
The data segment.
|
|
@@ -9315,7 +9750,7 @@ class Opm:
|
|
|
9315
9750
|
|
|
9316
9751
|
@segment.setter
|
|
9317
9752
|
def segment(self, value: OpmSegment) -> None: ...
|
|
9318
|
-
def to_file(self, path, format):
|
|
9753
|
+
def to_file(self, path, format, validate=True):
|
|
9319
9754
|
"""
|
|
9320
9755
|
Write to file.
|
|
9321
9756
|
|
|
@@ -9325,10 +9760,12 @@ class Opm:
|
|
|
9325
9760
|
Output file path.
|
|
9326
9761
|
format : str
|
|
9327
9762
|
Output format ('kvn' or 'xml').
|
|
9763
|
+
validate : bool, optional
|
|
9764
|
+
Whether to validate the message before writing (default: True).
|
|
9328
9765
|
"""
|
|
9329
9766
|
...
|
|
9330
9767
|
|
|
9331
|
-
def to_str(self, format):
|
|
9768
|
+
def to_str(self, format, validate=True):
|
|
9332
9769
|
"""
|
|
9333
9770
|
Serialize to string.
|
|
9334
9771
|
|
|
@@ -9336,6 +9773,8 @@ class Opm:
|
|
|
9336
9773
|
----------
|
|
9337
9774
|
format : str
|
|
9338
9775
|
Output format ('kvn' or 'xml').
|
|
9776
|
+
validate : bool, optional
|
|
9777
|
+
Whether to validate the message before writing (default: True).
|
|
9339
9778
|
|
|
9340
9779
|
Returns
|
|
9341
9780
|
-------
|
|
@@ -9344,6 +9783,28 @@ class Opm:
|
|
|
9344
9783
|
"""
|
|
9345
9784
|
...
|
|
9346
9785
|
|
|
9786
|
+
def validate(self, strict=True):
|
|
9787
|
+
"""
|
|
9788
|
+
Validate the message against CCSDS rules.
|
|
9789
|
+
|
|
9790
|
+
Parameters
|
|
9791
|
+
----------
|
|
9792
|
+
strict : bool, optional
|
|
9793
|
+
If True (default), raises ValueError on the first error found.
|
|
9794
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
9795
|
+
"""
|
|
9796
|
+
...
|
|
9797
|
+
|
|
9798
|
+
@property
|
|
9799
|
+
def version(self) -> str:
|
|
9800
|
+
"""
|
|
9801
|
+
The message version.
|
|
9802
|
+
"""
|
|
9803
|
+
...
|
|
9804
|
+
|
|
9805
|
+
@version.setter
|
|
9806
|
+
def version(self, value: str) -> None: ...
|
|
9807
|
+
|
|
9347
9808
|
class OpmCovarianceMatrix:
|
|
9348
9809
|
"""
|
|
9349
9810
|
Position/Velocity Covariance Matrix (6x6 Lower Triangular Form. None or all parameters of the
|
|
@@ -9405,29 +9866,29 @@ class OpmCovarianceMatrix:
|
|
|
9405
9866
|
... (see Parameters for full list of attributes with units)
|
|
9406
9867
|
"""
|
|
9407
9868
|
def __init__(
|
|
9408
|
-
cx_x,
|
|
9409
|
-
cy_x,
|
|
9410
|
-
cy_y,
|
|
9411
|
-
cz_x,
|
|
9412
|
-
cz_y,
|
|
9413
|
-
cz_z,
|
|
9414
|
-
cx_dot_x,
|
|
9415
|
-
cx_dot_y,
|
|
9416
|
-
cx_dot_z,
|
|
9417
|
-
cy_dot_x,
|
|
9418
|
-
cy_dot_y,
|
|
9419
|
-
cy_dot_z,
|
|
9420
|
-
cz_dot_x,
|
|
9421
|
-
cz_dot_y,
|
|
9422
|
-
cz_dot_z,
|
|
9423
|
-
cx_dot_x_dot,
|
|
9424
|
-
cy_dot_x_dot,
|
|
9425
|
-
cy_dot_y_dot,
|
|
9426
|
-
cz_dot_x_dot,
|
|
9427
|
-
cz_dot_y_dot,
|
|
9428
|
-
cz_dot_z_dot,
|
|
9429
|
-
cov_ref_frame,
|
|
9430
|
-
comments,
|
|
9869
|
+
cx_x=None,
|
|
9870
|
+
cy_x=None,
|
|
9871
|
+
cy_y=None,
|
|
9872
|
+
cz_x=None,
|
|
9873
|
+
cz_y=None,
|
|
9874
|
+
cz_z=None,
|
|
9875
|
+
cx_dot_x=None,
|
|
9876
|
+
cx_dot_y=None,
|
|
9877
|
+
cx_dot_z=None,
|
|
9878
|
+
cy_dot_x=None,
|
|
9879
|
+
cy_dot_y=None,
|
|
9880
|
+
cy_dot_z=None,
|
|
9881
|
+
cz_dot_x=None,
|
|
9882
|
+
cz_dot_y=None,
|
|
9883
|
+
cz_dot_z=None,
|
|
9884
|
+
cx_dot_x_dot=None,
|
|
9885
|
+
cy_dot_x_dot=None,
|
|
9886
|
+
cy_dot_y_dot=None,
|
|
9887
|
+
cz_dot_x_dot=None,
|
|
9888
|
+
cz_dot_y_dot=None,
|
|
9889
|
+
cz_dot_z_dot=None,
|
|
9890
|
+
cov_ref_frame=None,
|
|
9891
|
+
comments=None,
|
|
9431
9892
|
) -> None: ...
|
|
9432
9893
|
def __getstate__(self, /):
|
|
9433
9894
|
"""
|
|
@@ -9695,7 +10156,7 @@ class OpmData:
|
|
|
9695
10156
|
state_vector : StateVector
|
|
9696
10157
|
State vector.
|
|
9697
10158
|
"""
|
|
9698
|
-
def __init__(state_vector, comment) -> None: ...
|
|
10159
|
+
def __init__(state_vector, comment=None) -> None: ...
|
|
9699
10160
|
def __getstate__(self, /):
|
|
9700
10161
|
"""
|
|
9701
10162
|
Helper for pickle.
|
|
@@ -10131,6 +10592,15 @@ class Rdm:
|
|
|
10131
10592
|
@header.setter
|
|
10132
10593
|
def header(self, value: RdmHeader) -> None: ...
|
|
10133
10594
|
@property
|
|
10595
|
+
def id(self) -> Optional[str]:
|
|
10596
|
+
"""
|
|
10597
|
+
The message identifier.
|
|
10598
|
+
"""
|
|
10599
|
+
...
|
|
10600
|
+
|
|
10601
|
+
@id.setter
|
|
10602
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
10603
|
+
@property
|
|
10134
10604
|
def segment(self) -> RdmSegment:
|
|
10135
10605
|
"""
|
|
10136
10606
|
The RDM Body consists of a single segment.
|
|
@@ -10139,7 +10609,7 @@ class Rdm:
|
|
|
10139
10609
|
|
|
10140
10610
|
@segment.setter
|
|
10141
10611
|
def segment(self, value: RdmSegment) -> None: ...
|
|
10142
|
-
def to_file(self, path, format):
|
|
10612
|
+
def to_file(self, path, format, validate=True):
|
|
10143
10613
|
"""
|
|
10144
10614
|
Write to a file.
|
|
10145
10615
|
|
|
@@ -10149,6 +10619,8 @@ class Rdm:
|
|
|
10149
10619
|
Output file path.
|
|
10150
10620
|
format : str
|
|
10151
10621
|
Format ('kvn' or 'xml').
|
|
10622
|
+
validate : bool, optional
|
|
10623
|
+
Whether to validate the message before writing (default: True).
|
|
10152
10624
|
"""
|
|
10153
10625
|
...
|
|
10154
10626
|
|
|
@@ -10163,7 +10635,7 @@ class Rdm:
|
|
|
10163
10635
|
"""
|
|
10164
10636
|
...
|
|
10165
10637
|
|
|
10166
|
-
def to_str(self, format):
|
|
10638
|
+
def to_str(self, format, validate=True):
|
|
10167
10639
|
"""
|
|
10168
10640
|
Serialize to string (generic).
|
|
10169
10641
|
|
|
@@ -10171,6 +10643,8 @@ class Rdm:
|
|
|
10171
10643
|
----------
|
|
10172
10644
|
format : str
|
|
10173
10645
|
Format ('kvn' or 'xml').
|
|
10646
|
+
validate : bool, optional
|
|
10647
|
+
Whether to validate the message before writing (default: True).
|
|
10174
10648
|
|
|
10175
10649
|
Returns
|
|
10176
10650
|
-------
|
|
@@ -10190,6 +10664,28 @@ class Rdm:
|
|
|
10190
10664
|
"""
|
|
10191
10665
|
...
|
|
10192
10666
|
|
|
10667
|
+
def validate(self, strict=True):
|
|
10668
|
+
"""
|
|
10669
|
+
Validate the message against CCSDS rules.
|
|
10670
|
+
|
|
10671
|
+
Parameters
|
|
10672
|
+
----------
|
|
10673
|
+
strict : bool, optional
|
|
10674
|
+
If True (default), raises ValueError on the first error found.
|
|
10675
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
10676
|
+
"""
|
|
10677
|
+
...
|
|
10678
|
+
|
|
10679
|
+
@property
|
|
10680
|
+
def version(self) -> str:
|
|
10681
|
+
"""
|
|
10682
|
+
The message version.
|
|
10683
|
+
"""
|
|
10684
|
+
...
|
|
10685
|
+
|
|
10686
|
+
@version.setter
|
|
10687
|
+
def version(self, value: str) -> None: ...
|
|
10688
|
+
|
|
10193
10689
|
class RdmData:
|
|
10194
10690
|
"""
|
|
10195
10691
|
The RDM Data section.
|
|
@@ -11106,15 +11602,6 @@ class RelativeMetadataData:
|
|
|
11106
11602
|
@miss_distance.setter
|
|
11107
11603
|
def miss_distance(self, value: float) -> None: ...
|
|
11108
11604
|
@property
|
|
11109
|
-
def relative_position(self) -> Optional[list[float]]:
|
|
11110
|
-
"""
|
|
11111
|
-
Relative position [R, T, N].
|
|
11112
|
-
"""
|
|
11113
|
-
...
|
|
11114
|
-
|
|
11115
|
-
@relative_position.setter
|
|
11116
|
-
def relative_position(self, value: Optional[list[float]]) -> None: ...
|
|
11117
|
-
@property
|
|
11118
11605
|
def relative_speed(self) -> Optional[float]:
|
|
11119
11606
|
"""
|
|
11120
11607
|
The norm of the relative velocity vector. It indicates how fast the two objects are
|
|
@@ -11127,14 +11614,14 @@ class RelativeMetadataData:
|
|
|
11127
11614
|
@relative_speed.setter
|
|
11128
11615
|
def relative_speed(self, value: Optional[float]) -> None: ...
|
|
11129
11616
|
@property
|
|
11130
|
-
def
|
|
11617
|
+
def relative_state_vector(self) -> Optional[RelativeStateVector]:
|
|
11131
11618
|
"""
|
|
11132
|
-
Relative
|
|
11619
|
+
Relative state vector [R, T, N, VR, VT, VN] (combined position and velocity).
|
|
11133
11620
|
"""
|
|
11134
11621
|
...
|
|
11135
11622
|
|
|
11136
|
-
@
|
|
11137
|
-
def
|
|
11623
|
+
@relative_state_vector.setter
|
|
11624
|
+
def relative_state_vector(self, value: Optional[RelativeStateVector]) -> None: ...
|
|
11138
11625
|
@property
|
|
11139
11626
|
def screen_entry_time(self) -> Optional[str]:
|
|
11140
11627
|
"""
|
|
@@ -11241,6 +11728,115 @@ class RelativeMetadataData:
|
|
|
11241
11728
|
@tca.setter
|
|
11242
11729
|
def tca(self, value: str) -> None: ...
|
|
11243
11730
|
|
|
11731
|
+
class RelativeStateVector:
|
|
11732
|
+
"""
|
|
11733
|
+
Relative State Vector containing relative position and velocity.
|
|
11734
|
+
|
|
11735
|
+
Parameters
|
|
11736
|
+
----------
|
|
11737
|
+
relative_position_r : float
|
|
11738
|
+
Relative position R component. Units: m.
|
|
11739
|
+
relative_position_t : float
|
|
11740
|
+
Relative position T component. Units: m.
|
|
11741
|
+
relative_position_n : float
|
|
11742
|
+
Relative position N component. Units: m.
|
|
11743
|
+
relative_velocity_r : float
|
|
11744
|
+
Relative velocity R component. Units: m/s.
|
|
11745
|
+
relative_velocity_t : float
|
|
11746
|
+
Relative velocity T component. Units: m/s.
|
|
11747
|
+
relative_velocity_n : float
|
|
11748
|
+
Relative velocity N component. Units: m/s.
|
|
11749
|
+
"""
|
|
11750
|
+
def __init__(
|
|
11751
|
+
relative_position_r,
|
|
11752
|
+
relative_position_t,
|
|
11753
|
+
relative_position_n,
|
|
11754
|
+
relative_velocity_r,
|
|
11755
|
+
relative_velocity_t,
|
|
11756
|
+
relative_velocity_n,
|
|
11757
|
+
) -> None: ...
|
|
11758
|
+
def __getstate__(self, /):
|
|
11759
|
+
"""
|
|
11760
|
+
Helper for pickle.
|
|
11761
|
+
"""
|
|
11762
|
+
...
|
|
11763
|
+
|
|
11764
|
+
@property
|
|
11765
|
+
def relative_position_n(self) -> float:
|
|
11766
|
+
"""
|
|
11767
|
+
Relative position N component.
|
|
11768
|
+
|
|
11769
|
+
Units: m
|
|
11770
|
+
"""
|
|
11771
|
+
...
|
|
11772
|
+
|
|
11773
|
+
@relative_position_n.setter
|
|
11774
|
+
def relative_position_n(self, value: float) -> None: ...
|
|
11775
|
+
@property
|
|
11776
|
+
def relative_position_r(self) -> float:
|
|
11777
|
+
"""
|
|
11778
|
+
Relative position R component.
|
|
11779
|
+
|
|
11780
|
+
Units: m
|
|
11781
|
+
"""
|
|
11782
|
+
...
|
|
11783
|
+
|
|
11784
|
+
@relative_position_r.setter
|
|
11785
|
+
def relative_position_r(self, value: float) -> None: ...
|
|
11786
|
+
@property
|
|
11787
|
+
def relative_position_t(self) -> float:
|
|
11788
|
+
"""
|
|
11789
|
+
Relative position T component.
|
|
11790
|
+
|
|
11791
|
+
Units: m
|
|
11792
|
+
"""
|
|
11793
|
+
...
|
|
11794
|
+
|
|
11795
|
+
@relative_position_t.setter
|
|
11796
|
+
def relative_position_t(self, value: float) -> None: ...
|
|
11797
|
+
@property
|
|
11798
|
+
def relative_velocity_n(self) -> float:
|
|
11799
|
+
"""
|
|
11800
|
+
Relative velocity N component.
|
|
11801
|
+
|
|
11802
|
+
Units: m/s
|
|
11803
|
+
"""
|
|
11804
|
+
...
|
|
11805
|
+
|
|
11806
|
+
@relative_velocity_n.setter
|
|
11807
|
+
def relative_velocity_n(self, value: float) -> None: ...
|
|
11808
|
+
@property
|
|
11809
|
+
def relative_velocity_r(self) -> float:
|
|
11810
|
+
"""
|
|
11811
|
+
Relative velocity R component.
|
|
11812
|
+
|
|
11813
|
+
Units: m/s
|
|
11814
|
+
"""
|
|
11815
|
+
...
|
|
11816
|
+
|
|
11817
|
+
@relative_velocity_r.setter
|
|
11818
|
+
def relative_velocity_r(self, value: float) -> None: ...
|
|
11819
|
+
@property
|
|
11820
|
+
def relative_velocity_t(self) -> float:
|
|
11821
|
+
"""
|
|
11822
|
+
Relative velocity T component.
|
|
11823
|
+
|
|
11824
|
+
Units: m/s
|
|
11825
|
+
"""
|
|
11826
|
+
...
|
|
11827
|
+
|
|
11828
|
+
@relative_velocity_t.setter
|
|
11829
|
+
def relative_velocity_t(self, value: float) -> None: ...
|
|
11830
|
+
def to_numpy(self) -> numpy.ndarray:
|
|
11831
|
+
"""
|
|
11832
|
+
Return the relative state vector as a NumPy array.
|
|
11833
|
+
|
|
11834
|
+
Returns:
|
|
11835
|
+
numpy.ndarray: 1D array of shape (6,) containing [R, T, N, VR, VT, VN].
|
|
11836
|
+
Units: [m, m, m, m/s, m/s, m/s]
|
|
11837
|
+
"""
|
|
11838
|
+
...
|
|
11839
|
+
|
|
11244
11840
|
class ScreenVolumeFrameType:
|
|
11245
11841
|
def __getstate__(self, /):
|
|
11246
11842
|
"""
|
|
@@ -11276,7 +11872,11 @@ class SpacecraftParameters:
|
|
|
11276
11872
|
Drag coefficient.
|
|
11277
11873
|
"""
|
|
11278
11874
|
def __init__(
|
|
11279
|
-
mass,
|
|
11875
|
+
mass=None,
|
|
11876
|
+
solar_rad_area=None,
|
|
11877
|
+
solar_rad_coeff=None,
|
|
11878
|
+
drag_area=None,
|
|
11879
|
+
drag_coeff=None,
|
|
11280
11880
|
) -> None: ...
|
|
11281
11881
|
def __getstate__(self, /):
|
|
11282
11882
|
"""
|
|
@@ -11548,7 +12148,7 @@ class StateVector:
|
|
|
11548
12148
|
z_dot : float
|
|
11549
12149
|
Velocity vector Z-component (km/s).
|
|
11550
12150
|
"""
|
|
11551
|
-
def __init__(epoch, x, y, z, x_dot, y_dot, z_dot, comments) -> None: ...
|
|
12151
|
+
def __init__(epoch, x, y, z, x_dot, y_dot, z_dot, comments=None) -> None: ...
|
|
11552
12152
|
def __getstate__(self, /):
|
|
11553
12153
|
"""
|
|
11554
12154
|
Helper for pickle.
|
|
@@ -11668,7 +12268,7 @@ class StateVectorAcc:
|
|
|
11668
12268
|
Acceleration vector Z-component (km/s²).
|
|
11669
12269
|
"""
|
|
11670
12270
|
def __init__(
|
|
11671
|
-
epoch, x, y, z, x_dot, y_dot, z_dot, x_ddot, y_ddot, z_ddot
|
|
12271
|
+
epoch, x, y, z, x_dot, y_dot, z_dot, x_ddot=None, y_ddot=None, z_ddot=None
|
|
11672
12272
|
) -> None: ...
|
|
11673
12273
|
def __getstate__(self, /):
|
|
11674
12274
|
"""
|
|
@@ -11890,6 +12490,15 @@ class Tdm:
|
|
|
11890
12490
|
@header.setter
|
|
11891
12491
|
def header(self, value: TdmHeader) -> None: ...
|
|
11892
12492
|
@property
|
|
12493
|
+
def id(self) -> Optional[str]:
|
|
12494
|
+
"""
|
|
12495
|
+
The message identifier.
|
|
12496
|
+
"""
|
|
12497
|
+
...
|
|
12498
|
+
|
|
12499
|
+
@id.setter
|
|
12500
|
+
def id(self, value: Optional[str]) -> None: ...
|
|
12501
|
+
@property
|
|
11893
12502
|
def segments(self) -> list[TdmSegment]:
|
|
11894
12503
|
"""
|
|
11895
12504
|
Shortcut to access segments directly from the body.
|
|
@@ -11898,7 +12507,7 @@ class Tdm:
|
|
|
11898
12507
|
|
|
11899
12508
|
@segments.setter
|
|
11900
12509
|
def segments(self, value: list[TdmSegment]) -> None: ...
|
|
11901
|
-
def to_file(self, path, format):
|
|
12510
|
+
def to_file(self, path, format, validate=True):
|
|
11902
12511
|
"""
|
|
11903
12512
|
Write to file.
|
|
11904
12513
|
|
|
@@ -11908,10 +12517,12 @@ class Tdm:
|
|
|
11908
12517
|
Output file path.
|
|
11909
12518
|
format : str
|
|
11910
12519
|
Output format ('kvn' or 'xml').
|
|
12520
|
+
validate : bool, optional
|
|
12521
|
+
Whether to validate the message before writing (default: True).
|
|
11911
12522
|
"""
|
|
11912
12523
|
...
|
|
11913
12524
|
|
|
11914
|
-
def to_str(self, format):
|
|
12525
|
+
def to_str(self, format, validate=True):
|
|
11915
12526
|
"""
|
|
11916
12527
|
Serialize to string.
|
|
11917
12528
|
|
|
@@ -11919,6 +12530,8 @@ class Tdm:
|
|
|
11919
12530
|
----------
|
|
11920
12531
|
format : str
|
|
11921
12532
|
Output format ('kvn' or 'xml').
|
|
12533
|
+
validate : bool, optional
|
|
12534
|
+
Whether to validate the message before writing (default: True).
|
|
11922
12535
|
|
|
11923
12536
|
Returns
|
|
11924
12537
|
-------
|
|
@@ -11927,6 +12540,28 @@ class Tdm:
|
|
|
11927
12540
|
"""
|
|
11928
12541
|
...
|
|
11929
12542
|
|
|
12543
|
+
def validate(self, strict=True):
|
|
12544
|
+
"""
|
|
12545
|
+
Validate the message against CCSDS rules.
|
|
12546
|
+
|
|
12547
|
+
Parameters
|
|
12548
|
+
----------
|
|
12549
|
+
strict : bool, optional
|
|
12550
|
+
If True (default), raises ValueError on the first error found.
|
|
12551
|
+
If False, returns a list of validation error messages (or None if valid).
|
|
12552
|
+
"""
|
|
12553
|
+
...
|
|
12554
|
+
|
|
12555
|
+
@property
|
|
12556
|
+
def version(self) -> str:
|
|
12557
|
+
"""
|
|
12558
|
+
The message version.
|
|
12559
|
+
"""
|
|
12560
|
+
...
|
|
12561
|
+
|
|
12562
|
+
@version.setter
|
|
12563
|
+
def version(self, value: str) -> None: ...
|
|
12564
|
+
|
|
11930
12565
|
class TdmBody:
|
|
11931
12566
|
"""
|
|
11932
12567
|
The TDM Body consists of one or more TDM Segments.
|
|
@@ -11968,7 +12603,7 @@ class TdmData:
|
|
|
11968
12603
|
Comments in the data section.
|
|
11969
12604
|
(Optional)
|
|
11970
12605
|
"""
|
|
11971
|
-
def __init__(
|
|
12606
|
+
def __init__(observations=None, comment=None) -> None: ...
|
|
11972
12607
|
def __getstate__(self, /):
|
|
11973
12608
|
"""
|
|
11974
12609
|
Helper for pickle.
|