[Math] how to calculate distance from a given latitude and longitude on the earth to a specific geostationary satellite

spherical-geometry

As the title suggests, I would like to know how to calculate the straight-line distance from a given latitude+longitude point on the earth to a given satellite in the geostationary belt. Perhaps a simplification would be to provide the geostationary sub-point on the equator. Or, is that a complication? 🙂

Sorry, I'm a computer programmer and not much of a geometry person. If there is an on-line calculator that does this, feel free to provide a link. I've been unable to find a straightforward answer.

Best Answer

Let us pick a coordinate system centered at the center of the earth, with $+x$ through the satellite (so longitudes will be measured relative to the satellite) and $+z$ through the north pole. Let $\phi$ be the latitude of the ground station and $\lambda$ the difference in longitudes. The satellite location is $(R_s,0,0)$ where $R_s$ is geosynchronous radius, about $42164$ km. The ground station location is $(R_e \cos \lambda \cos \phi, R_e \sin \lambda \cos \phi, R_e \sin \phi)$ where $R_e$ is the radius of the earth, about $6367$ km. This uses a spherical earth-you can get more accurate is you use a more accurate shape of the earth. The next step is the reference ellipsoid. Then you can just use the Pythagorean theorem for the distance: $d^2=(R_s-R_e \cos \lambda \cos \phi)^2+(R_e \sin \lambda \cos \phi)^2+(R_e \sin \phi)^2$. The earth radius varies by about $\pm 11 $km, so that is the order of the error you make by using a spherical earth.