Class IodLambert
 java.lang.Object

 org.orekit.estimation.iod.IodLambert

public class IodLambert extends Object
Lambert positionbased Initial Orbit Determination (IOD) algorithm, assuming Keplerian motion.An orbit is determined from two position vectors. References: Battin, R.H., An Introduction to the Mathematics and Methods of Astrodynamics, AIAA Education, 1999. Lancaster, E.R. and Blanchard, R.C., A Unified Form of Lambert’s Theorem, Goddard Space Flight Center, 1968.
 Since:
 8.0
 Author:
 Joris Olympio


Constructor Summary
Constructors Constructor Description IodLambert(double mu)
Creator.

Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Orbit
estimate(Frame frame, boolean posigrade, int nRev, Vector3D p1, AbsoluteDate t1, Vector3D p2, AbsoluteDate t2)
Estimate a Keplerian orbit given two position vectors and a duration.Orbit
estimate(Frame frame, boolean posigrade, int nRev, Position p1, Position p2)
Estimate an initial orbit from two position measurements.Orbit
estimate(Frame frame, boolean posigrade, int nRev, PV pv1, PV pv2)
Estimate an initial orbit from two PV measurements.



Method Detail

estimate
public Orbit estimate(Frame frame, boolean posigrade, int nRev, Position p1, Position p2)
Estimate an initial orbit from two position measurements.The logic for setting
posigrade
andnRev
is that the sweep angle Δυ travelled by the object betweent1
andt2
is 2πnRev +1
 α ifposigrade
is false and 2πnRev
+ α ifposigrade
is true, where α is the separation angle betweenp1
andp2
, 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 ifp2
is located in the half orbit starting atp1
and it should be set to false ifp2
is located in the half orbit ending atp1
, regardless of the number of periods betweent1
andt2
, andnRev
should be set accordingly.As an example, if
t2
is less than half a period aftert1
, thenposigrade
should betrue
andnRev
should be 0. Ift2
is more than half a period aftert1
but less than one period aftert1
,posigrade
should befalse
andnRev
should be 0. Parameters:
frame
 measurements frameposigrade
 flag indicating the direction of motionnRev
 number of revolutionsp1
 first position measurementp2
 second position measurement Returns:
 an initial Keplerian orbit estimation at the first observation date t1
 Since:
 11.0

estimate
public Orbit estimate(Frame frame, boolean posigrade, int nRev, PV pv1, PV pv2)
Estimate an initial orbit from two PV measurements.The logic for setting
posigrade
andnRev
is that the sweep angle Δυ travelled by the object betweent1
andt2
is 2πnRev +1
 α ifposigrade
is false and 2πnRev
+ α ifposigrade
is true, where α is the separation angle betweenp1
andp2
, 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 ifp2
is located in the half orbit starting atp1
and it should be set to false ifp2
is located in the half orbit ending atp1
, regardless of the number of periods betweent1
andt2
, andnRev
should be set accordingly.As an example, if
t2
is less than half a period aftert1
, thenposigrade
should betrue
andnRev
should be 0. Ift2
is more than half a period aftert1
but less than one period aftert1
,posigrade
should befalse
andnRev
should be 0. Parameters:
frame
 measurements frameposigrade
 flag indicating the direction of motionnRev
 number of revolutionspv1
 first PV measurementpv2
 second PV measurement Returns:
 an initial Keplerian orbit estimation at the first observation date t1
 Since:
 12.0

estimate
public Orbit estimate(Frame frame, boolean posigrade, int nRev, Vector3D p1, AbsoluteDate t1, Vector3D p2, AbsoluteDate t2)
Estimate a Keplerian orbit given two position vectors and a duration.The logic for setting
posigrade
andnRev
is that the sweep angle Δυ travelled by the object betweent1
andt2
is 2πnRev +1
 α ifposigrade
is false and 2πnRev
+ α ifposigrade
is true, where α is the separation angle betweenp1
andp2
, 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 ifp2
is located in the half orbit starting atp1
and it should be set to false ifp2
is located in the half orbit ending atp1
, regardless of the number of periods betweent1
andt2
, andnRev
should be set accordingly.As an example, if
t2
is less than half a period aftert1
, thenposigrade
should betrue
andnRev
should be 0. Ift2
is more than half a period aftert1
but less than one period aftert1
,posigrade
should befalse
andnRev
should be 0. Parameters:
frame
 frameposigrade
 flag indicating the direction of motionnRev
 number of revolutionsp1
 position vector 1t1
 date of observation 1p2
 position vector 2t2
 date of observation 2 Returns:
 an initial Keplerian orbit estimate at the first observation date t1

