Astro-App-Satpass2
view release on metacpan or search on metacpan
lib/Astro/App/Satpass2.pm view on Meta::CPAN
use File::Spec;
use File::Temp;
use Getopt::Long 2.33;
use IO::File 1.14;
use IO::Handle;
use POSIX qw{ floor };
use Scalar::Util 1.26 qw{ blessed isdual openhandle };
use Text::Abbrev;
use Text::ParseWords (); # Used only for {level1} stuff.
use constant ASTRO_SPACETRACK_VERSION => 0.105;
use constant DEFAULT_STDOUT_LAYERS => ':encoding(utf-8)';
BEGIN {
eval {
load_package( 'Time::y2038' )
and Time::y2038->import();
1;
}
or do {
require Time::Local;
lib/Astro/App/Satpass2.pm view on Meta::CPAN
my $have_time_hires;
$have_time_hires = sub {
my $value = load_package( 'Time::HiRes' );
$have_time_hires = sub { return $value };
return $value;
};
my $have_astro_spacetrack;
$have_astro_spacetrack = sub {
my $value = load_package( { lib => undef }, 'Astro::SpaceTrack' ) && eval {
Astro::SpaceTrack->VERSION( ASTRO_SPACETRACK_VERSION );
1;
};
$have_astro_spacetrack = sub { $value };
return $value;
};
my $default_geocoder;
$default_geocoder = sub {
my $value =
_can_use_geocoder( 'Astro::App::Satpass2::Geocode::OSM'
lib/Astro/App/Satpass2.pm view on Meta::CPAN
}
sub _set_spacetrack {
my ($self, $name, $val) = @_;
if (defined $val) {
instance($val, 'Astro::SpaceTrack')
or $self->wail("$name must be an Astro::SpaceTrack instance");
my $version = $val->VERSION();
$version =~ s/ _ //smxg;
$version >= ASTRO_SPACETRACK_VERSION
or $self->wail("$name must be Astro::SpaceTrack version ",
ASTRO_SPACETRACK_VERSION, ' or greater' );
}
return ($self->{$name} = $val);
}
sub _set_stdout {
my ($self, $name, $val) = @_;
$self->{frame}
and $self->{frame}[-1]{$name} = $val;
return ($self->{$name} = $val);
}
lib/Astro/App/Satpass2.pm view on Meta::CPAN
# $self->_load_module ($module_name)
# Loads the module if it has not yet been loaded. Dies if it
# can not be loaded.
{ # Begin local symbol block
my %version;
BEGIN {
%version = (
'Astro::SpaceTrack' => ASTRO_SPACETRACK_VERSION,
);
}
sub _load_module {
my ($self, @module) = @_;
ARRAY_REF eq ref $module[0]
and @module = @{$module[0]};
@module or $self->weep( 'No module specified' );
my @probs;
foreach my $module (@module) {
t/format_template.t view on Meta::CPAN
my $app = Astro::App::Satpass2->new();
my $sta = Astro::Coord::ECI->new()->geodetic(
deg2rad( 38.898748 ),
deg2rad( -77.037684 ),
16.68 / 1000,
)->set( name => '1600 Pennsylvania Ave NW Washington DC 20502' );
my $sun = Astro::Coord::ECI::Sun->new();
my $moon = Astro::Coord::ECI::Moon->new();
# The following TLE is from
# SPACETRACK REPORT NO. 3
# Models for Propagation of NORAD Element Sets
# Felix R. Hoots and Ronald L. Roehrich
# December 1980
# Compiled by TS Kelso
# 31 December 1988
# Obtained from celestrak.com
# NASA line added by T. R. Wyant
my ( $sat ) = Astro::Coord::ECI::TLE->parse( <<'EOD' );
None
1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 8
( run in 0.238 second using v1.01-cache-2.11-cpan-55f5a4728d2 )