Skip to content

dynamics_data

cosmica.dtos.dynamics_data

__all__ module-attribute

__all__ = ['DynamicsData']

DynamicsData dataclass

DynamicsData(
    *,
    time: NDArray[datetime64],
    dcm_eci2ecef: NDArray[floating],
    satellite_position_eci: dict[T, NDArray[floating]],
    satellite_velocity_eci: dict[T, NDArray[floating]],
    satellite_position_ecef: dict[T, NDArray[floating]],
    satellite_attitude_angular_velocity_eci: dict[
        T, NDArray[floating]
    ],
    sun_direction_eci: NDArray[floating],
    sun_direction_ecef: NDArray[floating]
)

data_shape property

data_shape: tuple[int, ...]

dcm_eci2ecef instance-attribute

dcm_eci2ecef: NDArray[floating]

satellite_attitude_angular_velocity_eci instance-attribute

satellite_attitude_angular_velocity_eci: dict[
    T, NDArray[floating]
]

satellite_position_ecef instance-attribute

satellite_position_ecef: dict[T, NDArray[floating]]

satellite_position_eci instance-attribute

satellite_position_eci: dict[T, NDArray[floating]]

satellite_velocity_eci instance-attribute

satellite_velocity_eci: dict[T, NDArray[floating]]

sun_direction_ecef instance-attribute

sun_direction_ecef: NDArray[floating]

sun_direction_eci instance-attribute

sun_direction_eci: NDArray[floating]

time instance-attribute

time: NDArray[datetime64]

__getitem__

__getitem__(item: int | slice) -> DynamicsData[T]
Source code in src/cosmica/dtos/dynamics_data.py
54
55
56
57
58
59
60
61
62
63
64
65
66
def __getitem__(self, item: int | slice) -> DynamicsData[T]:
    return DynamicsData(
        time=self.time[item],
        dcm_eci2ecef=self.dcm_eci2ecef[item],
        satellite_position_eci={key: value[item] for key, value in self.satellite_position_eci.items()},
        satellite_velocity_eci={key: value[item] for key, value in self.satellite_velocity_eci.items()},
        satellite_position_ecef={key: value[item] for key, value in self.satellite_position_ecef.items()},
        satellite_attitude_angular_velocity_eci={
            key: value[item] for key, value in self.satellite_attitude_angular_velocity_eci.items()
        },
        sun_direction_eci=self.sun_direction_eci[item],
        sun_direction_ecef=self.sun_direction_ecef[item],
    )

__post_init__

__post_init__() -> None
Source code in src/cosmica/dtos/dynamics_data.py
44
45
46
47
48
49
50
51
52
def __post_init__(self) -> None:
    data_shape = self.time.shape
    assert self.dcm_eci2ecef.shape[:-2] == data_shape
    assert _check_item_shape_if_any(self.satellite_position_eci, data_shape, slice(-1))
    assert _check_item_shape_if_any(self.satellite_velocity_eci, data_shape, slice(-1))
    assert _check_item_shape_if_any(self.satellite_position_ecef, data_shape, slice(-1))
    assert _check_item_shape_if_any(self.satellite_attitude_angular_velocity_eci, data_shape, slice(-1))
    assert self.sun_direction_eci.shape[:-1] == data_shape
    assert self.sun_direction_ecef.shape[:-1] == data_shape