I'm wondering if there's a C-based (or similar language) program that will output the gravitational strength given input geodetic LEO coordinates (which I can convert to ECI etc. if needed). Ideally this would utilise the EGM2008 coefficients.

In my research I've looked at both Project Pluto (https://www.projectpluto.com/jpl_eph.htm) and GeographicLib (https://osdn.net/projects/sfnet_geographiclib/), however I am working on a CubeSat with a small amount of memory to work with so I need to downsize my libraries as much as possible.

If a gravitational strength-only program isn't out there, is my best course of action to pick and choose what I need out of something like GeographicLib?


  • 1
    $\begingroup$ You do not need the EGM2008 coefficients to model a LEO satellite. That model is severe overkill. Even the Grace models are severe overkill. Beyond some point, roughly 18th order, you'll need to be making relativistic corrections as the higher oder spherical harmonic terms contribute much, much less than does a relativistic correction, Well before the point where a relativistic correction is important, you'll need to correct the static EGM2008 model for secular and tidal variations. (Continued) $\endgroup$ Nov 2, 2018 at 2:29
  • 1
    $\begingroup$ Well before the point where tidal corrections become important, the uncertainty in drag means that there is little point (how little depends on altitude) in using a time-varying tidal model, let alone the ridiculously high 2190x2159 EGM2008 model. One puff from the Sun and poof! all of those higher order coefficients become utterly and completely meaningless, washed out by the known unknowns in atmospheric drag. $\endgroup$ Nov 2, 2018 at 2:31

1 Answer 1


You are overthinking gravity, under thinking uncertainties, and under thinking easy ways around the problem.

Presumably you have a (pseudo) omnidirectional antenna on your cubesat. Your cubesat needs to point its antenna toward the Earth. The cubesat doesn't need to know where it is so much as it needs to know where the Earth is. So use a cheap sensor such as an Earth horizon sensor that does just that.

If instead your cubesat integrate its position and orientation based on gravitation models, your cubesat will be lost in space in no time. You'll need alternative data (not to be confused with alternative facts) to anchor the filtered state. That alternative data can come from star trackers, GPS, or state data relayed to the cubesat from the ground. Without that alternative data, your cubesat will be performing ded reckoning. Without that alternative data, that ded reckoning means that your cubesat will shortly be dead.

  • $\begingroup$ Hello David, thanks for your response. I should have added more info on our mission to clarify why we're looking for a gravitational model. To address your concerns: - Our satellite requires ~2° pointing determination accuracy given the purpose of our mission, so we need greater accuracy than earth-pointing. - The gravitational model is one of multiple sources of data for our satellite. We're also leveraging GPS, a sun sensor and magnetometers for attitude determination. (Continued) $\endgroup$
    – Ben
    Nov 5, 2018 at 17:51
  • $\begingroup$ I may be misinterpreting your comments on my original post, so for clarification: are you saying that gravity is a non-concern in determination given the impact of atmospheric drag etc, or are you saying I need to integrate a much less hi-res model than EGM2008? $\endgroup$
    – Ben
    Nov 5, 2018 at 17:55
  • $\begingroup$ @Ben - The latter: There is no need for using EGM2008 in LEO. Or anywhere in space, for that matter. That model is beyond extreme overkill. $\endgroup$ Nov 5, 2018 at 18:02
  • $\begingroup$ @DavidHammen makes sense. Do you have any recommendations on an alternative to look at? $\endgroup$
    – Ben
    Nov 5, 2018 at 18:14

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.