[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Users] BodyShape.projectToGround




Evan Ward <evan.ward@nrl.navy.mil> a écrit :

Hi,

Hi Evan,


I've been incorporating Orekit 7.0 into my projects and I've noticed the
new projectToGround(...) methods in BodyShape. I'm a little confused
about what exactly is computed.

How is

Vector3D onBody = body.projectToGround(p, date, frame);

different from

GeodeticPoint gp = body.transform(p, frame, date);
GeodeticPoint gpOnBody = new GeodeticPoint(gp.getLatitude(),
gp.getLongitude(), 0);
Vector3D onBody = body.transform(gpOnBody);

Mainly it avoids doing two conversions from geodetic to Cartesian
and the reverse, hence increasing accuracy. It doesn't avoid the
underlying iteration, though, as both method rely on a 2D ellipse resolution.


Also, for the projectToGround method with PVCoordinates, are the
velocity and acceleration projected on to the local tangent plane? Is
the magnitude scaled down based on the satellite's distance from Earth?

Yes. This is the whole point. It does the propre scaling taking into account
the fact that the ellipsoid has two different radius of curvatures in
two orthogonal directions and it does use them. One strange consequence of
the different radii is that projecting the velocity in fact very slightly
rotates it, it is not a simple scaling.

If you look at OneAxisEllipsoidTest.testGroundProjectionDerivatives(),
you will see that the derivatives are accurately computed by this method.

best regards,
Luc


Thanks in advance,

Evan