SheferTwoPosOrbitSolver

class ssapy.orbit_solver.SheferTwoPosOrbitSolver(*args, **kwargs)[source][source]

Bases: TwoPosOrbitSolver

A class for solving two-position orbit determination problems using Shefer’s method. This class extends the TwoPosOrbitSolver base class and implements a robust algorithm for determining the orbital parameter p (semi-latus rectum) and auxiliary values based on Shefer’s equations.

robust[source]

If True, enables a robust solution method that examines all possible solutions when the initial guess fails.

Type:

bool

nExam[source]

Number of points to examine when searching for zeros of the function F(x) during the robust solution process.

Type:

int

eps[source]

Convergence tolerance for iterative calculations.

Type:

float

maxiter[source]

Maximum number of iterations allowed for convergence.

Type:

int

m[source]

A parameter related to the orbit determination problem.

Type:

float

ell[source]

A parameter related to the orbit determination problem.

Type:

float

kappa[source]

A constant used in orbital calculations.

Type:

float

sigma[source]

A constant used in orbital calculations.

Type:

float

tau[source]

A constant used in orbital calculations.

Type:

float

mu[source]

Standard gravitational parameter.

Type:

float

lam[source]

A parameter related to Shefer’s equations.

Type:

float

rbar[source]

A normalized radial distance used in Shefer’s calculations.

Type:

float

alpha(x)[source][source]

Compute the alpha(x) function and its derivative based on Shefer’s equation (18).

beta(xi)[source][source]

Compute the beta(xi) function and its derivative based on Shefer’s equations (A.4) and (A.9).

Y(x)[source][source]

Compute the Y(x) function and its derivative based on Shefer’s equation (17).

Yxi(xi)[source][source]

Compute the Y(xi) function using Shefer’s equation (A.15).

X(x)[source][source]

Compute the X(x) function and its derivative for elliptical orbits (Shefer 19) and hyperbolic orbits (Shefer 20). Handles special cases for small values of x.

Z(xi)[source][source]

Compute the Z(xi) function and its derivative based on Shefer’s equation (A.5).

D(x)[source][source]

Compute the D(x) function and its derivative based on Shefer’s equation (43).

semiMajorAxis(x)[source][source]

Compute the semi-major axis a(x) and its derivative based on Shefer’s equation (42).

Flam0(x)[source][source]

Compute Flam0(x) and its derivative based on Shefer’s equations (21) and (22).

F(x)[source][source]

Compute F(x) and its derivative based on Shefer’s equations (40) and (41).

G(xi)[source][source]

Compute G(xi) and its derivative based on Shefer’s equations (A.7) and (A.8).

yPoly(y)[source][source]

Compute the polynomial for y and its derivative based on Shefer’s equations (44) and (38).

_getInitialXGuess()[source][source]

Compute the initial guess for x using Shefer’s step B. Handles both cases where lam is zero and non-zero.

_getInitialXiGuess()[source][source]

Compute the initial guess for xi using Shefer’s equation (A.16).

_getP()[source][source]

Compute the semi-latus rectum (p) using Shefer’s algorithm. This is the main result of the orbit determination process.

_getAllP()[source][source]

Compute all possible values of p by finding zeros of the function F(x) within a given range.

_getEta(p)[source][source]

Compute the auxiliary value eta defined in Shefer’s equation (2).

solve()[source][source]

Solve the orbit determination problem. First attempts to find a solution using Shefer’s initial guess. If the solution fails, employs a robust method to examine all possible zeros of F(x) and determine a valid orbit.

Methods Summary

D(x)

Compute D(x) and its derivative, dD(x)/dx, from Shefer (43).

F(x)

Compute F(x) and dF(x)/dx from Shefer (40) and (41).

Flam0(x)

G(xi)

Compute G(xi) and its derivative from Shefer (A.7) and (A.8).

X(x)

Evaluate X(x) function from Shefer (19) for elliptical orbits and (20) for hyperbolic orbits.

Y(x)

Evaluate Y(x) and dY(x)/dx from Shefer (17).

Yxi(xi)

Z(xi)

Compute Z(xi) function from Shefer (A.5).

alpha(x)

Evaluate alpha(x) from Shefer (18).

beta(xi)

Evaluate beta(xi) and its derivative from Shefer (A.4) and (A.9).

semiMajorAxis(x)

Compute semi-major axis a(x) and its derivative, da(x)/dx, from Shefer (42).

solve()

yPoly(y)

Methods Documentation

D(x)[source][source]

Compute D(x) and its derivative, dD(x)/dx, from Shefer (43).

F(x)[source][source]

Compute F(x) and dF(x)/dx from Shefer (40) and (41).

Flam0(x)[source][source]
G(xi)[source][source]

Compute G(xi) and its derivative from Shefer (A.7) and (A.8).

static X(x)[source][source]

Evaluate X(x) function from Shefer (19) for elliptical orbits and (20) for hyperbolic orbits. The derivative of X(x) is given in (23).

Y(x)[source][source]

Evaluate Y(x) and dY(x)/dx from Shefer (17).

Yxi(xi)[source][source]
static Z(xi)[source][source]

Compute Z(xi) function from Shefer (A.5).

alpha(x)[source][source]

Evaluate alpha(x) from Shefer (18).

beta(xi)[source][source]

Evaluate beta(xi) and its derivative from Shefer (A.4) and (A.9).

semiMajorAxis(x)[source][source]

Compute semi-major axis a(x) and its derivative, da(x)/dx, from Shefer (42).

solve()[source][source]
yPoly(y)[source][source]