I am trying to write software in C++, that will transform ECI coordinates of a satellite at a particular time into a point on a 2D map of earth. I know ECI coordinates are easily accessible from TLE data. But it doesn't say anything about what particular latitude and longitude spot on earth the satellite is above.
My question is, how do you know the orientation of the earth at a particular time ( time when TLE was acquired, or in future after orbit propagation ) ? And also, how do you include the effects of precession and nutation when calculating future points, to reach a higher degree of accuracy ? Thank you.
This is a surprisingly difficult problem. It is generally solved in a two step process:
Or if you want, you can just use the SConvert Library, which manages all such transformations for you. It's written in native C++, so that should work for you.
Some resources:
In general, coordinate transforms are not very well documented on the internet for this sort of stuff, so you might need to find a book with said transfrormations.