Dear Astro-satpass user,
For a while now I have been working on a rewrite of the satpass script that comes in the Astro-satpass distribution. The rewrite has come to the point where it is about ready to see the light of day, and I would like to let you know what is going on now and what my plans are, and solicit your feedback.
The incentives for this rewrite are:
* To have something more testable and maintainable;
* To have more flexible output;
* To factor the replacement into its own distribution.
The last point may need some justification. The prediction classes (Astro::Coord::ECI and friends) have very few dependencies. The satpass script has more and different ones: user input, parsing, and formatting. There really seems to me to be no reason to impose the dependency overhead of the satpass script on those who program directly against the Astro::Coord::ECI objects, and I would prefer not to do so. This also paves the way for future refactorings (say, separating into a distribution that just contains the base class and the Sun and Moon, and another with the satellite prediction machinery).
The rewrite is Astro::App::Satpass2 (which contains the core application), a bunch of helper classes, and a very thin script, satpass2, which does nothing but call Astro::App::Satpass2->run().
The rewrite is out, at production version number 0.001, but it should still be considered beta, or even alpha. Feel free to install it and try it out. Or just look over the documentation at http://search.cpan.org/dist/Astro-App-Satpass2/ and let me know what you think. Especially if you think something should be different.
The satpass2 script is _mostly_ compatible with the satpass script. Differences are noted in the DIFFERENCES FROM SATPASS portion of the Astro::App::Satpass2 documentation. The satpass2 script will read a satpass initialization file and interpret its contents satpass-style in cases where syntax differs between the two. But satpass2 will prefer its own initialization file, which is stored in a different place and under a different name. There is functionality to convert an old initialization file to a new one, though only settings are converted.
The flexible output is achieved with a templating system, Template-Toolkit. As a proof-of-concept, there are a couple scripts in the eg/ directory to format satellite passes and Iridium flares in vCal format.
Once Astro::App::Satpass2 is good and stable (a year or so, I hope), my plans are to deprecate and ultimately retire the satpass script. At that point, the Astro::Coord::ECI classes will move to distribution Astro-Coord-ECI, where they should have been all along.
I have not yet decided what it means to retire the satpass script. My preference would be just to get rid of it, since my intent is that satpass2 should replace it, and I really do not want to maintain two pieces of code that do the same thing. An alternative is to place it in the eg/ directory of the Astro-Coord-ECI distribution, but before doing that I probably would need to be convinced that there are cases where the satpass2 script simply can not be made to do the job.
Thank you all very much for your time and attention, and the feedback that over the years has helped to make the Astro-satpass package better.