View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003363||3 - Current Dev List||Enhancement||public||2019-06-16 23:12||2019-06-16 23:15|
|Target Version||Fixed in Version|
|Summary||0003363: Satellite tracker does iterative math|
The satellite tracker does iterative math, which is very slow.
To figure out when a satellite rises (appears above the horizon), the application uses the satellite's Kepeler data and the station's location and does some math. The math is pretty involved -- it can take a few hundred milliseconds to complete. The operatoin gives the position of the satellite by computing its azimuth. If the azimuth is below the horizon, the code advances the time reference used in the computation and tries again.
The iterations continue until the azimuth is positive -- above the horizon. The approach has seveal problems.
One is that the satellite may never become visible. The code has to eventually give up, and that takes time. The logic for giving up might not be right.
Another is that the accuracy suffers. The times resported for rising and setting satellites is only accurate to the change in each iteration. If an iterative test at 01:00 says the satellite isn't visible and the test at 01:05 is visible, the satellite is reported as rising at 01:05. But the satellite might have actually risen at 01:01.
Finally, it's just slow. It would be faster and could be more accurate to adaptively iterate (change the step of each iteration). If a closed-form solution for the math could be found, even if it was more computationally expensive, it would execute only once and return an answer. That would also hopefully result in an immediate detectable faliure for satellites that won't rise over the horizon at the observing station.
|Additional Information||Some more notes are in the related issue. I've opened this issue to continue tracking this opportuity because the related issue was closed.|
|Tags||No tags attached.|