My goal is follow up the title of this question and obtain the Earth coordinates (latitude, longitude) from the keplerian coords (w, Ohm, i, a, e, M). My idea is to find a space object (asteroid or whatever) make a straight line from it that goes right into Earth. Then plot it on a map with latitude and longitude.

This is by very first attempt in this subject and every bit of information is more than welcome (although please don't make me read 100 pages, be specific, this is a "self learning programming summer project" where I learn data and science thanks in advance)

Sources of knowledge

For the Keplerian variables I got them from here

in this case I used Ceres's variables:

M = 77.44; //Mean
e = 0.0760; //Eccentricity
a = 2.7691; //Smj axis
i = 10.59; //inclination
w = 73.59; //perigee
Ohm = 80.80; //node

For the formulas I used these from an old NASA publication where I used these formulas:

Cartesian solution:

x = a*((cos(E)-e)*(cos(w)*cos(Ohm)-sin(w)*sin(Ohm)*cos(i))+(((1-e^2)^(1/2))*sin(E))*(-sin(w)cos(Ohm)-cos(w)*sin(Ohm)*cos(i)));

y = a*((cos(E)-e)*(cos(w)*sin(Ohm)+sin(w)*cos(Ohm)*cos(i))+(((1-e^2)^(1/2))*sin(E))*(-sin(w)sin(Ohm)+cos(w)*sin(Ohm)*cos(i)));

z = a*((cos(E)-e)*(sin(w)*sin(i))+((1-e^2)^(1/2))*sin(E)*(cos(w)*sin(i)))

from which I got the next results:

x = 1.35824;

y = -2.6455

z = -0.7783;

then proceed for the latitude calculation with:

radius = sqrt(x^2 + y^2 + z^2)
latitude = cotan(z/(sqrt(x^2+y^2)))

from which I got the next results:

radius = 3.0739;
latitude = -3.7332;


I have the feeling I messed up or misunderstood something along the way to my goal and the result that I encountered is wrong. At least for the latitude, as per the longitude I won't calculate if my latitude is wrong. (Why keep wasting time in wrong numbers and assumptions?)


To be able to convert those variables into latitude and longitude for a map representation of Earth.


  • I already read some similar posts in this community and maybe this question is prone to be labelled as duplicated, I hope it's not, and it's solved in a way it can help anybody with similar problems.
  • My aim is not to have a full understanding of the concept but enough to keep working on my numbers and calculations and thus translate it into (JavaScript).
  • I am self taught in every subject of my interest and I am open for learning new stuff from others.

Similar Questions

Calculation of coordinates from JPL Small-body database parameters?

What is this algorithm to calculate orbital state vectors?

Ground longitude/latitude under a satellite (cartesian coordinates) at a specfic epoch

  • $\begingroup$ The math isn't correct. You can find the conversions from heliocentric to geocentric from another source. $\endgroup$ Commented Jun 23, 2022 at 10:06
  • 1
    $\begingroup$ Since Ceres orbits the Sun, the coordinates in your calculations are heliocentric. To convert them to geocentric, you need to compute the Earth's position in heliocentric coordinates and subtract the Earth's position. But that's still a ways off from getting a sub lat/lon position. This link may be of some help: celestialprogramming.com/planets_with_keplers_equation.html $\endgroup$ Commented Jun 24, 2022 at 2:36

1 Answer 1

radius = sqrt(x^2 + y^2 + z^2)
latitude = cotan(z/(sqrt(x^2+y^2)))

Actually, the link you have shows

$$ \Phi'(t) = \tan^{-1} \frac{z(t)}{\sqrt{x^2(t) + y^2(t)}}$$

That's the inverse tangent function, not the cotangent. For the figures you show, the inverse tangent would be $-0.25598\, \text{rad}$ or $-14.666\,\text{deg}$

That said, there's nothing in the document about the position of the earth, so I'm presuming that all the orbital elements are to be referenced from the earth (or the body you want to find the sub-satellite point on). But the data you have for Ceres looks to be heliocentric. You'd need something else to find geocentric angles.

  • $\begingroup$ So I am in the right track? Are my results correct? $\endgroup$
    – WhiteGlove
    Commented Jun 14, 2019 at 21:40
  • 1
    $\begingroup$ @WhiteGlove The orbital elements of Ceres represent an orbit around the Sun, the NASA publication, including the Subprogram PVOE discusses satellite orbits around the Earth, so you are mixing apples and oranges. To get a latitude and longitude of Ceres (orbiting the Sun) relative to the Earth, you'll need several more steps. The first will be to calculate x, y, z of the Earth, then you'll need to calculate the rotation of the Earth at a specific moment in time before getting longitude. $\endgroup$
    – uhoh
    Commented Jun 14, 2019 at 21:45
  • $\begingroup$ Well, I simply tried to calculate where in the world an asteroid or else would impact. Thanks both of u $\endgroup$
    – WhiteGlove
    Commented Jun 14, 2019 at 22:04
  • 2
    $\begingroup$ @WhiteGlove The formula you have (if you have geocentric coordinates) show where you could stand and see the object directly overhead. It doesn't use velocity to show where it is aimed. An impact point (if it exists) wouldn't have much to do with the instantaneous sub-satellite point. $\endgroup$
    – BowlOfRed
    Commented Jun 14, 2019 at 22:06
  • $\begingroup$ @uhoh Could you please provide a simple answer which explains a bit further? Thanks for the comment! $\endgroup$
    – WhiteGlove
    Commented Jun 15, 2019 at 10:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.