"""This file was generated by xsdata, v26.1, on 2026-02-18 00:40:52
Generator: DataclassGenerator
See: https://xsdata.readthedocs.io/
"""
from __future__ import annotations
from dataclasses import dataclass, field
from ccsds_ndm.models.ndmxml1.ndmxml_1_0_navwg_common import (
AngleType,
DeltamassType,
DistanceType,
DurationType,
GmType,
InclinationType,
NdmHeader,
OpmCovarianceMatrixType,
SpacecraftParametersType,
StateVectorType,
UserDefinedType,
VelocityType,
)
__NAMESPACE__ = "urn:ccsds:recommendation:navigation:schema:ndmxml"
[docs]
@dataclass(kw_only=True)
class KeplerianElementsType:
class Meta:
name = "keplerianElementsType"
comment: list[str] = field(
default_factory=list,
metadata={
"name": "COMMENT",
"type": "Element",
"namespace": "",
},
)
semi_major_axis: DistanceType = field(
metadata={
"name": "SEMI_MAJOR_AXIS",
"type": "Element",
"namespace": "",
"required": True,
}
)
eccentricity: float = field(
metadata={
"name": "ECCENTRICITY",
"type": "Element",
"namespace": "",
"required": True,
"min_inclusive": 0.0,
}
)
inclination: InclinationType = field(
metadata={
"name": "INCLINATION",
"type": "Element",
"namespace": "",
"required": True,
}
)
ra_of_asc_node: AngleType = field(
metadata={
"name": "RA_OF_ASC_NODE",
"type": "Element",
"namespace": "",
"required": True,
}
)
arg_of_pericenter: AngleType = field(
metadata={
"name": "ARG_OF_PERICENTER",
"type": "Element",
"namespace": "",
"required": True,
}
)
true_anomaly: None | AngleType = field(
default=None,
metadata={
"name": "TRUE_ANOMALY",
"type": "Element",
"namespace": "",
},
)
mean_anomaly: None | AngleType = field(
default=None,
metadata={
"name": "MEAN_ANOMALY",
"type": "Element",
"namespace": "",
},
)
gm: GmType = field(
metadata={
"name": "GM",
"type": "Element",
"namespace": "",
"required": True,
}
)
[docs]
@dataclass(kw_only=True)
class ManeuverParametersType:
class Meta:
name = "maneuverParametersType"
comment: list[str] = field(
default_factory=list,
metadata={
"name": "COMMENT",
"type": "Element",
"namespace": "",
},
)
man_epoch_ignition: str = field(
metadata={
"name": "MAN_EPOCH_IGNITION",
"type": "Element",
"namespace": "",
"required": True,
"pattern": r"\-?\d{4}\d*-((\d{2}\-\d{2})|\d{3})T\d{2}:\d{2}:\d{2}(\.\d*)?(Z|[+|\-]\d{2}:\d{2})?|[+|\-]?\d*(\.\d*)?",
}
)
man_duration: DurationType = field(
metadata={
"name": "MAN_DURATION",
"type": "Element",
"namespace": "",
"required": True,
}
)
man_delta_mass: DeltamassType = field(
metadata={
"name": "MAN_DELTA_MASS",
"type": "Element",
"namespace": "",
"required": True,
}
)
man_ref_frame: str = field(
metadata={
"name": "MAN_REF_FRAME",
"type": "Element",
"namespace": "",
"required": True,
}
)
man_dv_1: VelocityType = field(
metadata={
"name": "MAN_DV_1",
"type": "Element",
"namespace": "",
"required": True,
}
)
man_dv_2: VelocityType = field(
metadata={
"name": "MAN_DV_2",
"type": "Element",
"namespace": "",
"required": True,
}
)
man_dv_3: VelocityType = field(
metadata={
"name": "MAN_DV_3",
"type": "Element",
"namespace": "",
"required": True,
}
)
[docs]
@dataclass(kw_only=True)
class OpmData:
class Meta:
name = "opmData"
comment: list[str] = field(
default_factory=list,
metadata={
"name": "COMMENT",
"type": "Element",
"namespace": "",
},
)
state_vector: StateVectorType = field(
metadata={
"name": "stateVector",
"type": "Element",
"namespace": "",
"required": True,
}
)
keplerian_elements: None | KeplerianElementsType = field(
default=None,
metadata={
"name": "keplerianElements",
"type": "Element",
"namespace": "",
},
)
spacecraft_parameters: None | SpacecraftParametersType = field(
default=None,
metadata={
"name": "spacecraftParameters",
"type": "Element",
"namespace": "",
},
)
covariance_matrix: None | OpmCovarianceMatrixType = field(
default=None,
metadata={
"name": "covarianceMatrix",
"type": "Element",
"namespace": "",
},
)
maneuver_parameters: list[ManeuverParametersType] = field(
default_factory=list,
metadata={
"name": "maneuverParameters",
"type": "Element",
"namespace": "",
},
)
user_defined_parameters: None | UserDefinedType = field(
default=None,
metadata={
"name": "userDefinedParameters",
"type": "Element",
"namespace": "",
},
)
[docs]
@dataclass(kw_only=True)
class OpmSegment:
class Meta:
name = "opmSegment"
metadata: OpmMetadata = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
data: OpmData = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
[docs]
@dataclass(kw_only=True)
class OpmBody:
class Meta:
name = "opmBody"
segment: OpmSegment = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
[docs]
@dataclass(kw_only=True)
class OpmType:
class Meta:
name = "opmType"
header: NdmHeader = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
body: OpmBody = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
id: str = field(
init=False,
default="CCSDS_OPM_VERS",
metadata={
"type": "Attribute",
"required": True,
},
)
version: str = field(
init=False,
default="2.0",
metadata={
"type": "Attribute",
"required": True,
},
)