public class IodLambert extends Object
| Constructor | Description |
|---|---|
IodLambert(double mu) |
Creator.
|
| Modifier and Type | Method | Description |
|---|---|---|
KeplerianOrbit |
estimate(Frame frame,
boolean posigrade,
int nRev,
org.hipparchus.geometry.euclidean.threed.Vector3D p1,
AbsoluteDate t1,
org.hipparchus.geometry.euclidean.threed.Vector3D p2,
AbsoluteDate t2) |
Estimate a Keplerian orbit given two position vectors and a duration.
|
public IodLambert(double mu)
mu - gravitational constantpublic KeplerianOrbit estimate(Frame frame, boolean posigrade, int nRev, org.hipparchus.geometry.euclidean.threed.Vector3D p1, AbsoluteDate t1, org.hipparchus.geometry.euclidean.threed.Vector3D p2, AbsoluteDate t2)
The logic for setting posigrade and nRev is that the
sweep angle Δυ travelled by the object between t1 and t2 is
2π nRev - α if posigrade is false and 2π nRev + α
if posigrade is true, where α is the separation angle between
p1 and p2, which is always computed between 0 and π
(because in 3D without a normal reference, vector angles cannot go past π).
This implies that posigrade should be set to true if p2 is
located in the half orbit starting at p1 and it should be set to
false if p2 is located in the half orbit ending at p1,
regardless of the number of periods between t1 and t2,
and nRev should be set accordingly.
As an example, if t2 is less than half a period after t1,
then posigrade should be true and nRev should be 0.
If t2 is more than half a period after t1 but less than
one period after t1, posigrade should be false and
nRev should be 1.
frame - frameposigrade - flag indicating the direction of motionnRev - number of revolutionsp1 - position vector 1t1 - date of observation 1p2 - position vector 2t2 - date of observation 2Copyright © 2002-2019 CS Systèmes d'information. All rights reserved.