++ed by:
Author image Tom Wyant
and 1 contributors


xml - Represent a series of ISS passes in XML


 eg/xml '06-Jun-2011 noon CET' 3 -time_zone GMT
 eg/xml -help
 eg/xml -version


The following options are recognized:


This option specifies the latitude of the observer, in degrees north of the Equator. Latitudes south of the Equator are negative.

The default is 52.069858, which is the latitude of The Hague.


This option specifies the longitude of the observer, in degrees east of Greenwich. Longitudes west of Greenwich are negative.

The default is 4.291111, which is the longitude of The Hague.


This option specifies the height of the observer above sea level, in meters. Heights below sea level are negative.

The default is 4, which is the height of The Hague above sea level.


This option specifies the observing horizon in degrees above the geometric horizon. Passes that do not achieve this elevation above the horizon will not be reported. Negative elevations may be specified.

The default is 10, which is the value Heavens Above appears to use.


This option specifies the beginning or end of twilight, in degrees of the upper limb of the Sun above the geometric horizon. Normally this will be a negative value. Passes will not be reported unless the Sun is below this elevation for at least part of the pass.

The default is -3, which is more or less consistent with Heavens Above.


This option specifies that more information be presented. If specified once, all events in a pass will be provided; the tags will be the event names. If specified twice, all passes will be provided, whether or not the International Space Station is visible at any time during the pass. If specified at all, the <illumination> tag will be added to the data emitted for each event.


This option specifies the time zone for the output time. The value must be compatable with the DateTime module.

You can also specify this as -time-zone, or as just -zone.

The default is 'Europe/Amsterdam'.


This option specifies whether white space and line breaks should be inserted between the XML elements for readability.

The default is -pretty, but you can turn this off by specifying -nopretty.


This option displays the documentation, and then exits.


This option displays the version number of this script, and then exits.


This Perl script computes passes of the International Space Station over a pre-programmed location (The Hague, Netherlands).

It takes up to three arguments: the start date and time of the prediction interval, the number of days in the interval, and the time zone to use to report the times of the passes. These default to the current time, seven days, and 'Europe/Amsterdam' respectively. If you specify a start time other than '' or 0, the Date::Manip module will be loaded and used to parse it. If you specify a time zone, it must be acceptable to DateTime.

The orbital data needed to make the prediction are downloaded from Celestrak (http://celestrak.com/) using Astro::SpaceTrack.

Passes are reported on the entrance/exit scheme. That is, a pass is held to have started when the ISS rises, or when it passes out of the Earth's shadow, or when twilight ends, whichever is latest. It ends when the ISS sets, or passes into the Earth's shadow, or when twilight starts, whichever is earliest. If the maximum elevation above the horizon is not reportable by these criteria, a 'fake' maximum is inserted just after the start or before the end, as the case may be.


Thomas R. Wyant, III wyant at cpan dot org


Copyright (C) 2011-2021 by Thomas R. Wyant, III

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses in the directory LICENSES.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.