0.001 T. R. Wyant
Initial release
0.002 T. R. Wyant
bin/satpass -
Behave better when no Clipboard module.
Do not use Clipboard module under darwin.
Require Astro::SpaceTrack 0.016 (if any).
Default star distance now 10000 parsecs (was 1 parsec).
Add 'sky lookup', using Astro::SIMBAD::Query.
Modified 'sky' listing format to look like 'sky add' commands.
Astro::Coord::ECI -
Add NAD83 ellipsoid.
Astro::Coord::ECI::Utils -
Corrected documentation.
0.003 T. R. Wyant
bin/satpass -
Remove all uses of Clipboard, to try to get built under
ActiveState's ActivePerl.
Correct version number in Astro::SpaceTrack load.
Accumulate Iridium operational statuses.
Add status command to display satellite operational status.
Astro::Coord::ECI
Increment version, as a lazy way to increment the distribution
version.
Tweak documentation.
Astro::Coord::ECI::Utils
Make subclass of Exporter, since ActiveState's build
seems to have a problem with 'use Exporter qw{import}'
(except under darwin, strangely enough).
Increment version.
0.004
bin/satpass -
Rewrite command parsing so that we can retain quotes and
be POSIXly correct in option processing for the system
command.
Give tle command a -verbose qualifier, to produce a formatted
listing of the orbital parameters.
Provide HTML =item targets consistent with links.
ECI.pm
Clean up docs.
TLE.pm
Clean up docs, wrap some really long lines.
Replace _fmod2p with mod2pi from Utils module.
0.005
ECI.pm
Add 'inertial' read-only attribute.
Add equatorial coordinates relative to observer.
Fix negative right ascension - should be mod 2 pi.
Tweak docs, including fuller synopsis.
bin/satpass
Add local_coord parameter to determine local coordinate system
(azel or equatorial).
Modify pass and position output to use local_coord.
TLE.pm
Tweak synopsis, to show that setting time runs model.
0.006
ECI.pm
Cache some calculations for re-use.
ECI/Star.pm
Tweak docs.
ECI/Utils.pm
Add intensity_to_magnitude(), atmospheric_extinction().
bin/satpass
Correct check for whether location has been set. Old check
did not recognize 0 latitude, longitude, or height.
Special-case code to 'unset' tz when it is set to undef or ''.
Make 'position' iterate over time, in real time with -realtime.
Add -time global command option to time execution.
Add 'country' parameter. Break out 'geocode' and 'height' to
country-specific versions, and make the original command
dispatch based on 'country' parameter or explicit argument.
Allow formatting of local coordinates without range information.
Round pass times to the nearest second (since strftime truncates).
Add 'almanac' command options -horizon, -quarters, -transit, and
-twilight to restrict the output.
Make height_us() work with revised USGS SOAP calling sequence.
0.007
ECI.pm
Optimize, mostly by being smarter about when to clear cached
coordinates.
Correct spelling in POD.
ECI/Moon.pm
Change die to confess on programming error.
Correct spelling in POD.
ECI/Star.pm
Correct spelling in POD.
ECI/Sun.pm
Correct spelling in POD.
ECI/TLE.pm
Modify internals for easier cache clearing.
Better documentation of 'mean anomaly'.
Correct spelling in POD.
Trap invalid effective eccentricity in sgp4. The underlying cause
of the problem is probably either an invalid TLE or using the TLE
past its 'good until' date.
ECI/Utils.pm
Change die to confess on programming error.
Correct spelling in POD.
Makefile.PL
Get rid of wrong-headed attempt to configure optional modules.
bin/satpass
Various documentation corrections.
Correct spelling in POD.
Add store() and retrieve() as interface to Storable.
Centralize tilde expansion, and do it on cd(), load(), retrieve (),
source(), store ().
Preprocess -start and -end options of st(), to make dates
consistent with the rest of satpass.
Add -initialization_file command option.
Add -optional option on source().
Add localize(), and macro/source call frames to support this.
Add localize subcommand to st().
Make 'st show' a synonym for 'st get', and make 'st get' without
arguments show all settings.
Add test hooks, and a test to exercise the more arcane functions
of the script.
Add -source_layer and -retry_on_zero options to height_us().
Add a separate height_ca() method that makes use of the above
options when delegating to height_us(), in response to anomalous
responses to height queries.
Fix problem displaying appulses in pass().
Make the position() display positions for a range of times. Add
-realtime option to position() to display positions in
near-real-time.
Add drop().
Fix formatting of error messages from the local coordinate
formatters.
Have position() display epoch and illumination when displaying
objects from the observing list.
0.008
ECI.pm 0.008
Support the use of Astro::Coord::ECI::TLE::Set objects in the
angle() method.
Add method attribute().
ECI/TLE.pm 0.005
Add the null model.
ECI/TLE/Set.pm 0.001 New container object.
ECI/Utils.pm 0.006
Add dynamical_delta() method (was private method in ECI.pm).
bin/satpass 0.008
Use Astro::Coord::ECI::TLE::Set objects to represent satellites
when we have more than one set of orbital elements.
Add help for Astro::Coord::ECI::TLE::Set.
Add and document 'singleton' parameter. Use it in pass() and
position().
Default end times relative to start times, rather than relative
to the last explicit time.
Fix interaction between clipboard functionality and test hook.
Thanks to IMACAT for help diagnosing and verifying.
Add acknowledgments.
0.009
ECI.pm 0.009
Add represents() method.
ECI/Sun.pm 0.003
Remove redundant definition of ASTRONOMICAL_UNIT; use AU from
Astro::Coord::ECI::Utils
ECI/TLE.pm 0.006
Add is_model_attribute(), is_valid_model().
ECI/TLE/Set.pm 0.002
Allow Astro::Coord::ECI::TLE::Set objects as arguments of add().
Take advantage of is_model_attribuite(), is_valid_model().
bin/satpass 0.009
Fix defaulting of second argument of quarters().
Allow macros to override core commands. Macros can no longer
call themselves, and core commands can be accessed explicitly
by the syntax core.command.
Relative times for the second and subsequent arguments of a
command are relative to previous time argument of the same
command, whether absolute or relative.
Build.PL 0.001
Initial version.
0.010
ECI.pm 0.010
Check for null arguments on most calls, so we die now rather
than later.
Fix undefined value when calling set() with no arguments.
ECI/Moon.pm 0.003
Make singleton object by default.
ECI/Sun.pm 0.004
Make singleton object by default.
bin/satpass 0.010
Add qualifiers -brief, -list, and -delete to macro command.
Parameter explicit_macro_delete controls what the macro
command does when given a name but no definition.
Make -time work on macros and source commands.
Add ability to abort macros and source scripts on error,
controlled by parameter error_out.
Build.PL
Correct add_to_cleanup() call.
Add omitted ECI/Sun.pm.
Makefile.PL
Add explicit PL_FILES => {}, to prevent old versions from
trying to execute 'perl Build.PL Build'.
0.011
ECI.pm 0.011
Add horizon attribute.
ECI/TLE.pm
Add pass() method and supporting attributes.
bin/satpass
Add check_version()
Defer loading of optional modules to speed startup.
Rewrite XML parsing to use either XML::Parser or XML::Parser::Lite,
with XML::Parser being preferred.
Fix fatal error when running off the end of the top-level command
script.
Support ~user in filenames.
Convert pass() to use Astro::Coord::ECI::TLE->pass(). Old code
remains as pass_old(), strongly deprecated.
Use Time::HiRes for timing, if that is available.
Document status of pass_old, 'timing' parameter (strongly
deprecated) and the SIMBAD situation.
eg/iss
New example to demonstrate Astro::Coord::ECI::TLE->pass().
0.012
ECI.pm 0.012
Localized $Data::Dumper::Terse
Fixed divide-by-zero in azel() when the points coincide.
Convert angle() to use law of haversines rather than law of cosines,
for better performance on small angles.
ECI/Sun.pm 0.005
Add magnitude() method.
ECI/TLE.pm 0.008
Add {body} and {station} to hash returned by pass().
Add support for reblessing to Astro::Coord::ECI::TLE::Iridium if
appropriate. This includes rebless(), before_reblessing(),
after_reblessing(), alias(), can_flare(), status(), and the {reblessable}
attribute.
ECI/TLE/Iridium.pm 0.001
Initial release.
ECI/Utils.pm 0.007
Confess on invalid acos() argument.
Add find_first_true() to support finding Iridium flares.
bin/satpass 0.012
If a source file ends with a continued line, warn and abandon the
line.
Set the time on the appulsing body before obtaining its coordinates.
Fix error in end time parser in position().
Throw error if doing 'sky lookup' on a body that is already in the
sky.
Have pass() round the displayed time for the appulsing body.
Add flare() to calculate Iridium flares.
Modify position() to report flare potential for Iridium satellites.
Added -choose option to pass(), position(), tle().
Removed pass_old() and the timing parameter, strongly deprecated in
version 0.011.
Added {simbad_version} parameter to select SIMBAD software to use.
eg/iridium 0.001
New example calculating Iridium flares.
0.013
Astro::Coord::ECI 0.013
No code changes, but updated version to be visible to CPAN 'r'.
Astro::Coord::ECI::TLE 0.009
Updated canned Iridium status table for failure of Iridium 36 and
its replacement by Iridium 97.
Astro::Coord::ECI::TLE::Iridium 0.002
Fixed occasional borderline-case spurious flare prediction.
bin/satpass 0.013
Added -version command option, to display preamble and exit.
Wrap probe for clipboard helpers in eval{}. Among other things, this
allows the script to run in taint mode.
Add -choose option to list().
Allow extra arguments to status show, to do selective status display.
t/moon.t
Fixed cosmetic undefined value error when Scalar::Util does not
implement refaddr().
t/sun.t
Fixed cosmetic undefined value error when Scalar::Util does not
implement refaddr().
0.014
Astro::Coord::ECI 0.014
Add equinox_dynamical attribute; precess() now uses this as start
point and leaves the time alone. It is also used when going from
ECI to ECEF, and set to the current time when going from ECEF to
ECI.
Add global $EQUINOX_TOLERANCE to determine minimum precession when
converting from ECI to ECEF.
Add method equinox_dynamical for performance.
Document dynamical and universal times.
Add method precess_dynamical() to precess to the given dynamical
time. The precess() method simply converts its argument to
dynamical and delegates to this.
Astro::Coord::ECI::Moon 0.004
Have model set equinox_dynamical attribute to modeled dynamical
time.
Astro::Coord::ECI::Star 0.004
Set equinox_dynamical attribute before precessing to current
equinox.
Precess coordinates at end of time_set(), not in middle.
Astro::Coord::ECI::Sun 0.006
Have model set equinox_dynamical attribute to modeled dynamical
time.
Astro::Coord::ECI::TLE 0.10
Add backdate attribute (default: true) to control whether pass()
uses elements before their epoch.
Use the alias() mechanism for special-case settings of the
illum attribute.
Have models set equinox_dynamical to the dynamical epoch.
Astro::Coord::ECI::TLE::Iridium 0.003
Have backdate attribute control whether flare() uses elements
before their epoch.
Astro::Coord::ECI::TLE::Set 0.003
Minor documentation tweaks and POD fixes.
Astro::Coord::ECI::Utils 0.008
Add constant JD_OF_EPOCH, globals $DATEFORMAT and $JD_GREGORIAN,
and subroutines date2jd, date2epoch, epoch2datetime, jd2date,
jd2datetime.
Add subroutine load_module and centralize all on-the-fly loading
here, for support of .pmc modules.
bin/satpass 0.014
Add 'echo' and 'times' commands.
Add 'backdate' parameter, propagate to pass() and flare().
Add 'desired_equinox' parameter, use it when displaying inertial
coordinates (only equatorial, at the moment).
Allow pseudo-redirection of command output into a pipe.
0.015
Astro::Coord::ECI 0.015
Bump version number. No other changes.
bin/satpass 0.015
Document pod coverage test change, intent to and plans for
implementing "Revisiting Spacetrack Report #3".
Bump version.
t/pod_coverage.t
Specify all-caps routines as private, since some testers are
getting failures on 'use constant' declarations. I don't get
these, so the change is kind of blind.
0.016
Astro::Coord::ECI 0.016
Increment version. No other changes.
Astro::Coord::ECI::TLE 0.011
Use PI-related constants from Astro::Coord::ECI::Utils.
pass() no longer throws 'end before beginning' error if caused
by setting backdate false; instead returns empty list of
passes.
Astro::Coord::ECI::TLE::Iridium 0.004
flare() no longer throws 'end before beginning' error if caused
by setting backdate false; instead returns empty list of
passes.
Add model 'sgp4r', based on 'Revisiting Spacetrack Report #3',
and equivalent metamodel 'model4r.'
Make metamodel 'model' execute sgp4r.
Have 'period' take into account which model is being used.
Build.PL
Prompt for installation of 'satpass' script, defaulting to 'n'.
Makefile.PL
Fix license support check to work with developer versions of
ExtUtils::MakeMaker.
Prompt for installation of 'satpass' script, defaulting to 'n'.
bin/satpass 0.016
Document major changes in classes. No other changes.
eg/tle_period.t
Pseudo-test to compare the various period calculations.
eg/README
Update to add eg/tle_period.t
t/{eci,moon,star,sun}.t
Remove dependency on Math::Trig.
Prefer Astro::Coord::ECI::Utils over local definitions of
constants.
t/iridium.t
Clarify (I hope!) how to run the Iridium tests.
t/tle_sgp4r.t
New test for model sgp4r. TLEs are not included in the kit,
but are downloaded if needed.
t/sgp4r.out
Comparison data for tle_sgp4r.t. Renamed from tforver.out in
the 'Revisiting Spacetrack Report #3' download.
t/pod.t
Remove unused variable
t/pod_coverage.t
Remove unused variable
0.017
Astro::Coord::ECI 0.017
Fall back to homegrown (and un-general, and insufficiently tested)
code if Storable::dclone not available.
Astro::Coord::ECI::TLE 0.012
Correct behavior when Scalar::Util::dualvar not present.
Astro::Coord::ECI::TLE::Iridium 0.005
Use max() and min() from Astro::Coord::ECI::Utils.
Astro::Coord::ECI::Utils 0.009
Added looks_like_number(), max(), min(), defaulting to the
Scalar::Util or List::Util implementations if possible, but
providing our own if not.
Clarify load_module() documentation.
bin/satpass 0.017
Use looks_like_number() and max() from Astro::Coord::ECI::Utils.
Recode _load_module to use Astro::Coord::ECI::Utils::load_module.
Fix clipboard code to fail gracefully if Scalar::Util::weaken
is unavailable.
t/{moon,sun}.t
Skip singleton test if Scalar::Util::refaddr not available.
t/pod_coverage.t
Correct also_private setting to make it skip all-uppercase+numeric
(blind fix since mine seems to skip constants anyway, which is
what I'm really trying to do).
t/tle.t
Use max() from Astro::Coord::ECI::Utils.
t/pod_spelling.t 0.010
Add stop words 'max' and 'min'.
bin/satpass 0.017
Supress '"our" variable $clipboard_unavailable masks earlier
declaration ...' under 5.10.0.
0.018
Astro::Coord::ECI 0.018
Update version number and copyright date. No other changes.
Astro::Coord::ECI::TLE 0.013
Add semimajor(), to calculate and return the semimajor axis of the
orbit.
Update Iridium status: mark Iridium 28 (OID 24948) failed, and
Iridium 95 (OID 27375) as in service (was spare).
bin/satpass 0.018
Under Mac OS X, use Mac::Pasteboard for clipboard operations if
available; supress pbcopy warning when run as cron job.
Fix 'height' query to track changes in USGS' elevation web service.
t/tle_sgp4r.t
Correct the code that extracts the needed TLEs from the downloaded
zip file.