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

Re: [Orekit Users] Howto: Moving LLA Point Transformation?



Le 21/08/2015 15:54, Luc Maisonobe a écrit :
> Le 21/08/2015 15:52, Evan Ward a écrit :
>>
>> On 08/21/2015 04:24 AM, Luc Maisonobe wrote:
>>> Hi James,
>>>
>>> Le 20/08/2015 22:11, schatzman-james@n-ask.com a écrit :
>>>> I can do something like
>>>>
>>>>             earthRefFrame = getItrfFrame();
>>>>             earth = new
>>>> OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS,
>>>>                     Constants.WGS84_EARTH_FLATTENING,
>>>>                     earthRefFrame);
>>>>             TopocentricFrame staF = new TopocentricFrame(earth, lla, "anon");
>>>>   PVCoordinates pv = staF.getTransformTo(frame,
>>>> dateTime).transformPVCoordinates(      PVCoordinates.ZERO);
>>>>
>>>>
>>>> to compute the position and velocity  in an arbitrary frame corresponding to a
>>>> GeodeticPoint lla.
>>>>
>>>> However, suppose the point is moving in the geodetic frame. There does not
>>>> seem to be an analogous class to TopocentricFrame that allows for motion in
>>>> the local coordinate system.
>>>>
>>>> Short of some numerical approximation (e.g. finite differences), how can I
>>>> compute the velocity in a new coordinate system of a point moving in LLA?
>>> You are right, there were no derivatives associated with GeodeticPoint.
>>> I have therefore just added a new signature in the
>>> OneAxisEllipsoid.transform method to also provide two double arrays (one
>>> for godetic coordinates first derivatives, one for the second
>>> derivatives). See
>>> <https://www.orekit.org/forge/projects/orekit/repository/revisions/ef1bb1a875f943f478209008c6da94d91848684e>.
>>> For now, only the computation from geodetic point to Cartesian is available.
>>
>> I think using DerivativeSturctures in the method interface or creating a
>> FieldGeodeticPoint<DerivativeStructure> would be a cleaner interface.
>> What do you think?
> 
> You are right.
> I am trying this right now.

Thanks for the suggestion Evan, it was really straigthforward!
In fact, I was able to set up the transforms with the derivatives in
both directions.

James, can you try this version? Beware that the API has changed,
instead of providing the time derivatives as separate arrays, they are
embedded in each coordinates. You can look at the unit tests
testMovingGeodeticPointSymmetry and testMovingGeodeticPoint in the
OneAxisEllipsoidTest class to see how you can build the new
FieldGeodeticPoint<DerivativeStructure> instance.

best regards,
Luc

> 
> Luc
> 
>>
>> Best Regards,
>> Evan
>>
>>> Does this meet your needs?
>>>
>>> best regards,
>>> Luc
>>>
>>>> Thanks!
>>>>
>>
>