Skip to content

Commit 10efc47

Browse files
authored
feat: argument of latitude computation (#534)
* feat: argument of latitude computation * feat: address remaining feedback
1 parent d91c39d commit 10efc47

File tree

5 files changed

+38
-0
lines changed
  • bindings/python
    • src/OpenSpaceToolkitAstrodynamicsPy/Trajectory/Orbit/Model/Kepler
    • test/trajectory/orbit/models/kepler
  • include/OpenSpaceToolkit/Astrodynamics/Trajectory/Orbit/Model/Kepler
  • src/OpenSpaceToolkit/Astrodynamics/Trajectory/Orbit/Model/Kepler
  • test/OpenSpaceToolkit/Astrodynamics/Trajectory/Orbit/Model/Kepler

5 files changed

+38
-0
lines changed

bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Trajectory/Orbit/Model/Kepler/COE.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,5 +714,16 @@ inline void OpenSpaceToolkitAstrodynamicsPy_Trajectory_Orbit_Model_Kepler_COE(py
714714
arg("element")
715715
)
716716

717+
.def(
718+
"get_argument_of_latitude",
719+
&COE::getArgumentOfLatitude,
720+
R"doc(
721+
Get the argument of latitude of the COE.
722+
723+
Returns:
724+
Angle: The argument of latitude (sum of argument of periapsis and true anomaly).
725+
)doc"
726+
)
727+
717728
;
718729
}

bindings/python/test/trajectory/orbit/models/kepler/test_coe.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def test_getters(
118118
assert coe.get_raan() == raan
119119
assert coe.get_aop() == aop
120120
assert coe.get_true_anomaly() == true_anomaly
121+
assert coe.get_argument_of_latitude() == aop + true_anomaly
121122
assert coe.get_mean_anomaly() is not None
122123
assert coe.get_eccentric_anomaly() is not None
123124
assert coe.get_mean_motion(Earth.EGM2008.gravitational_parameter) is not None

include/OpenSpaceToolkit/Astrodynamics/Trajectory/Orbit/Model/Kepler/COE.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ class COE
147147
/// @return Argument of periapsis
148148
Angle getAop() const;
149149

150+
/// @brief Get Argument of latitude
151+
///
152+
/// @return Argument of latitude
153+
Angle getArgumentOfLatitude() const;
154+
150155
/// @brief Get True anomaly
151156
///
152157
/// @return True anomaly

src/OpenSpaceToolkit/Astrodynamics/Trajectory/Orbit/Model/Kepler/COE.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,16 @@ Angle COE::getTrueAnomaly() const
167167
return anomaly_;
168168
}
169169

170+
Angle COE::getArgumentOfLatitude() const
171+
{
172+
if (!this->isDefined())
173+
{
174+
throw ostk::core::error::runtime::Undefined("COE");
175+
}
176+
177+
return aop_ + anomaly_;
178+
}
179+
170180
Angle COE::getMeanAnomaly() const
171181
{
172182
if (!this->isDefined())

test/OpenSpaceToolkit/Astrodynamics/Trajectory/Orbit/Model/Kepler/COE.test.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,17 @@ TEST_F(OpenSpaceToolkit_Astrodynamics_Trajectory_Orbit_Model_Kepler_COE, Compute
418418

419419
// }
420420

421+
TEST_F(OpenSpaceToolkit_Astrodynamics_Trajectory_Orbit_Model_Kepler_COE, GetArgumentOfLatitude)
422+
{
423+
{
424+
EXPECT_EQ(defaultAop_ + defaultTrueAnomaly_, coe_.getArgumentOfLatitude());
425+
}
426+
427+
{
428+
EXPECT_ANY_THROW(COE::Undefined().getArgumentOfLatitude());
429+
}
430+
}
431+
421432
TEST_F(OpenSpaceToolkit_Astrodynamics_Trajectory_Orbit_Model_Kepler_COE, GetNodalPrecessionRate)
422433
{
423434
{

0 commit comments

Comments
 (0)