Astro-App-Satpass2

 view release on metacpan or  search on metacpan

lib/Astro/App/Satpass2.pm  view on Meta::CPAN

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
use Getopt::Long 2.33;
use IO::File 1.14;
use POSIX qw{ floor };
use Scalar::Util 1.26 qw{ blessed isdual openhandle };
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

101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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

2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
}
 
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

4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
#       $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

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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.452 second using v1.01-cache-2.11-cpan-55f5a4728d2 )