view release on metacpan or search on metacpan
lib/Astro/Montenbruck/Ephemeris/Planet/Mars.pm view on Meta::CPAN
$term->( 1, 0, 0, -5.32, 38481.97, -141856.04, 0.40, -6321.67, 1876.89 );
$term->( 1, 0, 1, -1.12, 37.98, -138.67, -2.93, 37.28, 117.48 );
$term->( 1, 0, 2, -0.32, -0.03, 0.12, -1.19, 1.04, -0.40 );
$term->( 2, 0, 0, 28.28, 2285.80, -6608.37, 0.00, -589.35, 174.81 );
$term->( 2, 0, 1, 1.64, 3.37, -12.93, 0.00, 2.89, 11.10 );
$term->( 2, 0, 2, 0.00, 0.00, 0.00, 0.00, 0.10, -0.03 );
$term->( 3, 0, 0, 5.31, 189.29, -461.81, 0.00, -61.98, 18.53 );
$term->( 3, 0, 1, 0.31, 0.35, -1.36, 0.00, 0.25, 1.19 );
$term->( 4, 0, 0, 0.81, 17.96, -38.26, 0.00, -6.88, 2.08 );
$term->( 4, 0, 1, 0.05, 0.04, -0.15, 0.00, 0.02, 0.14 );
$term->( 5, 0, 0, 0.11, 1.83, -3.48, 0.00, -0.79, 0.24 );
$term->( 6, 0, 0, 0.02, 0.20, -0.34, 0.00, -0.09, 0.03 );
$term->( -1, -1, 0, 0.09, 0.06, 0.14, -0.22, 0.02, -0.02 );
$term->( 0, -1, 0, 0.72, 0.49, 1.55, -2.31, 0.12, -0.10 );
$term->( 1, -1, 0, 7.00, 4.92, 13.93, -20.48, 0.08, -0.13 );
$term->( 2, -1, 0, 13.08, 4.89, -4.53, 10.01, -0.05, 0.13 );
$term->( 2, -2, 0, 0.14, 0.05, -0.48, -2.66, 0.01, 0.14 );
$term->( 3, -1, 0, 1.38, 0.56, -2.00, 4.85, -0.01, 0.19 );
$term->( 3, -2, 0, -6.85, 2.68, 8.38, 21.42, 0.00, 0.03 );
$term->( 3, -3, 0, -0.08, 0.20, 1.20, 0.46, 0.00, 0.00 );
$term->( 4, -1, 0, 0.16, 0.07, -0.19, 0.47, -0.01, 0.05 );
lib/Astro/Montenbruck/Ephemeris/Planet/Mars.pm view on Meta::CPAN
I_max => 5,
i_min => -5,
i_max => -1,
callback => $pert_cb
);
$term->( -2, -1, 0, 0.05, 0.03, 0.08, -0.14, 0.01, -0.01 );
$term->( -1, -1, 0, 0.39, 0.27, 0.92, -1.50, -0.03, -0.06 );
$term->( -1, -2, 0, -0.16, 0.03, 0.13, 0.67, -0.01, 0.06 );
$term->( -1, -3, 0, -0.02, 0.01, 0.05, 0.09, 0.00, 0.01 );
$term->( 0, -1, 0, 3.56, 1.13, -5.41, -7.18, -0.25, -0.24 );
$term->( 0, -2, 0, -1.44, 0.25, 1.24, 7.96, 0.02, 0.31 );
$term->( 0, -3, 0, -0.21, 0.11, 0.55, 1.04, 0.01, 0.05 );
$term->( 0, -4, 0, -0.02, 0.02, 0.11, 0.11, 0.00, 0.01 );
$term->( 1, -1, 0, 16.67, -19.15, 61.00, 53.36, -0.06, -0.07 );
$term->( 1, -2, 0, -21.64, 3.18, -7.77, -54.64, -0.31, 0.50 );
$term->( 1, -3, 0, -2.82, 1.45, -2.53, -5.73, 0.01, 0.07 );
$term->( 1, -4, 0, -0.31, 0.28, -0.34, -0.51, 0.00, 0.00 );
$term->( 2, -1, 0, 2.15, -2.29, 7.04, 6.94, 0.33, 0.19 );
$term->( 2, -2, 0, -15.69, 3.31, -15.70, -73.17, -0.17, -0.25 );
$term->( 2, -3, 0, -1.73, 1.95, -9.19, -7.20, 0.02, -0.03 );
lib/Astro/Montenbruck/Ephemeris/Planet/Mercury.pm view on Meta::CPAN
$term->( 4, 0, 0, -77.64, 332.63, -219.23, 0.00, 124.40, 237.03 );
$term->( 4, 0, 1, -0.70, 1.10, -0.08, 0.00, 1.59, -0.59 );
$term->( 5, 0, 0, -23.59, 67.28, -43.54, 0.00, 29.44, 58.77 );
$term->( 5, 0, 1, -0.23, 0.32, -0.02, 0.00, 0.39, -0.11 );
$term->( 6, 0, 0, -6.86, 14.06, -9.18, 0.00, 7.03, 14.84 );
$term->( 6, 0, 1, -0.07, 0.09, -0.01, 0.00, 0.10, -0.02 );
$term->( 7, 0, 0, -1.94, 2.98, -2.02, 0.00, 1.69, 3.80 );
$term->( 8, 0, 0, -0.54, 0.63, -0.46, 0.00, 0.41, 0.98 );
$term->( 9, 0, 0, -0.15, 0.13, -0.11, 0.00, 0.10, 0.25 );
$term->( -1, -2, 0, -0.17, -0.06, -0.05, 0.14, -0.06, -0.07 );
$term->( 0, -1, 0, 0.24, -0.16, -0.11, -0.16, 0.04, -0.01 );
$term->( 0, -2, 0, -0.68, -0.25, -0.26, 0.73, -0.16, -0.18 );
$term->( 0, -5, 0, 0.37, 0.08, 0.06, -0.28, 0.13, 0.12 );
$term->( 1, -1, 0, 0.58, -0.41, 0.26, 0.36, 0.01, -0.01 );
$term->( 1, -2, 0, -3.51, -1.23, 0.23, -0.63, -0.05, -0.06 );
$term->( 1, -3, 0, 0.08, 0.53, -0.11, 0.04, 0.02, -0.09 );
$term->( 1, -5, 0, 1.44, 0.31, 0.30, -1.39, 0.34, 0.29 );
$term->( 2, -1, 0, 0.15, -0.11, 0.09, 0.12, 0.02, -0.04 );
$term->( 2, -2, 0, -1.99, -0.68, 0.65, -1.91, -0.20, 0.03 );
$term->( 2, -3, 0, -0.34, -1.28, 0.97, -0.26, 0.03, 0.03 );
$term->( 2, -4, 0, -0.33, 0.35, -0.13, -0.13, -0.01, 0.00 );
$term->( 2, -5, 0, 7.19, 1.56, -0.05, 0.12, 0.06, 0.05 );
$term->( 3, -2, 0, -0.52, -0.18, 0.13, -0.39, -0.16, 0.03 );
$term->( 3, -3, 0, -0.11, -0.42, 0.36, -0.10, -0.05, -0.05 );
$term->( 3, -4, 0, -0.19, 0.22, -0.23, -0.20, -0.01, 0.02 );
$term->( 3, -5, 0, 2.77, 0.49, -0.45, 2.56, 0.40, -0.12 );
$term->( 4, -5, 0, 0.67, 0.12, -0.09, 0.47, 0.24, -0.08 );
$term->( 5, -5, 0, 0.18, 0.03, -0.02, 0.12, 0.09, -0.03 );
# Perturbations by the Earth
$term = pert(
T => $t,
M => $m1,
m => $m3,
I_min => 0,
I_max => 2,
i_min => -4,
lib/Astro/Montenbruck/Ephemeris/Planet/Moon.pm view on Meta::CPAN
my $s4 = sine( 0.34734 - 5.37261 * $t );
my $s5 = sine( 0.10498 - 5.37899 * $t );
my $s6 = sine( 0.42681 - 0.41855 * $t );
my $s7 = sine( 0.14943 - 5.37511 * $t );
my $dl0 =
0.84 * $s1 +
0.31 * $s2 +
14.27 * $s3 +
7.26 * $s4 +
0.28 * $s5 +
0.24 * $s6;
my $dl =
2.94 * $s1 +
0.31 * $s2 +
14.27 * $s3 +
9.34 * $s4 +
1.12 * $s5 +
0.83 * $s6;
my $dls = -6.40 * $s1 - 1.89 * $s6;
my $df =
0.21 * $s1 +
0.31 * $s2 +
14.27 * $s3 -
88.70 * $s4 -
15.30 * $s5 +
0.24 * $s6 -
1.86 * $s7;
my $dd = $dl0 - $dls;
my $dgam =
-3332e-9 * sine( 0.59734 - 5.37261 * $t ) -
539e-9 * sine( 0.35498 - 5.37899 * $t ) -
64e-9 * sine( 0.39943 - 5.37511 * $t );
$dl0, $dl, $dls, $df, $dd, $dgam;
}
lib/Astro/Montenbruck/Ephemeris/Planet/Moon.pm view on Meta::CPAN
$dls / ARCS;
$f = pi2 * frac( 0.25909118 + 1342.22782980 * $t - 0.00000892 * $t2 ) +
$df / ARCS;
$d = pi2 * frac( 0.82736186 + 1236.85308708 * $t - 0.00000397 * $t2 ) +
$dd / ARCS;
for my $i ( 1 .. 4 ) {
my ( $arg, $max, $fac ) = (
sub { $l, 4, 1.000002208 },
sub { $ls, 3, 0.997504612 - 0.002495388 * $t },
sub { $f, 4, 1.000002708 + 139.978 * $dgam },
sub { $d, 6, 1.0 }
)[ $i - 1 ]->();
$co{0}->{$i} = 1.0;
$co{1}->{$i} = cos($arg) * $fac;
$si{0}->{$i} = 0.0;
$si{1}->{$i} = sin($arg) * $fac;
for ( 2 .. $max ) {
lib/Astro/Montenbruck/Ephemeris/Planet/Moon.pm view on Meta::CPAN
$addsol->( 147.687, 138.76, +0.679, +1.1528, 1, -1, 0, 0 );
$addsol->( -1.089, 0.55, +0.021, 0.0, 1, -1, 0, -1 );
$addsol->( 28.475, 23.59, -0.443, -0.2257, 1, -1, 0, -2 );
$addsol->( -0.276, -0.38, -0.006, -0.0036, 1, -1, 0, -3 );
$addsol->( 0.636, 2.27, +0.146, -0.0102, 1, -1, 0, -4 );
$addsol->( -0.189, -1.68, +0.131, -0.0028, 0, 2, 0, 2 );
$addsol->( -7.486, -0.66, -0.037, -0.0086, 0, 2, 0, 0 );
$addsol->( -8.096, -16.35, -0.740, 0.0918, 0, 2, 0, -2 );
$addsol->( -5.741, -0.04, 0.0, -0.0009, 0, 0, 2, 2 );
$addsol->( 0.255, 0.0, 0.0, 0.0, 0, 0, 2, 1 );
$addsol->( -411.608, -0.20, 0.0, -0.0124, 0, 0, 2, 0 );
$addsol->( 0.584, 0.84, 0.0, +0.0071, 0, 0, 2, -1 );
$addsol->( -55.173, -52.14, 0.0, -0.1052, 0, 0, 2, -2 );
$addsol->( 0.254, 0.25, 0.0, -0.0017, 0, 0, 2, -3 );
$addsol->( +0.025, -1.67, 0.0, +0.0031, 0, 0, 2, -4 );
$addsol->( 1.060, 2.96, -0.166, 0.0243, 3, 0, 0, +2 );
$addsol->( 36.124, 50.64, -1.300, 0.6215, 3, 0, 0, 0 );
$addsol->( -13.193, -16.40, +0.258, -0.1187, 3, 0, 0, -2 );
$addsol->( -1.187, -0.74, +0.042, 0.0074, 3, 0, 0, -4 );
$addsol->( -0.293, -0.31, -0.002, 0.0046, 3, 0, 0, -6 );
$addsol->( -0.290, -1.45, +0.116, -0.0051, 2, 1, 0, 2 );
$addsol->( -7.649, -10.56, +0.259, -0.1038, 2, 1, 0, 0 );
$addsol->( -8.627, -7.59, +0.078, -0.0192, 2, 1, 0, -2 );
$addsol->( -2.740, -2.54, +0.022, 0.0324, 2, 1, 0, -4 );
$addsol->( 1.181, 3.32, -0.212, 0.0213, 2, -1, 0, +2 );
$addsol->( 9.703, 11.67, -0.151, 0.1268, 2, -1, 0, 0 );
$addsol->( -0.352, -0.37, +0.001, -0.0028, 2, -1, 0, -1 );
$addsol->( -2.494, -1.17, -0.003, -0.0017, 2, -1, 0, -2 );
$addsol->( 0.360, 0.20, -0.012, -0.0043, 2, -1, 0, -4 );
$addsol->( -1.167, -1.25, +0.008, -0.0106, 1, 2, 0, 0 );
$addsol->( -7.412, -6.12, +0.117, 0.0484, 1, 2, 0, -2 );
$addsol->( -0.311, -0.65, -0.032, 0.0044, 1, 2, 0, -4 );
$addsol->( +0.757, 1.82, -0.105, 0.0112, 1, -2, 0, 2 );
$addsol->( +2.580, 2.32, +0.027, 0.0196, 1, -2, 0, 0 );
lib/Astro/Montenbruck/Ephemeris/Planet/Moon.pm view on Meta::CPAN
my $planetary = sub {
$dlam +=
+0.82 * sine( 0.7736 - 62.5512 * $t ) +
0.31 * sine( 0.0466 - 125.1025 * $t ) +
0.35 * sine( 0.5785 - 25.1042 * $t ) +
0.66 * sine( 0.4591 + 1335.8075 * $t ) +
0.64 * sine( 0.3130 - 91.5680 * $t ) +
1.14 * sine( 0.1480 + 1331.2898 * $t ) +
0.21 * sine( 0.5918 + 1056.5859 * $t ) +
0.44 * sine( 0.5784 + 1322.8595 * $t ) +
0.24 * sine( 0.2275 - 5.7374 * $t ) +
0.28 * sine( 0.2965 + 2.6929 * $t ) +
0.33 * sine( 0.3132 + 6.3368 * $t );
};
#
# start
#
$init->();
$solar_1->();
$solar_2->();
lib/Astro/Montenbruck/Ephemeris/Planet/Pluto.pm view on Meta::CPAN
T => $t,
M => $m9,
m => $m5,
I_min => 0,
I_max => 6,
i_min => -2,
i_max => 1,
callback => $pert_cb
);
$term->( 1, 0, 0, 0.06, 100924.08, -960396.0, 15965.1, 51987.68, -24288.76 );
$term->( 2, 0, 0, 3274.74, 17835.12, -118252.2, 3632.4, 12687.49, -6049.72 );
$term->( 3, 0, 0, 1543.52, 4631.99, -21446.6, 1167.0, 3504.00, -1853.10 );
$term->( 4, 0, 0, 688.99, 1227.08, -4823.4, 213.5, 1048.19, -648.26 );
$term->( 5, 0, 0, 242.27, 415.93, -1075.4, 140.6, 302.33, -209.76 );
$term->( 6, 0, 0, 138.41, 110.91, -308.8, -55.3, 109.52, -93.82 );
$term->( 3, -1, 0, -0.99, 5.06, -25.6, 19.8, 1.26, -1.96 );
$term->( 2, -1, 0, 7.15, 5.61, -96.7, 57.2, 1.64, -2.16 );
$term->( 1, -1, 0, 10.79, 23.13, -390.4, 236.4, -0.33, 0.86 );
$term->( 0, 1, 0, -0.23, 4.43, 102.8, 63.2, 3.15, 0.34 );
$term->( 1, 1, 0, -1.10, -0.92, 11.8, -2.3, 0.43, 0.14 );
lib/Astro/Montenbruck/Ephemeris/Planet/Pluto.pm view on Meta::CPAN
i_min => -2,
i_max => 1,
callback => $pert_cb
);
$term->( 1, -1, 0, -29.47, 75.97, -106.4, -204.9, -40.71, -17.55 );
$term->( 0, 1, 0, -13.88, 18.20, 42.6, -46.1, 1.13, 0.43 );
$term->( 1, 1, 0, 5.81, -23.48, 15.0, -6.8, -7.48, 3.07 );
$term->( 2, 1, 0, -10.27, 14.16, -7.9, 0.4, 2.43, -0.09 );
$term->( 3, 1, 0, 6.86, -10.66, 7.3, -0.3, -2.25, 0.69 );
$term->( 2, -2, 0, 4.32, 2.00, 0.0, -2.2, -0.24, 0.12 );
$term->( 1, -2, 0, -5.04, -0.83, -9.2, -3.1, 0.79, -0.24 );
$term->( 0, -2, 0, 4.25, 2.48, -5.9, -3.3, 0.58, 0.02 );
# Perturbations by Pluto and Saturn
my $phi = ( $m5 - $m6 );
my $c = cos($phi);
my $s = sin($phi);
$dl += -9.11 * $c + 0.12 * $s;
$dr += -3.4 * $c - 3.3 * $s;
$db += +0.81 * $c + 0.78 * $s;
lib/Astro/Montenbruck/Ephemeris/Planet/Saturn.pm view on Meta::CPAN
}
# 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
lib/Astro/Montenbruck/Ephemeris/Planet/Venus.pm view on Meta::CPAN
$term->( 1, 0, 0, 2.37, 2793.23, -4899.07, 0.11, 9995.27, 7027.22 );
$term->( 1, 0, 1, 0.10, -19.65, 34.40, 0.22, 64.95, -86.10 );
$term->( 1, 0, 2, 0.06, 0.04, -0.07, 0.11, -0.55, -0.07 );
$term->( 2, 0, 0, -170.42, 73.13, -16.59, 0.00, 67.71, 47.56 );
$term->( 2, 0, 1, 0.93, 2.91, 0.23, 0.00, -0.03, -0.92 );
$term->( 3, 0, 0, -2.31, 0.90, -0.08, 0.00, 0.04, 2.09 );
$term->( 1, -1, 0, -2.38, -4.27, 3.27, -1.82, 0.00, 0.00 );
$term->( 1, -2, 0, 0.09, 0.00, -0.08, 0.05, -0.02, -0.25 );
$term->( 2, -2, 0, -9.57, -5.93, 8.57, -13.83, -0.01, -0.01 );
$term->( 2, -3, 0, -2.47, -2.40, 0.83, -0.95, 0.16, 0.24 );
$term->( 3, -2, 0, -0.09, -0.05, 0.08, -0.13, -0.28, 0.12 );
$term->( 3, -3, 0, 7.12, 0.32, -0.62, 13.76, -0.07, 0.01 );
$term->( 3, -4, 0, -0.65, -0.17, 0.18, -0.73, 0.10, 0.05 );
$term->( 3, -5, 0, -1.08, -0.95, -0.17, 0.22, -0.03, -0.03 );
$term->( 4, -3, 0, 0.06, 0.00, -0.01, 0.08, 0.14, -0.18 );
$term->( 4, -4, 0, 0.93, -0.46, 1.06, 2.13, -0.01, 0.01 );
$term->( 4, -5, 0, -1.53, 0.38, -0.64, -2.54, 0.27, 0.00 );
$term->( 4, -6, 0, -0.17, -0.05, 0.03, -0.11, 0.02, 0.00 );
$term->( 5, -5, 0, 0.18, -0.28, 0.71, 0.47, -0.02, 0.04 );
$term->( 5, -6, 0, 0.15, -0.14, 0.30, 0.31, -0.04, 0.03 );
lib/Astro/Montenbruck/Ephemeris/Planet/Venus.pm view on Meta::CPAN
M => $m2,
m => $m6,
I_min => 0,
I_max => 1,
i_min => -1,
i_max => -1,
callback => $pert_cb
);
$term->( 0, -1, 0, 0.00, 0.21, 0.00, 0.00, 0.00, -0.01 );
$term->( 1, -1, 0, -0.11, -0.14, 0.24, -0.20, 0.01, 0.00 );
# Ecliptic coordinates ([rad],[AU])
$dl +=
+2.74 * sin( pi2 * ( 0.0764 + 0.4174 * $t ) ) +
0.27 * sin( pi2 * ( 0.9201 + 0.3307 * $t ) );
$dl += +1.9 + 1.8 * $t;
my $l =
pi2 *
frac( 0.3654783 + $m2 / pi2 +
t/11-time.t view on Meta::CPAN
}
{
my ($y, $m, $d) = jd2cal($jj, gregorian => 0);
cmp_ok($d, '==', 10, "Output old-style date")
or diag("Old-style day should be 10, got $d instead");
}
};
subtest "JD at midnight" => sub {
plan tests => 4;
cmp_ok( 2438791.5, '==', jd0(2438792.0), "At previous noon");
cmp_ok( 2438792.5, '==', jd0(2438792.9), "Close to current noon");
cmp_ok( 2438792.5, '==', jd0(2438793.0), "At noon");
cmp_ok( 2438793.5, '==', jd0(2438793.5), "At midnight");
};
subtest "T" => sub {
plan tests => 2;
{
my $exp = -0.070321697467488022970095;
my $jd = 2448976.5;
my $got = jd_cent($jd);
delta_ok($exp, $got, "JD $jd -> T, epoch 2000")
or diag("Expected: T $exp. got: $got");