Heads up II - Astro-satpass modifications
The Astro-satpass distribution contains classes to compute satellite position and visibility. If you are using it, please read on. If you think I should continue to deliver change notifications via this blog, please let me know, otherwise I will stop doing so, and merely give notice via electronic mail.
On June 11 2011 I wrote about the changes to the Astro::Coord::ECI::TLE pass()
method which were in release 0.039_04. The blog entry detailed those changes and expressed the intent to make another release in about two weeks.
A respondent questioned the performance of the pass()
method when the interval
attribute was positive. This attribute causes the pass()
method to return periodic positions during the pass, as well as the significant events of the pass. Investigation revealed a serious inefficiency in this functionality, and turned up some more “edge case” pass prediction problems.
Because of the further changes to the pass()
method, I have made another development release: 0.039_05. I intend to allow another two weeks for evaluation and feedback before making either another development release (if further issues turn up) or a production release (if not).
The specific problems fixed in this release are:
Versions 0.039_03 and 0.039_04 occasionally reported passes which ended shortly before the prediction interval started.
Versions 0.039_03 and 0.039_04 sometimes calculated the wrong max time. Again.
Passes in progress when the prediction interval started were still sometimes being missed if the
visible
attribute was false.The calculation of positions periodically during the pass (controlled by the
interval
attribute) was anywhere from slightly slower to horribly slower than it needed to be. Also, the illumination reported for these positions was sometimes wrong. The re-implementation reports positions starting from the rise of the satellite. The original implementation reported positions starting from the start of the prediction interval, Since this was undocumented I feel justified in changing it, but since this is a development release I also feel justified in changing it back (which I think I can do without re-incurring the performance penalty) if someone is relying on the old functionality.Added new attribute
lazy_pass_position
, which gives thepass()
method permission to not calculate and report the position of the event. Currently, this only affects the periodic positions calculated in response to setting theinterval
attribute.The
pass
command in thesatpass
script did not display periodic positions even when theverbose
setting was true.
The validation was again partially automated, so all I really know is how the code performs versus 0.039. Please let me know if you have any problems or concerns. I can be reached by electronic mail at wyant at cpan dot org.
Thank you for your time and attention,
Tom Wyant
I had never heard of the Astro-satpass distribution until you posted this blog entry. In the interests of promoting the wide-ranging uses of Perl I would hope that you continue blogging your updates.
OK. I didn't look at the Perl promotion aspect. Though promoting Perl in this forum is a bit like preaching to the choir.
The problem with going open source is that you have no idea who is actually using your software, unless they contact you. I have been contacted by a handful of people use this on a regular basis in their jobs, and thought it possible that there were more that I didn't know about. So I was just trying to spread the word to people who might be affected by the change.