pylupnt.GnssAttitude¶
- class pylupnt.GnssAttitude¶
- static compute(*args, **kwargs)¶
Overloaded function.
compute(r_sat_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”], r_sun_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”]) -> tuple[typing.Annotated[numpy.typing.NDArray[Real], “[3, 1]”], typing.Annotated[numpy.typing.NDArray[Real], “[3, 1]”], typing.Annotated[numpy.typing.NDArray[Real], “[3, 1]”]]
Compute the orthonormal GNSS attitude triad (ex, ey, ez) directly from the Sun direction; returns (ex, ey, ez)
compute(r_sat_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”], v_sat_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”], r_sun_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”]) -> tuple[typing.Annotated[numpy.typing.NDArray[Real], “[3, 1]”], typing.Annotated[numpy.typing.NDArray[Real], “[3, 1]”], typing.Annotated[numpy.typing.NDArray[Real], “[3, 1]”]]
Compute the orthonormal GNSS attitude triad (ex, ey, ez) via the documented nominal yaw-steering law (GnssYawSteering.nominal_yaw_angle); numerically identical to compute(r_sat_eci, r_sun_eci) but routes explicitly through the implemented yaw-steering law. Returns (ex, ey, ez)
- static compute_from_yaw_angle(r_sat_eci: Annotated[numpy.typing.ArrayLike, Real, '[3, 1]'], v_sat_eci: Annotated[numpy.typing.ArrayLike, Real, '[3, 1]'], yaw_angle: Real) tuple[Annotated[numpy.typing.NDArray[Real], '[3, 1]'], Annotated[numpy.typing.NDArray[Real], '[3, 1]'], Annotated[numpy.typing.NDArray[Real], '[3, 1]']]¶
Build the attitude triad (ex, ey, ez) from an explicit yaw angle phi [rad] (e.g. from any GnssYawSteering nominal or modeled/maneuver yaw law) and orbital geometry alone, by rotating the orbital reference frame (ex_ref = normalize(v_sat), ey_ref = cross(ez, ex_ref)) about the nadir axis ez by phi. Returns (ex, ey, ez)
- get_angles(self: pylupnt._pylupnt.GnssAttitude, u: Annotated[numpy.typing.ArrayLike, Real, '[3, 1]']) tuple[Real, Real]¶
Off-boresight angles (theta, phi) of unit direction u; returns (theta, phi)
- get_ex(self: pylupnt._pylupnt.GnssAttitude) Annotated[numpy.typing.NDArray[Real], '[3, 1]']¶
- get_ey(self: pylupnt._pylupnt.GnssAttitude) Annotated[numpy.typing.NDArray[Real], '[3, 1]']¶
- get_ez(self: pylupnt._pylupnt.GnssAttitude) Annotated[numpy.typing.NDArray[Real], '[3, 1]']¶
- get_rotation_matrix(self: pylupnt._pylupnt.GnssAttitude) Annotated[numpy.typing.NDArray[Real], '[3, 3]']¶
Body-to-inertial rotation matrix [ex, ey, ez] (columns)
- update(*args, **kwargs)¶
Overloaded function.
update(self: pylupnt._pylupnt.GnssAttitude, r_sat_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”], r_sun_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”]) -> None
(Re-)compute and cache the attitude triad for this instance, directly from the Sun direction
update(self: pylupnt._pylupnt.GnssAttitude, r_sat_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”], v_sat_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”], r_sun_eci: typing.Annotated[numpy.typing.ArrayLike, Real, “[3, 1]”]) -> None
(Re-)compute and cache the attitude triad for this instance via the documented nominal yaw-steering law; see compute(r_sat_eci, v_sat_eci, r_sun_eci)