ccsds-ndm-py 0.0.4__tar.gz → 0.0.5__tar.gz
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_py-0.0.4 → ccsds_ndm_py-0.0.5}/PKG-INFO +1 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/Cargo.lock +2 -2
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/Cargo.toml +1 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/ccsds_ndm/__init__.pyi +43 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/acm.rs +0 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/aem.rs +1 -2
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/apm.rs +0 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/attitude.rs +2 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/cdm.rs +59 -60
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/ndm.rs +0 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/ocm.rs +0 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/oem.rs +2 -2
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/omm.rs +62 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/opm.rs +0 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/rdm.rs +1 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/tdm.rs +0 -1
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_omm.py +70 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/Cargo.toml +1 -1
- ccsds_ndm_py-0.0.5/ccsds-ndm/src/messages/omm/tle.rs +1256 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/omm.rs +197 -8
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds_ndm/__init__.pyi +43 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/README.md +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/.pre-commit-config.yaml +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/README.md +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/audit_bindings.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/binding_mappings.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/ccsds_ndm/__init__.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/check_xml.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/common.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/errors.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/lib.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/src/types.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/stubs.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/sync_docstrings.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_acm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_aem.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_apm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_attitude_common.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_cdm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_cdm.xml +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_ndm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_ocm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_oem.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_opm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_rdm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_tdm.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/bindings/python/tests/test_user_defined.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/.pre-commit-config.yaml +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/README.md +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/benches/kvn_benches.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/benches/xml_benches.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/examples/builder_demo.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/examples/convert_format.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/examples/simple_parse.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/common.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/detect.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/error.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/acm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/aem.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/apm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/cdm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/mod.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/ocm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/oem.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/omm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/opm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/parser.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/rdm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/ser.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/kvn/tdm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/lib.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/acm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/aem.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/apm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/cdm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/mod.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/ndm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/ocm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/oem.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/opm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/rdm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/messages/tdm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/traits.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/types.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/utils.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/validation.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/versioning.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/src/xml.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/auto_detection.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/case_matrix.json +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/case_matrix.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/combined_ndm.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/common/mod.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/error_reporting.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/integration_lib.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/integration_parsing.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/repro_kvn_empty.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/verify_cdm_optional.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds-ndm/tests/xml_wrappers.rs +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/ccsds_ndm/__init__.py +0 -0
- {ccsds_ndm_py-0.0.4 → ccsds_ndm_py-0.0.5}/pyproject.toml +0 -0
|
@@ -35,7 +35,7 @@ dependencies = [
|
|
|
35
35
|
|
|
36
36
|
[[package]]
|
|
37
37
|
name = "ccsds-ndm"
|
|
38
|
-
version = "0.0.
|
|
38
|
+
version = "0.0.5"
|
|
39
39
|
dependencies = [
|
|
40
40
|
"bon",
|
|
41
41
|
"fast-float",
|
|
@@ -49,7 +49,7 @@ dependencies = [
|
|
|
49
49
|
|
|
50
50
|
[[package]]
|
|
51
51
|
name = "ccsds-ndm-py"
|
|
52
|
-
version = "0.0.
|
|
52
|
+
version = "0.0.5"
|
|
53
53
|
dependencies = [
|
|
54
54
|
"ccsds-ndm",
|
|
55
55
|
"numpy",
|
|
@@ -9318,6 +9318,38 @@ class Omm:
|
|
|
9318
9318
|
""" """
|
|
9319
9319
|
...
|
|
9320
9320
|
|
|
9321
|
+
@staticmethod
|
|
9322
|
+
def from_tle_lines(
|
|
9323
|
+
line1,
|
|
9324
|
+
line2,
|
|
9325
|
+
object_name=None,
|
|
9326
|
+
object_id=None,
|
|
9327
|
+
originator=None,
|
|
9328
|
+
message_id=None,
|
|
9329
|
+
creation_date=None,
|
|
9330
|
+
):
|
|
9331
|
+
"""
|
|
9332
|
+
Build a minimal OMM from canonical NORAD TLE line 1 and line 2.
|
|
9333
|
+
|
|
9334
|
+
Parameters
|
|
9335
|
+
----------
|
|
9336
|
+
line1 : str
|
|
9337
|
+
TLE line 1 (69 chars including checksum).
|
|
9338
|
+
line2 : str
|
|
9339
|
+
TLE line 2 (69 chars including checksum).
|
|
9340
|
+
object_name : str, optional
|
|
9341
|
+
Metadata OBJECT_NAME override (default: "UNKNOWN").
|
|
9342
|
+
object_id : str, optional
|
|
9343
|
+
Metadata OBJECT_ID override (default: derived from TLE launch designator).
|
|
9344
|
+
originator : str, optional
|
|
9345
|
+
Header ORIGINATOR override (default: "UNKNOWN").
|
|
9346
|
+
message_id : str, optional
|
|
9347
|
+
Header MESSAGE_ID override.
|
|
9348
|
+
creation_date : str, optional
|
|
9349
|
+
Header CREATION_DATE override in CCSDS epoch format.
|
|
9350
|
+
"""
|
|
9351
|
+
...
|
|
9352
|
+
|
|
9321
9353
|
@property
|
|
9322
9354
|
def header(self) -> OdmHeader:
|
|
9323
9355
|
"""
|
|
@@ -9388,6 +9420,17 @@ class Omm:
|
|
|
9388
9420
|
"""
|
|
9389
9421
|
...
|
|
9390
9422
|
|
|
9423
|
+
def to_tle_lines(self):
|
|
9424
|
+
"""
|
|
9425
|
+
Generate canonical NORAD TLE lines (line 1 and line 2) from this OMM.
|
|
9426
|
+
|
|
9427
|
+
Returns
|
|
9428
|
+
-------
|
|
9429
|
+
tuple[str, str]
|
|
9430
|
+
`(line1, line2)` without a line 0.
|
|
9431
|
+
"""
|
|
9432
|
+
...
|
|
9433
|
+
|
|
9391
9434
|
def validate(self, strict=True):
|
|
9392
9435
|
"""
|
|
9393
9436
|
Validate the message against CCSDS rules.
|
|
@@ -128,7 +128,6 @@ impl Aem {
|
|
|
128
128
|
/// If False, returns a list of validation error messages (or None if valid).
|
|
129
129
|
#[pyo3(signature = (strict=true))]
|
|
130
130
|
fn validate(&self, strict: bool) -> PyResult<Option<Vec<String>>> {
|
|
131
|
-
|
|
132
131
|
if strict {
|
|
133
132
|
self.inner
|
|
134
133
|
.validate()
|
|
@@ -604,7 +603,7 @@ impl AemData {
|
|
|
604
603
|
QuaternionEphemeris {
|
|
605
604
|
epoch: s.epoch,
|
|
606
605
|
quaternion: Quaternion {
|
|
607
|
-
q1: s.values.
|
|
606
|
+
q1: s.values.first().copied().unwrap_or(0.0),
|
|
608
607
|
q2: s.values.get(1).copied().unwrap_or(0.0),
|
|
609
608
|
q3: s.values.get(2).copied().unwrap_or(0.0),
|
|
610
609
|
qc: s.values.get(3).copied().unwrap_or(1.0),
|
|
@@ -112,7 +112,6 @@ impl Apm {
|
|
|
112
112
|
/// If False, returns a list of validation error messages (or None if valid).
|
|
113
113
|
#[pyo3(signature = (strict=true))]
|
|
114
114
|
fn validate(&self, strict: bool) -> PyResult<Option<Vec<String>>> {
|
|
115
|
-
|
|
116
115
|
if strict {
|
|
117
116
|
self.inner
|
|
118
117
|
.validate()
|
|
@@ -19,6 +19,7 @@ pub struct QuaternionState {
|
|
|
19
19
|
#[pymethods]
|
|
20
20
|
impl QuaternionState {
|
|
21
21
|
#[new]
|
|
22
|
+
#[allow(clippy::too_many_arguments)]
|
|
22
23
|
fn new(
|
|
23
24
|
ref_frame_a: String,
|
|
24
25
|
ref_frame_b: String,
|
|
@@ -643,6 +644,7 @@ pub struct InertiaState {
|
|
|
643
644
|
#[pymethods]
|
|
644
645
|
impl InertiaState {
|
|
645
646
|
#[new]
|
|
647
|
+
#[allow(clippy::too_many_arguments)]
|
|
646
648
|
fn new(
|
|
647
649
|
inertia_ref_frame: String,
|
|
648
650
|
ixx: f64,
|
|
@@ -48,7 +48,7 @@ fn build_cdm_covariance_from_array(
|
|
|
48
48
|
));
|
|
49
49
|
}
|
|
50
50
|
let dim = shape[0];
|
|
51
|
-
if
|
|
51
|
+
if !(6..=9).contains(&dim) {
|
|
52
52
|
return Err(PyValueError::new_err(
|
|
53
53
|
"Covariance matrix must be 6x6, 7x7, 8x8, or 9x9",
|
|
54
54
|
));
|
|
@@ -242,7 +242,6 @@ impl Cdm {
|
|
|
242
242
|
/// If False, returns a list of validation error messages (or None if valid).
|
|
243
243
|
#[pyo3(signature = (strict=true))]
|
|
244
244
|
fn validate(&self, strict: bool) -> PyResult<Option<Vec<String>>> {
|
|
245
|
-
|
|
246
245
|
if strict {
|
|
247
246
|
self.inner
|
|
248
247
|
.validate()
|
|
@@ -787,7 +786,7 @@ impl RelativeMetadataData {
|
|
|
787
786
|
comment,
|
|
788
787
|
tca: parse_epoch_str(&tca)?,
|
|
789
788
|
miss_distance: Length::new(miss_distance, None),
|
|
790
|
-
relative_speed: relative_speed.map(
|
|
789
|
+
relative_speed: relative_speed.map(Dv::new),
|
|
791
790
|
relative_state_vector: rel_state,
|
|
792
791
|
start_screen_period: start_screen_period
|
|
793
792
|
.map(|s| parse_epoch_str(&s))
|
|
@@ -850,7 +849,7 @@ impl RelativeMetadataData {
|
|
|
850
849
|
}
|
|
851
850
|
#[setter]
|
|
852
851
|
fn set_relative_speed(&mut self, value: Option<f64>) {
|
|
853
|
-
self.inner.relative_speed = value.map(
|
|
852
|
+
self.inner.relative_speed = value.map(Dv::new);
|
|
854
853
|
}
|
|
855
854
|
|
|
856
855
|
/// The probability (denoted 'p' where 0.0<=p<=1.0), that Object1 and Object2 will collide.
|
|
@@ -2561,10 +2560,10 @@ impl AdditionalParameters {
|
|
|
2561
2560
|
area_drg: area_drg.map(|v| core_types::Area::new(v, None).unwrap()),
|
|
2562
2561
|
area_srp: area_srp.map(|v| core_types::Area::new(v, None).unwrap()),
|
|
2563
2562
|
mass: mass.map(|v| core_types::Mass::new(v, None).unwrap()),
|
|
2564
|
-
cd_area_over_mass: cd_area_over_mass.map(
|
|
2565
|
-
cr_area_over_mass: cr_area_over_mass.map(
|
|
2566
|
-
thrust_acceleration: thrust_acceleration.map(
|
|
2567
|
-
sedr: sedr.map(
|
|
2563
|
+
cd_area_over_mass: cd_area_over_mass.map(core_types::M2kgRequired::new),
|
|
2564
|
+
cr_area_over_mass: cr_area_over_mass.map(core_types::M2kgRequired::new),
|
|
2565
|
+
thrust_acceleration: thrust_acceleration.map(core_types::Ms2::new),
|
|
2566
|
+
sedr: sedr.map(core_types::Wkg::new),
|
|
2568
2567
|
},
|
|
2569
2568
|
}
|
|
2570
2569
|
}
|
|
@@ -2651,7 +2650,7 @@ impl AdditionalParameters {
|
|
|
2651
2650
|
}
|
|
2652
2651
|
#[setter]
|
|
2653
2652
|
fn set_cd_area_over_mass(&mut self, v: Option<f64>) {
|
|
2654
|
-
self.inner.cd_area_over_mass = v.map(
|
|
2653
|
+
self.inner.cd_area_over_mass = v.map(core_types::M2kgRequired::new);
|
|
2655
2654
|
}
|
|
2656
2655
|
|
|
2657
2656
|
/// The object's CR•A/m used to propagate the state vector and covariance to TCA. (See
|
|
@@ -2666,7 +2665,7 @@ impl AdditionalParameters {
|
|
|
2666
2665
|
}
|
|
2667
2666
|
#[setter]
|
|
2668
2667
|
fn set_cr_area_over_mass(&mut self, v: Option<f64>) {
|
|
2669
|
-
self.inner.cr_area_over_mass = v.map(
|
|
2668
|
+
self.inner.cr_area_over_mass = v.map(core_types::M2kgRequired::new);
|
|
2670
2669
|
}
|
|
2671
2670
|
|
|
2672
2671
|
/// The object's acceleration due to in-track thrust used to propagate the state vector and
|
|
@@ -2681,7 +2680,7 @@ impl AdditionalParameters {
|
|
|
2681
2680
|
}
|
|
2682
2681
|
#[setter]
|
|
2683
2682
|
fn set_thrust_acceleration(&mut self, v: Option<f64>) {
|
|
2684
|
-
self.inner.thrust_acceleration = v.map(
|
|
2683
|
+
self.inner.thrust_acceleration = v.map(core_types::Ms2::new);
|
|
2685
2684
|
}
|
|
2686
2685
|
|
|
2687
2686
|
/// The amount of energy being removed from the object's orbit by atmospheric drag. This
|
|
@@ -2696,7 +2695,7 @@ impl AdditionalParameters {
|
|
|
2696
2695
|
}
|
|
2697
2696
|
#[setter]
|
|
2698
2697
|
fn set_sedr(&mut self, v: Option<f64>) {
|
|
2699
|
-
self.inner.sedr = v.map(
|
|
2698
|
+
self.inner.sedr = v.map(core_types::Wkg::new);
|
|
2700
2699
|
}
|
|
2701
2700
|
}
|
|
2702
2701
|
|
|
@@ -2926,30 +2925,30 @@ impl CdmCovarianceMatrix {
|
|
|
2926
2925
|
cndot_rdot: core_types::M2s2::new(cndot_rdot),
|
|
2927
2926
|
cndot_tdot: core_types::M2s2::new(cndot_tdot),
|
|
2928
2927
|
cndot_ndot: core_types::M2s2::new(cndot_ndot),
|
|
2929
|
-
cdrg_r: cdrg_r.map(
|
|
2930
|
-
cdrg_t: cdrg_t.map(
|
|
2931
|
-
cdrg_n: cdrg_n.map(
|
|
2932
|
-
cdrg_rdot: cdrg_rdot.map(
|
|
2933
|
-
cdrg_tdot: cdrg_tdot.map(
|
|
2934
|
-
cdrg_ndot: cdrg_ndot.map(
|
|
2935
|
-
cdrg_drg: cdrg_drg.map(
|
|
2936
|
-
csrp_r: csrp_r.map(
|
|
2937
|
-
csrp_t: csrp_t.map(
|
|
2938
|
-
csrp_n: csrp_n.map(
|
|
2939
|
-
csrp_rdot: csrp_rdot.map(
|
|
2940
|
-
csrp_tdot: csrp_tdot.map(
|
|
2941
|
-
csrp_ndot: csrp_ndot.map(
|
|
2942
|
-
csrp_drg: csrp_drg.map(
|
|
2943
|
-
csrp_srp: csrp_srp.map(
|
|
2944
|
-
cthr_r: cthr_r.map(
|
|
2945
|
-
cthr_t: cthr_t.map(
|
|
2946
|
-
cthr_n: cthr_n.map(
|
|
2947
|
-
cthr_rdot: cthr_rdot.map(
|
|
2948
|
-
cthr_tdot: cthr_tdot.map(
|
|
2949
|
-
cthr_ndot: cthr_ndot.map(
|
|
2950
|
-
cthr_drg: cthr_drg.map(
|
|
2951
|
-
cthr_srp: cthr_srp.map(
|
|
2952
|
-
cthr_thr: cthr_thr.map(
|
|
2928
|
+
cdrg_r: cdrg_r.map(core_types::M3kg::new),
|
|
2929
|
+
cdrg_t: cdrg_t.map(core_types::M3kg::new),
|
|
2930
|
+
cdrg_n: cdrg_n.map(core_types::M3kg::new),
|
|
2931
|
+
cdrg_rdot: cdrg_rdot.map(core_types::M3kgs::new),
|
|
2932
|
+
cdrg_tdot: cdrg_tdot.map(core_types::M3kgs::new),
|
|
2933
|
+
cdrg_ndot: cdrg_ndot.map(core_types::M3kgs::new),
|
|
2934
|
+
cdrg_drg: cdrg_drg.map(core_types::M4kg2::new),
|
|
2935
|
+
csrp_r: csrp_r.map(core_types::M3kg::new),
|
|
2936
|
+
csrp_t: csrp_t.map(core_types::M3kg::new),
|
|
2937
|
+
csrp_n: csrp_n.map(core_types::M3kg::new),
|
|
2938
|
+
csrp_rdot: csrp_rdot.map(core_types::M3kgs::new),
|
|
2939
|
+
csrp_tdot: csrp_tdot.map(core_types::M3kgs::new),
|
|
2940
|
+
csrp_ndot: csrp_ndot.map(core_types::M3kgs::new),
|
|
2941
|
+
csrp_drg: csrp_drg.map(core_types::M4kg2::new),
|
|
2942
|
+
csrp_srp: csrp_srp.map(core_types::M4kg2::new),
|
|
2943
|
+
cthr_r: cthr_r.map(core_types::M2s2::new),
|
|
2944
|
+
cthr_t: cthr_t.map(core_types::M2s2::new),
|
|
2945
|
+
cthr_n: cthr_n.map(core_types::M2s2::new),
|
|
2946
|
+
cthr_rdot: cthr_rdot.map(core_types::M2s3::new),
|
|
2947
|
+
cthr_tdot: cthr_tdot.map(core_types::M2s3::new),
|
|
2948
|
+
cthr_ndot: cthr_ndot.map(core_types::M2s3::new),
|
|
2949
|
+
cthr_drg: cthr_drg.map(core_types::M3kgs2::new),
|
|
2950
|
+
cthr_srp: cthr_srp.map(core_types::M3kgs2::new),
|
|
2951
|
+
cthr_thr: cthr_thr.map(core_types::M2s4::new),
|
|
2953
2952
|
},
|
|
2954
2953
|
}
|
|
2955
2954
|
}
|
|
@@ -3374,7 +3373,7 @@ impl CdmCovarianceMatrix {
|
|
|
3374
3373
|
}
|
|
3375
3374
|
#[setter]
|
|
3376
3375
|
fn set_cdrg_r(&mut self, v: Option<f64>) {
|
|
3377
|
-
self.inner.cdrg_r = v.map(
|
|
3376
|
+
self.inner.cdrg_r = v.map(core_types::M3kg::new);
|
|
3378
3377
|
}
|
|
3379
3378
|
|
|
3380
3379
|
/// Object covariance matrix `[7,2]`.
|
|
@@ -3388,7 +3387,7 @@ impl CdmCovarianceMatrix {
|
|
|
3388
3387
|
}
|
|
3389
3388
|
#[setter]
|
|
3390
3389
|
fn set_cdrg_t(&mut self, v: Option<f64>) {
|
|
3391
|
-
self.inner.cdrg_t = v.map(
|
|
3390
|
+
self.inner.cdrg_t = v.map(core_types::M3kg::new);
|
|
3392
3391
|
}
|
|
3393
3392
|
|
|
3394
3393
|
/// Object covariance matrix `[7,3]`.
|
|
@@ -3402,7 +3401,7 @@ impl CdmCovarianceMatrix {
|
|
|
3402
3401
|
}
|
|
3403
3402
|
#[setter]
|
|
3404
3403
|
fn set_cdrg_n(&mut self, v: Option<f64>) {
|
|
3405
|
-
self.inner.cdrg_n = v.map(
|
|
3404
|
+
self.inner.cdrg_n = v.map(core_types::M3kg::new);
|
|
3406
3405
|
}
|
|
3407
3406
|
|
|
3408
3407
|
/// Object covariance matrix `[7,4]`.
|
|
@@ -3416,7 +3415,7 @@ impl CdmCovarianceMatrix {
|
|
|
3416
3415
|
}
|
|
3417
3416
|
#[setter]
|
|
3418
3417
|
fn set_cdrg_rdot(&mut self, v: Option<f64>) {
|
|
3419
|
-
self.inner.cdrg_rdot = v.map(
|
|
3418
|
+
self.inner.cdrg_rdot = v.map(core_types::M3kgs::new);
|
|
3420
3419
|
}
|
|
3421
3420
|
|
|
3422
3421
|
/// Object covariance matrix `[7,5]`.
|
|
@@ -3430,7 +3429,7 @@ impl CdmCovarianceMatrix {
|
|
|
3430
3429
|
}
|
|
3431
3430
|
#[setter]
|
|
3432
3431
|
fn set_cdrg_tdot(&mut self, v: Option<f64>) {
|
|
3433
|
-
self.inner.cdrg_tdot = v.map(
|
|
3432
|
+
self.inner.cdrg_tdot = v.map(core_types::M3kgs::new);
|
|
3434
3433
|
}
|
|
3435
3434
|
|
|
3436
3435
|
/// Object covariance matrix `[7,6]`.
|
|
@@ -3444,7 +3443,7 @@ impl CdmCovarianceMatrix {
|
|
|
3444
3443
|
}
|
|
3445
3444
|
#[setter]
|
|
3446
3445
|
fn set_cdrg_ndot(&mut self, v: Option<f64>) {
|
|
3447
|
-
self.inner.cdrg_ndot = v.map(
|
|
3446
|
+
self.inner.cdrg_ndot = v.map(core_types::M3kgs::new);
|
|
3448
3447
|
}
|
|
3449
3448
|
|
|
3450
3449
|
/// Object covariance matrix `[7,7]`.
|
|
@@ -3458,7 +3457,7 @@ impl CdmCovarianceMatrix {
|
|
|
3458
3457
|
}
|
|
3459
3458
|
#[setter]
|
|
3460
3459
|
fn set_cdrg_drg(&mut self, v: Option<f64>) {
|
|
3461
|
-
self.inner.cdrg_drg = v.map(
|
|
3460
|
+
self.inner.cdrg_drg = v.map(core_types::M4kg2::new);
|
|
3462
3461
|
}
|
|
3463
3462
|
|
|
3464
3463
|
/// Object covariance matrix `[8,1]`.
|
|
@@ -3472,7 +3471,7 @@ impl CdmCovarianceMatrix {
|
|
|
3472
3471
|
}
|
|
3473
3472
|
#[setter]
|
|
3474
3473
|
fn set_csrp_r(&mut self, v: Option<f64>) {
|
|
3475
|
-
self.inner.csrp_r = v.map(
|
|
3474
|
+
self.inner.csrp_r = v.map(core_types::M3kg::new);
|
|
3476
3475
|
}
|
|
3477
3476
|
|
|
3478
3477
|
/// Object covariance matrix `[8,2]`.
|
|
@@ -3486,7 +3485,7 @@ impl CdmCovarianceMatrix {
|
|
|
3486
3485
|
}
|
|
3487
3486
|
#[setter]
|
|
3488
3487
|
fn set_csrp_t(&mut self, v: Option<f64>) {
|
|
3489
|
-
self.inner.csrp_t = v.map(
|
|
3488
|
+
self.inner.csrp_t = v.map(core_types::M3kg::new);
|
|
3490
3489
|
}
|
|
3491
3490
|
|
|
3492
3491
|
/// Object covariance matrix `[8,3]`.
|
|
@@ -3500,7 +3499,7 @@ impl CdmCovarianceMatrix {
|
|
|
3500
3499
|
}
|
|
3501
3500
|
#[setter]
|
|
3502
3501
|
fn set_csrp_n(&mut self, v: Option<f64>) {
|
|
3503
|
-
self.inner.csrp_n = v.map(
|
|
3502
|
+
self.inner.csrp_n = v.map(core_types::M3kg::new);
|
|
3504
3503
|
}
|
|
3505
3504
|
|
|
3506
3505
|
/// Object covariance matrix `[8,4]`.
|
|
@@ -3514,7 +3513,7 @@ impl CdmCovarianceMatrix {
|
|
|
3514
3513
|
}
|
|
3515
3514
|
#[setter]
|
|
3516
3515
|
fn set_csrp_rdot(&mut self, v: Option<f64>) {
|
|
3517
|
-
self.inner.csrp_rdot = v.map(
|
|
3516
|
+
self.inner.csrp_rdot = v.map(core_types::M3kgs::new);
|
|
3518
3517
|
}
|
|
3519
3518
|
|
|
3520
3519
|
/// Object covariance matrix `[8,5]`.
|
|
@@ -3528,7 +3527,7 @@ impl CdmCovarianceMatrix {
|
|
|
3528
3527
|
}
|
|
3529
3528
|
#[setter]
|
|
3530
3529
|
fn set_csrp_tdot(&mut self, v: Option<f64>) {
|
|
3531
|
-
self.inner.csrp_tdot = v.map(
|
|
3530
|
+
self.inner.csrp_tdot = v.map(core_types::M3kgs::new);
|
|
3532
3531
|
}
|
|
3533
3532
|
|
|
3534
3533
|
/// Object covariance matrix `[8,6]`.
|
|
@@ -3542,7 +3541,7 @@ impl CdmCovarianceMatrix {
|
|
|
3542
3541
|
}
|
|
3543
3542
|
#[setter]
|
|
3544
3543
|
fn set_csrp_ndot(&mut self, v: Option<f64>) {
|
|
3545
|
-
self.inner.csrp_ndot = v.map(
|
|
3544
|
+
self.inner.csrp_ndot = v.map(core_types::M3kgs::new);
|
|
3546
3545
|
}
|
|
3547
3546
|
|
|
3548
3547
|
/// Object covariance matrix `[8,7]`.
|
|
@@ -3556,7 +3555,7 @@ impl CdmCovarianceMatrix {
|
|
|
3556
3555
|
}
|
|
3557
3556
|
#[setter]
|
|
3558
3557
|
fn set_csrp_drg(&mut self, v: Option<f64>) {
|
|
3559
|
-
self.inner.csrp_drg = v.map(
|
|
3558
|
+
self.inner.csrp_drg = v.map(core_types::M4kg2::new);
|
|
3560
3559
|
}
|
|
3561
3560
|
|
|
3562
3561
|
/// Object covariance matrix `[8,8]`.
|
|
@@ -3570,7 +3569,7 @@ impl CdmCovarianceMatrix {
|
|
|
3570
3569
|
}
|
|
3571
3570
|
#[setter]
|
|
3572
3571
|
fn set_csrp_srp(&mut self, v: Option<f64>) {
|
|
3573
|
-
self.inner.csrp_srp = v.map(
|
|
3572
|
+
self.inner.csrp_srp = v.map(core_types::M4kg2::new);
|
|
3574
3573
|
}
|
|
3575
3574
|
|
|
3576
3575
|
/// Object covariance matrix `[9,1]`.
|
|
@@ -3584,7 +3583,7 @@ impl CdmCovarianceMatrix {
|
|
|
3584
3583
|
}
|
|
3585
3584
|
#[setter]
|
|
3586
3585
|
fn set_cthr_r(&mut self, v: Option<f64>) {
|
|
3587
|
-
self.inner.cthr_r = v.map(
|
|
3586
|
+
self.inner.cthr_r = v.map(core_types::M2s2::new);
|
|
3588
3587
|
}
|
|
3589
3588
|
|
|
3590
3589
|
/// Object covariance matrix `[9,2]`.
|
|
@@ -3598,7 +3597,7 @@ impl CdmCovarianceMatrix {
|
|
|
3598
3597
|
}
|
|
3599
3598
|
#[setter]
|
|
3600
3599
|
fn set_cthr_t(&mut self, v: Option<f64>) {
|
|
3601
|
-
self.inner.cthr_t = v.map(
|
|
3600
|
+
self.inner.cthr_t = v.map(core_types::M2s2::new);
|
|
3602
3601
|
}
|
|
3603
3602
|
|
|
3604
3603
|
/// Object covariance matrix `[9,3]`.
|
|
@@ -3612,7 +3611,7 @@ impl CdmCovarianceMatrix {
|
|
|
3612
3611
|
}
|
|
3613
3612
|
#[setter]
|
|
3614
3613
|
fn set_cthr_n(&mut self, v: Option<f64>) {
|
|
3615
|
-
self.inner.cthr_n = v.map(
|
|
3614
|
+
self.inner.cthr_n = v.map(core_types::M2s2::new);
|
|
3616
3615
|
}
|
|
3617
3616
|
|
|
3618
3617
|
/// Object covariance matrix `[9,4]`.
|
|
@@ -3626,7 +3625,7 @@ impl CdmCovarianceMatrix {
|
|
|
3626
3625
|
}
|
|
3627
3626
|
#[setter]
|
|
3628
3627
|
fn set_cthr_rdot(&mut self, v: Option<f64>) {
|
|
3629
|
-
self.inner.cthr_rdot = v.map(
|
|
3628
|
+
self.inner.cthr_rdot = v.map(core_types::M2s3::new);
|
|
3630
3629
|
}
|
|
3631
3630
|
|
|
3632
3631
|
/// Object covariance matrix `[9,5]`.
|
|
@@ -3640,7 +3639,7 @@ impl CdmCovarianceMatrix {
|
|
|
3640
3639
|
}
|
|
3641
3640
|
#[setter]
|
|
3642
3641
|
fn set_cthr_tdot(&mut self, v: Option<f64>) {
|
|
3643
|
-
self.inner.cthr_tdot = v.map(
|
|
3642
|
+
self.inner.cthr_tdot = v.map(core_types::M2s3::new);
|
|
3644
3643
|
}
|
|
3645
3644
|
|
|
3646
3645
|
/// Object covariance matrix `[9,6]`.
|
|
@@ -3654,7 +3653,7 @@ impl CdmCovarianceMatrix {
|
|
|
3654
3653
|
}
|
|
3655
3654
|
#[setter]
|
|
3656
3655
|
fn set_cthr_ndot(&mut self, v: Option<f64>) {
|
|
3657
|
-
self.inner.cthr_ndot = v.map(
|
|
3656
|
+
self.inner.cthr_ndot = v.map(core_types::M2s3::new);
|
|
3658
3657
|
}
|
|
3659
3658
|
|
|
3660
3659
|
/// Object covariance matrix `[9,7]`.
|
|
@@ -3668,7 +3667,7 @@ impl CdmCovarianceMatrix {
|
|
|
3668
3667
|
}
|
|
3669
3668
|
#[setter]
|
|
3670
3669
|
fn set_cthr_drg(&mut self, v: Option<f64>) {
|
|
3671
|
-
self.inner.cthr_drg = v.map(
|
|
3670
|
+
self.inner.cthr_drg = v.map(core_types::M3kgs2::new);
|
|
3672
3671
|
}
|
|
3673
3672
|
|
|
3674
3673
|
/// Object covariance matrix `[9,8]`.
|
|
@@ -3682,7 +3681,7 @@ impl CdmCovarianceMatrix {
|
|
|
3682
3681
|
}
|
|
3683
3682
|
#[setter]
|
|
3684
3683
|
fn set_cthr_srp(&mut self, v: Option<f64>) {
|
|
3685
|
-
self.inner.cthr_srp = v.map(
|
|
3684
|
+
self.inner.cthr_srp = v.map(core_types::M3kgs2::new);
|
|
3686
3685
|
}
|
|
3687
3686
|
|
|
3688
3687
|
/// Object covariance matrix `[9,9]`.
|
|
@@ -3696,6 +3695,6 @@ impl CdmCovarianceMatrix {
|
|
|
3696
3695
|
}
|
|
3697
3696
|
#[setter]
|
|
3698
3697
|
fn set_cthr_thr(&mut self, v: Option<f64>) {
|
|
3699
|
-
self.inner.cthr_thr = v.map(
|
|
3698
|
+
self.inner.cthr_thr = v.map(core_types::M2s4::new);
|
|
3700
3699
|
}
|
|
3701
3700
|
}
|
|
@@ -153,7 +153,6 @@ impl Ocm {
|
|
|
153
153
|
/// If False, returns a list of validation error messages (or None if valid).
|
|
154
154
|
#[pyo3(signature = (strict=true))]
|
|
155
155
|
fn validate(&self, strict: bool) -> PyResult<Option<Vec<String>>> {
|
|
156
|
-
|
|
157
156
|
if strict {
|
|
158
157
|
self.inner
|
|
159
158
|
.validate()
|
|
@@ -1491,7 +1491,7 @@ impl OemData {
|
|
|
1491
1491
|
for (i, existing) in self.inner.state_vector.iter().enumerate() {
|
|
1492
1492
|
let row = array_view.row(i);
|
|
1493
1493
|
state_vectors.push(ccsds_ndm::common::StateVectorAcc {
|
|
1494
|
-
epoch: existing.epoch
|
|
1494
|
+
epoch: existing.epoch,
|
|
1495
1495
|
x: Position {
|
|
1496
1496
|
value: row[0],
|
|
1497
1497
|
units: None,
|
|
@@ -1772,7 +1772,7 @@ impl OemData {
|
|
|
1772
1772
|
|
|
1773
1773
|
let current = &existing[i];
|
|
1774
1774
|
covariance_matrices.push(build_covariance_matrix(
|
|
1775
|
-
current.epoch
|
|
1775
|
+
current.epoch,
|
|
1776
1776
|
current.cov_ref_frame.clone(),
|
|
1777
1777
|
current.comment.clone(),
|
|
1778
1778
|
v,
|
|
@@ -87,7 +87,6 @@ impl Omm {
|
|
|
87
87
|
/// If False, returns a list of validation error messages (or None if valid).
|
|
88
88
|
#[pyo3(signature = (strict=true))]
|
|
89
89
|
fn validate(&self, strict: bool) -> PyResult<Option<Vec<String>>> {
|
|
90
|
-
|
|
91
90
|
if strict {
|
|
92
91
|
self.inner
|
|
93
92
|
.validate()
|
|
@@ -259,6 +258,68 @@ impl Omm {
|
|
|
259
258
|
))),
|
|
260
259
|
}
|
|
261
260
|
}
|
|
261
|
+
|
|
262
|
+
/// Generate canonical NORAD TLE lines (line 1 and line 2) from this OMM.
|
|
263
|
+
///
|
|
264
|
+
/// Returns
|
|
265
|
+
/// -------
|
|
266
|
+
/// tuple[str, str]
|
|
267
|
+
/// `(line1, line2)` without a line 0.
|
|
268
|
+
fn to_tle_lines(&self) -> PyResult<(String, String)> {
|
|
269
|
+
self.inner
|
|
270
|
+
.to_tle_lines()
|
|
271
|
+
.map_err(|e| PyValueError::new_err(e.to_string()))
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/// Build a minimal OMM from canonical NORAD TLE line 1 and line 2.
|
|
275
|
+
///
|
|
276
|
+
/// Parameters
|
|
277
|
+
/// ----------
|
|
278
|
+
/// line1 : str
|
|
279
|
+
/// TLE line 1 (69 chars including checksum).
|
|
280
|
+
/// line2 : str
|
|
281
|
+
/// TLE line 2 (69 chars including checksum).
|
|
282
|
+
/// object_name : str, optional
|
|
283
|
+
/// Metadata OBJECT_NAME override (default: "UNKNOWN").
|
|
284
|
+
/// object_id : str, optional
|
|
285
|
+
/// Metadata OBJECT_ID override (default: derived from TLE launch designator).
|
|
286
|
+
/// originator : str, optional
|
|
287
|
+
/// Header ORIGINATOR override (default: "UNKNOWN").
|
|
288
|
+
/// message_id : str, optional
|
|
289
|
+
/// Header MESSAGE_ID override.
|
|
290
|
+
/// creation_date : str, optional
|
|
291
|
+
/// Header CREATION_DATE override in CCSDS epoch format.
|
|
292
|
+
#[staticmethod]
|
|
293
|
+
#[pyo3(signature = (
|
|
294
|
+
line1,
|
|
295
|
+
line2,
|
|
296
|
+
object_name=None,
|
|
297
|
+
object_id=None,
|
|
298
|
+
originator=None,
|
|
299
|
+
message_id=None,
|
|
300
|
+
creation_date=None
|
|
301
|
+
))]
|
|
302
|
+
fn from_tle_lines(
|
|
303
|
+
line1: &str,
|
|
304
|
+
line2: &str,
|
|
305
|
+
object_name: Option<String>,
|
|
306
|
+
object_id: Option<String>,
|
|
307
|
+
originator: Option<String>,
|
|
308
|
+
message_id: Option<String>,
|
|
309
|
+
creation_date: Option<String>,
|
|
310
|
+
) -> PyResult<Self> {
|
|
311
|
+
let options = core_omm::TleToOmmOptions {
|
|
312
|
+
object_name,
|
|
313
|
+
object_id,
|
|
314
|
+
originator,
|
|
315
|
+
message_id,
|
|
316
|
+
creation_date: creation_date.map(|s| parse_epoch(&s)).transpose()?,
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
let inner = core_omm::Omm::from_tle_lines_with_options(line1, line2, &options)
|
|
320
|
+
.map_err(|e| PyValueError::new_err(e.to_string()))?;
|
|
321
|
+
Ok(Self { inner })
|
|
322
|
+
}
|
|
262
323
|
}
|
|
263
324
|
|
|
264
325
|
/// Create a new OMM Segment.
|
|
@@ -89,7 +89,6 @@ impl Rdm {
|
|
|
89
89
|
/// If False, returns a list of validation error messages (or None if valid).
|
|
90
90
|
#[pyo3(signature = (strict=true))]
|
|
91
91
|
fn validate(&self, strict: bool) -> PyResult<Option<Vec<String>>> {
|
|
92
|
-
|
|
93
92
|
if strict {
|
|
94
93
|
self.inner
|
|
95
94
|
.validate()
|
|
@@ -1249,6 +1248,7 @@ impl RdmData {
|
|
|
1249
1248
|
user_defined_parameters=None,
|
|
1250
1249
|
comment=None
|
|
1251
1250
|
))]
|
|
1251
|
+
#[allow(clippy::too_many_arguments)]
|
|
1252
1252
|
fn new(
|
|
1253
1253
|
atmospheric_reentry_parameters: AtmosphericReentryParameters,
|
|
1254
1254
|
ground_impact_parameters: Option<GroundImpactParameters>,
|