I have a local ENU coordinate system on the surface of the Earth (similar to this question: GPS coordinates to XYZ on relative grid). I know the lat,lon,alt of the local ENU origin, and thus I can also get the origin in terms of ECEF.

Now, I have a point of interest that I'd like to know its ECEF XYZ coordinates. I don't know the lat/lon/alt of the POI, but I do know its position relative to my local ENU grid/origin. How can I calculate the ECEF XYZ coordinates of my POI? An alternative approach might be to first get the lat/lon/alt of the POI.

enter image description here

I tried using this formula (https://gssc.esa.int/navipedia/index.php/Transformations_between_ECEF_and_ENU_coordinates) to convert ENU to ECEF, but it's not really working. It's obvious that the formula has no consideration for the fact that the ENU origin has an altitude. I tried applying some earth radius distance to the "U", and that can get me close to the correct answer, but it looks like this also changes the latitude, so I assume I'm using an incorrect approach.


The ENU to ECEF conversion can be easily calculated like this:


You will have to calculate your ENU origin's ECEF coordinates as well. Here the phi and lambda values are the geographic latitude and longitude of your ENU origin, the x,y,z, your POI's ENU coordinates and X_r, Y_r, Z_r, the ECEF coordinates of your ENU origin.

Note that on an ellipsoid, the "Down" direction does not pass through the center of the Earth (unless you're at the pole or on the equator), it is orthogonal to the ellipsoid:


If you use a line from the center to your point and extend it to add altitude, you are not orthogonal to the ellipsoid, and that's why your latitude changes.

This Wikipedia article explains many of the useful geographic conversion formulae. Note that these formulae are in reference to the ellipsoid and ellipsoidal heights, not a geoid and elevations above sea level.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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