"""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 enum import Enum
from ccsds_ndm.models.ndmxml1.ndmxml_1_0_navwg_common import (
AngleType,
DistanceType,
GmType,
InclinationType,
NdmHeader,
OpmCovarianceMatrixType,
SpacecraftParametersType,
UserDefinedType,
)
__NAMESPACE__ = "urn:ccsds:recommendation:navigation:schema:ndmxml"
[docs]
class BStarUnits(Enum):
VALUE_1_ER = "1/ER"
[docs]
class DRevUnits(Enum):
REV_DAY_2 = "rev/day**2"
REV_DAY_2_1 = "REV/DAY**2"
[docs]
class DdRevUnits(Enum):
REV_DAY_3 = "rev/day**3"
REV_DAY_3_1 = "REV/DAY**3"
[docs]
class RevUnits(Enum):
REV_DAY = "rev/day"
REV_DAY_1 = "REV/DAY"
[docs]
@dataclass(kw_only=True)
class BStarType:
class Meta:
name = "bStarType"
value: float = field(
metadata={
"required": True,
}
)
units: None | BStarUnits = field(
default=None,
metadata={
"type": "Attribute",
},
)
[docs]
@dataclass(kw_only=True)
class DRevType:
class Meta:
name = "dRevType"
value: float = field(
metadata={
"required": True,
}
)
units: None | DRevUnits = field(
default=None,
metadata={
"type": "Attribute",
},
)
[docs]
@dataclass(kw_only=True)
class DdRevType:
class Meta:
name = "ddRevType"
value: float = field(
metadata={
"required": True,
}
)
units: None | DdRevUnits = field(
default=None,
metadata={
"type": "Attribute",
},
)
[docs]
@dataclass(kw_only=True)
class RevType:
class Meta:
name = "revType"
value: float = field(
metadata={
"required": True,
}
)
units: None | RevUnits = field(
default=None,
metadata={
"type": "Attribute",
},
)
[docs]
@dataclass(kw_only=True)
class MeanElementsType:
class Meta:
name = "meanElementsType"
comment: list[str] = field(
default_factory=list,
metadata={
"name": "COMMENT",
"type": "Element",
"namespace": "",
},
)
epoch: str = field(
metadata={
"name": "EPOCH",
"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*)?",
}
)
semi_major_axis: None | DistanceType = field(
default=None,
metadata={
"name": "SEMI_MAJOR_AXIS",
"type": "Element",
"namespace": "",
},
)
mean_motion: None | RevType = field(
default=None,
metadata={
"name": "MEAN_MOTION",
"type": "Element",
"namespace": "",
},
)
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,
}
)
mean_anomaly: AngleType = field(
metadata={
"name": "MEAN_ANOMALY",
"type": "Element",
"namespace": "",
"required": True,
}
)
gm: None | GmType = field(
default=None,
metadata={
"name": "GM",
"type": "Element",
"namespace": "",
},
)
[docs]
@dataclass(kw_only=True)
class TleParametersType:
class Meta:
name = "tleParametersType"
comment: list[str] = field(
default_factory=list,
metadata={
"name": "COMMENT",
"type": "Element",
"namespace": "",
},
)
ephemeris_type: None | int = field(
default=None,
metadata={
"name": "EPHEMERIS_TYPE",
"type": "Element",
"namespace": "",
},
)
classification_type: None | str = field(
default=None,
metadata={
"name": "CLASSIFICATION_TYPE",
"type": "Element",
"namespace": "",
},
)
norad_cat_id: int = field(
metadata={
"name": "NORAD_CAT_ID",
"type": "Element",
"namespace": "",
"required": True,
}
)
element_set_no: int = field(
metadata={
"name": "ELEMENT_SET_NO",
"type": "Element",
"namespace": "",
"required": True,
"min_inclusive": 0,
"max_inclusive": 9999,
}
)
rev_at_epoch: int = field(
metadata={
"name": "REV_AT_EPOCH",
"type": "Element",
"namespace": "",
"required": True,
}
)
bstar: BStarType = field(
metadata={
"name": "BSTAR",
"type": "Element",
"namespace": "",
"required": True,
}
)
mean_motion_dot: DRevType = field(
metadata={
"name": "MEAN_MOTION_DOT",
"type": "Element",
"namespace": "",
"required": True,
}
)
mean_motion_ddot: DdRevType = field(
metadata={
"name": "MEAN_MOTION_DDOT",
"type": "Element",
"namespace": "",
"required": True,
}
)
[docs]
@dataclass(kw_only=True)
class OmmData:
class Meta:
name = "ommData"
comment: list[str] = field(
default_factory=list,
metadata={
"name": "COMMENT",
"type": "Element",
"namespace": "",
},
)
mean_elements: MeanElementsType = field(
metadata={
"name": "meanElements",
"type": "Element",
"namespace": "",
"required": True,
}
)
spacecraft_parameters: None | SpacecraftParametersType = field(
default=None,
metadata={
"name": "spacecraftParameters",
"type": "Element",
"namespace": "",
},
)
tle_parameters: None | TleParametersType = field(
default=None,
metadata={
"name": "tleParameters",
"type": "Element",
"namespace": "",
},
)
covariance_matrix: None | OpmCovarianceMatrixType = field(
default=None,
metadata={
"name": "covarianceMatrix",
"type": "Element",
"namespace": "",
},
)
user_defined_parameters: None | UserDefinedType = field(
default=None,
metadata={
"name": "userDefinedParameters",
"type": "Element",
"namespace": "",
},
)
[docs]
@dataclass(kw_only=True)
class OmmSegment:
class Meta:
name = "ommSegment"
metadata: OmmMetadata = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
data: OmmData = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
[docs]
@dataclass(kw_only=True)
class OmmBody:
class Meta:
name = "ommBody"
segment: OmmSegment = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
[docs]
@dataclass(kw_only=True)
class OmmType:
class Meta:
name = "ommType"
header: NdmHeader = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
body: OmmBody = field(
metadata={
"type": "Element",
"namespace": "",
"required": True,
}
)
id: str = field(
init=False,
default="CCSDS_OMM_VERS",
metadata={
"type": "Attribute",
"required": True,
},
)
version: str = field(
init=False,
default="2.0",
metadata={
"type": "Attribute",
"required": True,
},
)