Calculate ground nadir line from PV coordinates

I'm using an API which returns a satellite's PVCoordinates (Position/Velocity pairs).

``````{P(1036869.5330731269, 6546536.584960848, 9.892293545390519E-11), V(-9994.355195123433, 1582.9503539842497, -1242.4491245907245)}
``````

Given an array of these PV coordinates, how can I calculate or derive latitude and longitude coordinates for the nadir line (ground sub-track)?

Does anyone know of a Java API which might help me or is the math easy enough that I can write a function myself? (Full Disclosure: I have a math disorder)

I've looked around the web and everything I see tends to make my eyes glaze over and humble me to the point of wishing my pathetic self should have taken more math in college.

• Doesn't the thread at gis.stackexchange.com/questions/34532/… answer this? Although it is in principle possible to use the velocity data to improve the plot of a track when the data are sparse, I can assure you the math will get harder :-). You need only a small part of my answer there: the (one-line) `CartesianToEllipsoid` function. – whuber Jan 10 '14 at 22:57
• Have a look at the Orekit Corridor Track example. Around line 275 the sub-satellite track is computed. – rickhg12hs Jan 11 '14 at 10:07
• @rickhg12hs Please copy/past your comment as an answer so I can give you credit. Thanks! – CaptDragon Jan 13 '14 at 15:30
• Glad to help! Good luck! – rickhg12hs Jan 13 '14 at 18:59