question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Accuracy of subpoint computation for satellites

See original GitHub issue

Dear Brandon,

First of all thanks a lot for providing this amazing library, it is highly appreciated. I am currently working on a project which determines sensor accesses from a variety of platforms. To that end, I use skyfield to compute satellite accesses, making use of the Topos.at() and Topocentric.altaz() functionality.

As starting point of my custom sensor propagation routine, I first compute the time of zero elevation (using linear interpolation between SGP4 timesteps) and then require the sub-satellite point LLA.

satellite.at(TimeOfZeroElevation).subpoint()

To check the result, I compare the output with AGI’s STK software, which I am personally not a big fan of but trust very much in terms of results. Using the same TLE file as input (from celestrak), I found some major deviation, in particular in the latitudes and longitudes of the satellite subpoint at a given time:

  • StdDev of start time (s): 1.16
  • StdDevend time (s): 3.30
  • StdDev lat start (deg): 0.070
  • StdDev lat end (deg): 0.158
  • StdDev lon start (deg): 0.041
  • StdDev lon end (deg): 0.483
  • StdDev alt start (m): 14.5
  • StdDev alt end (m): 21.6 N = 178 accesses, used Worldview 1-4 for satellite accesses to Freiburg, Germany, in first week of February in 2020.

While the difference in altitude is marginal for my intended application, the Lat and Lon values correspond to a few 10s of km. And that causes the routine to miss a few sensor accesses every now and then, in particular, if you consider small field of views, e.g. for highly-resolved optical sensors.

I first believed that this had to do with inaccuracies stemming from the interpolation process, so I compared values at the defined time steps used in the SGP4 propagation. But this had no influence.

Next, I also used Orekit’s SGP4 propagator to check against STK and ended up with very similar values as STK. So my guess is that either I am doing something wrong or there might be a potential issue with the subpoint() computation.

I would be very happy if you could help me out.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:24 (11 by maintainers)

github_iconTop GitHub Comments

1reaction
maxguldecommented, Feb 2, 2020

Thanks a lot for your quick reply! I will check tomorrow (STK is way too expensive to have a personal license) about the intermediate values and come back with some more data asap.

0reactions
brandon-rhodescommented, Feb 6, 2020

It’s beautiful to see so many leadings zeros. 😃 Thanks for sharing!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Earth Satellites — Skyfield documentation - Rhodes Mill
“The maximum accuracy for a TLE is limited by the number of decimal places in each field. In general, TLE data is accurate...
Read more >
Overview of NESDIS Polar Earth Location Process
To provide accurate satellite navigation data, the Engineering Branch of the ... The subpoint position is calculated by an independent method and compared ......
Read more >
Analysis of Satellite Constellations for the Continuous ...
An accurate and effective solution method is proposed that solves both continuous and discontinuous coverage problems for any type of ground area. In...
Read more >
Investigation on Geometry Computation of Spaceborne GNSS ...
Abstract: The spaceborne Global Navigation Satellite Systems Reflectometry (GNSS-R) offers ver- satile Earth surface observation.
Read more >
Highly precise python code to compute sat positions
Their accuracy is there described, ... geometry = satellite.at(t) # Geographic point beneath satellite subpoint = geometry.subpoint() ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found