Updated of SGP4.cpp exceptions
parent
0294aa43d7
commit
daf729f8f4
|
@ -282,9 +282,25 @@ Eci SGP4::FindPositionSDP4(const Julian& dt, double tsince) const
|
||||||
xl = xmam + omgadf + xnode;
|
xl = xmam + omgadf + xnode;
|
||||||
omega = omgadf;
|
omega = omgadf;
|
||||||
|
|
||||||
if (e < 0.0 || e > 1.0)
|
if (a < 1.0)
|
||||||
{
|
{
|
||||||
throw SatelliteException("Error: #3 (e < 0.0 || e > 1.0)");
|
throw SatelliteException("Error: (a < 1.0)");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fix tolerance for error recognition
|
||||||
|
*/
|
||||||
|
if (e <= -0.001)
|
||||||
|
{
|
||||||
|
throw SatelliteException("Error: (e <= -0.001)");
|
||||||
|
}
|
||||||
|
else if (e < 1.0e-6)
|
||||||
|
{
|
||||||
|
e = 1.0e-6;
|
||||||
|
}
|
||||||
|
else if (e > (1.0 - 1.0e-6))
|
||||||
|
{
|
||||||
|
e = 1.0 - 1.0e-6;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -372,20 +388,26 @@ Eci SGP4::FindPositionSGP4(const Julian& dt, double tsince) const
|
||||||
e = elements_.Eccentricity() - tempe;
|
e = elements_.Eccentricity() - tempe;
|
||||||
xl = xmp + omega + xnode + elements_.RecoveredMeanMotion() * templ;
|
xl = xmp + omega + xnode + elements_.RecoveredMeanMotion() * templ;
|
||||||
|
|
||||||
|
if (a < 1.0)
|
||||||
|
{
|
||||||
|
throw SatelliteException("Error: (a < 1.0)");
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* fix tolerance for error recognition
|
* fix tolerance for error recognition
|
||||||
*/
|
*/
|
||||||
if (e >= 1.0 || e < -0.001)
|
if (e <= -0.001)
|
||||||
{
|
{
|
||||||
throw SatelliteException("Error: #1 (e >= 1.0 || e < -0.001)");
|
throw SatelliteException("Error: (e <= -0.001)");
|
||||||
}
|
}
|
||||||
/*
|
else if (e < 1.0e-6)
|
||||||
* fix tolerance to avoid a divide by zero
|
|
||||||
*/
|
|
||||||
if (e < 1.0e-6)
|
|
||||||
{
|
{
|
||||||
e = 1.0e-6;
|
e = 1.0e-6;
|
||||||
}
|
}
|
||||||
|
else if (e > (1.0 - 1.0e-6))
|
||||||
|
{
|
||||||
|
e = 1.0 - 1.0e-6;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* using calculated values, find position and velocity
|
* using calculated values, find position and velocity
|
||||||
|
@ -418,6 +440,11 @@ Eci SGP4::CalculateFinalPositionVelocity(const Julian& dt, const double& e,
|
||||||
const double ayn = e * sin(omega) + aynl;
|
const double ayn = e * sin(omega) + aynl;
|
||||||
const double elsq = axn * axn + ayn * ayn;
|
const double elsq = axn * axn + ayn * ayn;
|
||||||
|
|
||||||
|
if (elsq >= 1.0)
|
||||||
|
{
|
||||||
|
throw SatelliteException("Error: (elsq >= 1.0)");
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* solve keplers equation
|
* solve keplers equation
|
||||||
* - solve using Newton-Raphson root solving
|
* - solve using Newton-Raphson root solving
|
||||||
|
@ -496,7 +523,8 @@ Eci SGP4::CalculateFinalPositionVelocity(const Julian& dt, const double& e,
|
||||||
|
|
||||||
if (pl < 0.0)
|
if (pl < 0.0)
|
||||||
{
|
{
|
||||||
throw SatelliteException("Error: #4 (pl < 0.0)");
|
//TODO:
|
||||||
|
throw SatelliteException("Error: (pl < 0.0)");
|
||||||
}
|
}
|
||||||
|
|
||||||
const double r = a * (1.0 - ecose);
|
const double r = a * (1.0 - ecose);
|
||||||
|
@ -528,7 +556,7 @@ Eci SGP4::CalculateFinalPositionVelocity(const Julian& dt, const double& e,
|
||||||
|
|
||||||
if (rk < 1.0)
|
if (rk < 1.0)
|
||||||
{
|
{
|
||||||
throw SatelliteException("Error: #6 Satellite decayed (rk < 1.0)");
|
throw SatelliteException("Error: Satellite decayed (rk < 1.0)");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue