Astro-Montenbruck
view release on metacpan or search on metacpan
lib/Astro/Montenbruck/Ephemeris/Planet/Jupiter.pm view on Meta::CPAN
package Astro::Montenbruck::Ephemeris::Planet::Jupiter;
use strict;
use warnings;
use base qw/Astro::Montenbruck::Ephemeris::Planet/;
use Math::Trig qw/:pi/;
use Astro::Montenbruck::Ephemeris::Pert qw/pert/;
use Astro::Montenbruck::MathUtils qw /frac ARCS/;
use Astro::Montenbruck::Ephemeris::Planet qw/$JU/;
our $VERSION = 0.01;
sub new {
my $class = shift;
$class->SUPER::new( id => $JU);
}
sub heliocentric {
my ($self, $t) = @_;
# Mean anomalies of planets in [rad]
my $m5 = pi2 * frac ( 0.0565314 + 8.4302963 * $t );
my $m6 = pi2 * frac ( 0.8829867 + 3.3947688 * $t );
my $m7 = pi2 * frac ( 0.3969537 + 1.1902586 * $t );
my ($dl, $dr, $db) = (0, 0, 0); # Corrections in longitude ["],
my $pert_cb = sub { $dl += $_[0]; $dr += $_[1]; $db += $_[2] };
# Perturbations by Saturn
my $term = pert(
T => $t,
M => $m5,
m => $m6,
I_min =>-1,
I_max => 5,
i_min =>-10,
i_max =>-0,
callback => $pert_cb
);
$term->(-1, -1,0, -0.2, 1.4, 2.0, 0.6, 0.1, -0.2);
$term->( 0, -1,0, 9.4, 8.9, 3.9, -8.3, -0.4, -1.4);
$term->( 0, -2,0, 5.6, -3.0, -5.4, -5.7, -2.0, 0.0);
$term->( 0, -3,0, -4.0, -0.1, 0.0, 5.5, 0.0, 0.0);
$term->( 0, -5,0, 3.3, -1.6, -1.6, -3.1, -0.5, -1.2);
$term->( 1, 0,0,-113.1,19998.6,-25208.2,-142.2,-4670.7,288.9);
$term->( 1, 0,1, -76.1, 66.9, -84.2, -95.8, 21.6, 29.4);
$term->( 1, 0,2, -0.5, -0.3, 0.4, -0.7, 0.1, -0.1);
$term->( 1, -1,0, 78.8, -14.5, 11.5, 64.4, -0.2, 0.2);
$term->( 1, -2,0, -2.0, -132.4, 28.8, 4.3, -1.7, 0.4);
$term->( 1, -2,1, -1.1, -0.7, 0.2, -0.3, 0.0, 0.0);
$term->( 1, -3,0, -7.5, -6.8, -0.4, -1.1, 0.6, -0.9);
$term->( 1, -4,0, 0.7, 0.7, 0.6, -1.1, 0.0, -0.2);
$term->( 1, -5,0, 51.5, -26.0, -32.5, -64.4, -4.9,-12.4);
$term->( 1, -5,1, -1.2, -2.2, -2.7, 1.5, -0.4, 0.3);
$term->( 2, 0,0, -3.4, 632.0, -610.6, -6.5, -226.8, 12.7);
$term->( 2, 0,1, -4.2, 3.8, -4.1, -4.5, 0.2, 0.6);
$term->( 2, -1,0, 5.3, -0.7, 0.7, 6.1, 0.2, 1.1);
$term->( 2, -2,0, -76.4, -185.1, 260.2,-108.0, 1.6, 0.0);
$term->( 2, -3,0, 66.7, 47.8, -51.4, 69.8, 0.9, 0.3);
$term->( 2, -3,1, 0.6, -1.0, 1.0, 0.6, 0.0, 0.0);
$term->( 2, -4,0, 17.0, 1.4, -1.8, 9.6, 0.0, -0.1);
$term->( 2, -5,0,1066.2, -518.3, -1.3, -23.9, 1.8, -0.3);
$term->( 2, -5,1, -25.4, -40.3, -0.9, 0.3, 0.0, 0.0);
$term->( 2, -5,2, -0.7, 0.5, 0.0, 0.0, 0.0, 0.0);
$term->( 3, 0,0, -0.1, 28.0, -22.1, -0.2, -12.5, 0.7);
$term->( 3, -2,0, -5.0, -11.5, 11.7, -5.4, 2.1, -1.0);
$term->( 3, -3,0, 16.9, -6.4, 13.4, 26.9, -0.5, 0.8);
$term->( 3, -4,0, 7.2, -13.3, 20.9, 10.5, 0.1, -0.1);
$term->( 3, -5,0, 68.5, 134.3, -166.9, 86.5, 7.1, 15.2);
$term->( 3, -5,1, 3.5, -2.7, 3.4, 4.3, 0.5, -0.4);
$term->( 3, -6,0, 0.6, 1.0, -0.9, 0.5, 0.0, 0.0);
$term->( 3, -7,0, -1.1, 1.7, -0.4, -0.2, 0.0, 0.0);
$term->( 4, 0,0, 0.0, 1.4, -1.0, 0.0, -0.6, 0.0);
( run in 1.376 second using v1.01-cache-2.11-cpan-d80b1682f3f )