Astro-satpass
view release on metacpan or search on metacpan
- Decay of Iridium 19 and 94;
- Mark Iridiums 29, 33, and 72 spare per Kelso.
Prefer /[0-9]/ to /\d/ for matching digits. The latter matches
non-ASCII digits as well as ASCII ones, but the former is what I
want, because usually once there is a match numeric conversion
happens.
0.093 2018-04-05 T. R. Wyant
Iridium 23 decayed March 28 2018. This necessitates updating all the
canned Iridium status tables.
Kelso marks Iridiums 12, 13 & 76 partly operational. This translates
to "SPARE" in the Iridium status table.
0.091 2018-03-10 T. R. Wyant
Kelso marks Iridium 94 as partly operational. Updated canned status
to call it spare.
Use manifest constants for reference types. That is, instead of
'ARRAY', use ARRAY_REF, defined using 'use constant', and so on.
0.090 2018-02-22 T. R. Wyant
Update canned Iridium status table for decay of Iridiums 3, 43 and
49, and making 3, 23, and 46 spare per Kelso.
0.089 2018-02-02 T. R. Wyant
Kelso marks Iridiums 3, 37, 49 as "P" ("partly operational"). This
is "spare" in my classification. Sladen calls 3 failed, but I'm
using the Kelso data in the canned status table in
Astro::Coord::ECI::TLE.
Fix problem with Astro::Coord::ECI::Sun when Time::y2038 used.
New algorithm for equinoxes and solstices. The new algorithm is from
Jean Meeus' "Astronomical Algorithms." 2nd edition, chapter 27
("Equinoxes and Solstices"), and should be more accurate, at least
for reasonably current times.
If you want the old iterative algorithm back, you can set new
attribute 'iterate_for_quarters' to a true value.
Correct typo in calculation of Sun's postion. The correction
produced no change in the equinoxes and solstices calculated by
iteration.
Add eg/usno-seasons. This displays equinoxes and solstices for a
given year, both as computed by Astro::Coord::ECI::Sun and as
downloaded from the United States Naval Observatory.
0.088 2018-01-16 T. R. Wyant
Iridium 34 decayed January 8 2017. So marked in canned status.
0.087 2017-12-30 T. R. Wyant
Iridium 6 decayed December 23 2017. Update canned status for this.
Kelso marks Iridium 34 tumbling, 96 partial December 22 2017. Update
canned status for this.
Kelso marks Iridiums 6, 19 & 22 as tumbling. Canned status table
updated to reflect this.
0.086 2017-12-06 T. R. Wyant
Mark Iridium 8 as decayed in canned status table.
0.085 2017-11-24 T. R. Wyant
Kelso says Iridiums 5, 8, and 51 are tumbling. Canned status updated
to reflect this.
0.084 2017-10-12 T. R. Wyant
Add support for decayed Iridium satellites:
* Carry them in canned status table
* Have can_flare( 'all' ) return true regardless of satellite
status.
All this was triggered by Kelso's recognition that Iridium 77 had
decayed.
0.083 2017-09-13 T. R. Wyant
Add -decayed to eg/visual.
This eliminates decayed bodies. I decided not to remove these from
the magnitude table because of historical interest.
Kelso removes 38253 from visual.txt. Decayed 2017-08-18.
Kelso marks 25471 Iridium 77 failed
Kelso marks 24949 Iridium 30 failed
Kelso adds 33411 to visual.txt.
Kelso adds 11251 METEOR 1-29 to visual.txt
Use qsmag instead of mcnames to suppliment magnitudes in the canned
magnitude table. As of July 24 2017 mcnames appeared to be
double-compressed and corrupt besides. Both are maintained by Mike
McCants, but the former is input to his QuickSat program and so
likely to be less fragile. I hope. The mcnames file was eventually
corrected, but I am sticking with qsmag for now.
Kelso reports decay of Iridium 74.
0.082 2017-06-14 T. R. Wyant
Kelso reports Iridium 79 out of service.
0.081 2017-05-26 T. R. Wyant
Update canned magnitude table.
Deprecate McCants' status. His web page notes itself as no longer
maintained.
Document impending changes in Iridium support.
Kelso reports Iridiums 43 & 82 tumbling. Canned status changed in
Astro::Coord::ECI::TLE to reflect this.
0.079 2017-04-26 T. R. Wyant
Move satpass script from bin/ to script/
Mark OID 25041 (Iridium 40) tumbling, and 25042 (Iridium 41) spare
per Kelso. The latter appears to have actually been declared spare
in July 2016, but somehow I missed updating the canned status table.
0.057 2013-07-08 T. R. Wyant
Deprecate the satpass script.
Modify the appulse algorithm when the appulsing body is a satellite,
since the original algorithm did not necessarily converge to the
correct time for satellites in similar orbits. Thanks to Vidar
Tyldum for bringing this to my attention, and working with me on it.
Go back to simply allowing invalid international launch designators.
They started getting rejected about release 0.051_01 (2012-08-18).
Thanks to Vidar Tyldum for bringing this to my attention, and
working with me on it.
Take spaces as equivalent to zeroes in numeric fields (which I believe
is the old FORTRAN behavior), and in the numeric portions of the
international launch designator.
As a consequence of the above, the 'international' attribute will be
zero-filled on retrieval.
Update docs. Replace 'location' by 'station' where that is what is
meant. Add a (very brief) explanation of times to the overview. Also
add information on the Space Track REST interface to the overview.
Deprecations:
* The two-argument form of azel() is now fatal.
* The satpass script fails if you try to geocode without
Geo::Coder::Geocoder::US.
* Use of the satpass script 'lit' setting is now fatal; instead use
'edge_of_earths_shadow'.
* Use of the Astro::Coord::ECI::TLE 'limb' attribute is now fatal;
instead use 'edge_of_earths_shadow'.
* Feeding a JSON file to Astro::Coord::ECI::TLE->parse() which uses
the SATNAME key is deprecated, and produces a warning. This warning
will become fatal in the future. Instead use OBJECT_NAME.
* Warn every time a Doppler shift is computed using the station's
frequency. This will become fatal in the future. The frequency
should be set on the orbiting object.
0.056 2012-12-08 T. R. Wyant
Deprecation warnings:
* The Doppler calculation warns the first time the frequency comes
from the station rather than the satellite.
* The satpass script warns every time geocoding is done if
Geo::Coder::Geocoder::US is not installed.
0.055 2012-10-27 T. R. Wyant
Workaround for problem with Date::Manip clobbering $ENV{PATH} when it
is loaded.
T. S. Kelso recorded Iridium 4 (OID 24796) as being out of service
about midnight 20-Oct-2012 GMT. I have updated the canned status,
since I know he calls Iridium LLC to get the status.
Have the Astro::Coord::ECI::TLE status() method take optional OID
arguments for the 'show' subcommand.
0.054 2012-10-09 T. R. Wyant
Correct field TLE_LINE0 in the JSON TLE generated by
Astro::Coord::ECI::TLE to include the leading '0 '.
INCOMPATIBLE CHANGE: In the JSON representaion of a TLE, the common
name of the body is now OBJECT_NAME, not SATNAME. This was done to
track the usage of Space Track, which did not previously have the
common name in its TLE data. The SATNAME field will still be used if
it appears in input, but is being put through a deprecation cycle.
0.053 2012-09-10 T. R. Wyant
Suppress the 'OK' after an st( set => ...) in the satpass script.
Address satpass script Term::ReadLine load failures under the test
harness by doing the load in an eval, and falling back to the
non-ReadLine case.
Update the canned status table in Astro::Coord::ECI for the fact that
both Sladen and McCants call Iridium 51 (OID 25262) in service.
0.052 2012-09-05 T. R. Wyant
Per schedule, the following deprecated items will produce a warning on
each use:
* The 'upper' argument of the Astro::Coord::ECI azel() method;
* The Astro::Coord::ECI::TLE 'limb' attribute;
* The satpass 'lit' setting.
All these warnings will become fatal in the first release on or after
March 1 2013.
Remove support for the 'horizon' setting of the Astro::Coord::ECI
'almanac_horizon' attribute. This was introdiced in 0.051_01, but on
second thought I decided the 'horizon' logic was ill-conceived.
Change the JSON representation of the International Launch Designator
to track Space Track change by Space Track to REST predicate
INTLDES.
Further corrections to t/tle_json.t for OS-dependant failures.
Enhance Astro::Coord::ECI::TLE->parse() to parse Iridium status off
the name if it is present.
Fudge the JSON in t/tle_json.t for system-to-system differences in
floating point representations (2-digit vs 3-digit exponent).
Remove the -json output formatting option from the satpass tle()
command. Instead, provide eg/convert_tle.
Add attribute almanac_horizon to Astro::Coord::ECI. This sets the
horizon for almanac calculations. The default is 0 (radians), but
other values are possible, as well as 'horizon' (meaning, use the
azel(), and equatorial(). All these seem sane to me, though I still
have no worked examples to test against.
I intend the use of the 'station' attribute to be the preferred way to
get observer-relative coordinates. I would like to eventually
deprecate $station->azel( $body ) and friends, as well as the practice
of passing an explicit station to the pass() and flare() methods, but
whether this actually happens is another question.
0.047 2012-01-20 T. R. Wyant
Have the functionality related to the Astro::Coord::ECI::TLE
'pass_threshold' attribute (introduced in 0.046) take visibility
into account if the 'visible' attribute is true.
0.046 2012-01-18 T. R. Wyant
Add Astro::Coord::ECI::TLE attribute 'pass_threshold'. If set to
something (in radians) other than undef, the sattelite's highest
point during a pass must be at least this high for the pass to be
reported.
Support the 'pass_threshold' setting in the satpass script.
Optional code that used to feel around for a YAML implementation now
just uses YAML::Any.
The utility subroutines deg2rad() and rad2deg() now support an
argument of undef which, unsurprisingly, returns undef.
The Changes file now conforms to Test::CPAN::Changes, and the author
test xt/author/changes.t has been added to keep it so.
0.045 2011-12-05 T. R. Wyant
Have the satpass script's geocode command favor
Geo::Coder::Geocoder::US. Deprecate the use of SOAP::Lite.
Have the satpass script set the height to 0 if the position was set by
the geocode command, but height() failed.
Update the copy of the GNU GPL in LICENSES/Copying to have the current
FSF address.
Document the release of Astro-App-Satpass2, and the eventual
deprecation of the satpass script.
Try to clarify how the atmospheric refraction calculation works.
0.044 2011-10-19 T. R. Wyant
Require Test::More 0.88 for testing. The requirement was actually
introduced in version 0.042. Thanks to Christopher Kybe for
picking up this discrepancy.
The satpass script's 'status iridium' command now generates a
deprecation notice every time it is issued.
0.043 2011-08-29 T. R. Wyant
The earthquake (Mineral Virginia USA) fire (Great Dismal Swamp) and
flood (hurricane Irene) edition.
Updated the canned Iridium status in Astro::Coord::ECI::TLE for
McCants' and Sladen's reporting of Iridium 26 (OID 24903) as out of
service. They also updated Iridium 23 (OID 24906) to show it in
service rather than failed, but I have continued to follow Kelso in
calling it a spare.
Other than this, only documentation changes, mostly relating to the
deprecation of the 'limb' attribute and its relation to the new
'edge_of_earths_shadow' attribute.
In the satpass script, use the new 'edge_of_earths_shadow' setting in
the 'flare' and 'position' commands, though the flare calculation
does not actually make use of it.
Replace the Astro::Coord::ECI::TLE 'limb' attribute and the satpass
'lit' setting with the 'edge_of_earth_shadow' attribute and setting.
The new attribute and setting are numeric, and specify an increase
in elevation (or decrease if negative) in units of the apparent
radius of the body. The replaced attribute and setting still exist,
but are deprecated, and will begin warning in the first release
after March 1 2012. This setting/attribute is used by the pass
calculation.
Provide an Astro::Coord::ECI azel_offset() method, which takes, as its
optional second argument, an offset applied to the elevation, in
terms of the apparent radius of the body whose position is being
calculated. The two-argument version of the azel() method is now
deprecated, and will begin warning in the first release after March
1 2012.
Override the Astro::Coord::ECI correct_for_refraction() method in
Astro::Coord::ECI::TLE, Astro::Coord::ECI::Moon, and
Astro::Coord::ECI::Sun. The override simply returns the input
elevation unmodified.
0.042 2011-08-07 T. R. Wyant
In the Astro::Coord::ECI maidenhead() method:
* Document the fact that, when used as a mutator, it sets the position
of the center of the square;
* Modify the accessor to try to minimize truncation error.
Added t/eci_maidenhead.t.
0.041 2011-07-25 T. R. Wyant
Re-fix longitude out-of-range warning in Astro::Coord::ECI::Moon.
Fix problem with time specification in eg/sh_script when Date::Manip
is not installed.
Add attribute 'pass_variant' to Astro::Coord::ECI::TLE. This tweaks
the output of the pass() method, and can be set to the bitwise 'or'
(a.k.a. '|') of the following exported values:
* PASS_VARIANT_NONE - No tweaks.
* PASS_VARIANT_VISIBLE_EVENTS - Remove from the output all pass
events which were not visible. Ignored if the 'visible' attribute
is false.
* PASS_VARIANT_FAKE_MAX - Create a 'max' event representing the
largest visible elevation if the absolute max was filtered out by
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.010:
* 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.013 2007-03-02 T. R. Wyant
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.012 2007-01-09 T. R. Wyant
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:
( run in 0.768 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )