Astro-Montenbruck

 view release on metacpan or  search on metacpan

lib/Astro/Montenbruck/Ephemeris/Planet/Saturn.pm  view on Meta::CPAN

    $term->( 3, -5, 0, -0.1,  -0.4,  1.1,   -0.3,  0.0,  0.0 );

    # Perturbations by Neptune
    $term = pert(
        T        => $t,
        M        => $m6,
        m        => $m8,
        I_min    => 1,
        I_max    => 2,
        i_min    => -2,
        i_max    => -1,
        callback => $pert_cb
    );

    $term->( 1, -1, 0, -1.3, -1.2, 2.3, -2.5, 0.0, 0.0 );
    $term->( 1, -2, 0, 1.0,  -0.1, 0.1, 1.4,  0.0, 0.0 );
    $term->( 2, -2, 0, 1.1,  -0.1, 0.2, 3.3,  0.0, 0.0 );

    # Perturbations by Saturn and Uranus
    my $phi = ( -2 * $m5 + 5 * $m6 - 3 * $m7 );
    my $c   = cos($phi);
    my $s   = sin($phi);

    $dl += -0.8 * $c - 0.1 * $s;
    $dr += -0.2 * $c + 1.8 * $s;
    $db += +0.3 * $c + 0.5 * $s;

    $phi = ( -2 * $m5 + 6 * $m6 - 3 * $m7 );
    $c   = cos($phi);
    $s   = sin($phi);
    $dl += ( +2.4 - 0.7 * $t ) * $c + ( 27.8 - 0.4 * $t ) * $s;
    $dr += +2.1 * $c - 0.2 * $s;

    $phi = ( -2 * $m5 + 7 * $m6 - 3 * $m7 );
    $c   = cos($phi);
    $s   = sin($phi);
    $dl += +0.1 * $c + 1.6 * $s;
    $dr += -3.6 * $c + 0.3 * $s;
    $db += -0.2 * $c + 0.6 * $s;

    # Ecliptic coordinates ([rad],[AU])
    my $l =
      pi2 *
      frac( 0.2561136 + $m6 / pi2 +
          ( ( 5018.6 + $t * 1.9 ) * $t + $dl ) / 1296.0e3 );
    my $r = 9.557584 - 0.000186 * $t + $dr * 1.0e-5;
    my $b = ( 175.1 - 10.2 * $t + $db ) / ARCS;

    $l, $b, $r;

}

# Intermediate variables for calculating geocentric positions.
sub _lbr_geo {
    my ( $self, $t ) = @_;

    my $m  = pi2 * frac( 0.8829867 + 3.3947688 * $t );
    my $cm = cos($m);
    my $dl = 5.84 + 0.65 * $cm;
    my $dr = 3.09 * sin($m);
    my $db = 0.24 * $cm;

    $dl, $db, $dr;
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

Astro::Montenbruck::Ephemeris::Planet::Saturn - Saturn.

=head1 SYNOPSIS

  use Astro::Montenbruck::Ephemeris::Planet::Saturn;
  my $planet = Astro::Montenbruck::Ephemeris::Planet::Saturn->new();
  my @geo = $planet->position($t); # apparent geocentric ecliptical coordinates

=head1 DESCRIPTION

Child class of L<Astro::Montenbruck::Ephemeris::Planet>, responsible for calculating
B<Saturn> position.

=head1 METHODS

=head2 Astro::Montenbruck::Ephemeris::Planet::Saturn->new

Constructor.

=head2 $self->heliocentric($t)

See description in L<Astro::Montenbruck::Ephemeris::Planet>.

=head1 AUTHOR

Sergey Krushinsky, C<< <krushi at cpan.org> >>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2009-2022 by Sergey Krushinsky

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

=cut



( run in 1.220 second using v1.01-cache-2.11-cpan-54e63673c56 )