Condition Coverage

blib/lib/Astro/Coord/ECI/TLE.pm
Criterion Covered Total %
condition 136 269 50.5


and 3 conditions

line !l l&&!r l&&r condition
736 0 59 0 ref $self and $self->{'debug'}
1286 7 1 36 $line =~ / \A 1 (\s* [0-9]+) /msx and length $1 == 6
1291 44 0 0 length $line > 79 and substr($line, 79, 1) eq "G"
1294 0 0 44 $line =~ /^1(\s*[0-9]+)/ and length $1 == 6
1305 0 0 44 $line =~ /^2(\s*[0-9]+)/ and length $1 == 6
1640 13 0 1 defined $pass_threshold and $pass_threshold > $horizon
1710 3514 415 37524 $want_visible and not @info
3929 8720 28804 $want_visible and not @info and not $dawn
9135 34 28770 $want_visible and not @info and not $dawn and $time < $sun_screen
1732 114 549 0 @info and $elev < $effective_horizon
663 0 0 @info and $elev < $effective_horizon and $info[-1]{'elevation'} >= $effective_horizon
647 14 2 $truncate and $time >= $pass_end
1746 110 2 1 $truncate and $time < $pass_start
1753 0 0 0 1 == $litup and not $tle->illuminated($time)
1886 0 171 48 1 == $litup and not $tle->illuminated($time)
1921 0 128 154 1 == $litup and not $tle->illuminated($_[0])
1988 6 13 1 $pass_variant & 2 and not grep({$_->{'event'} == "max";} @info)
2036 1 0 1 $info[-1]{'elevation'} > $effective_horizon and $info[-1]{'time'} >= $pass_end
2163 0 15 35 $elev > $screening_horizon && (!$want_visible || $litup == 1 && $sun_elev_from_sat >= $min_sun_elev_from_sat)
2168 0 329 86 $litup == 1 and $sun_elev_from_sat < 0
2240 1 0 15 defined $smallest and $angle > $smallest
4484 4 0 0 $xnq < "0.0052359877" and $xnq > "0.0034906585"
4799 0 0 0 $t >= 0 and $dpsp->{'atime'} < 0
0 0 0 $t < 0 and $dpsp->{'atime'} >= 0
4950 4 8 2 defined $dpsp->{'savtsn'} and abs $dpsp->{'savtsn'} - $t < 30
5737 15 2 6 $init->{'xn'} < "0.0052359877" and $init->{'xn'} > "0.0034906585"
5740 9 8 6 $init->{'xn'} >= "0.00826" and $init->{'xn'} <= "0.00924"
17 1 5 $init->{'xn'} >= "0.00826" and $init->{'xn'} <= "0.00924" and $init->{'eccm'} >= "0.5"
6083 0 0 0 $t >= 0 and $$atime < 0
0 0 0 $t < 0 and $$atime >= 0
6861 18816 0 56901 $temp >= "1e-12" and $iter < 10
7437 0 0 0 defined $val and $val ne ""
7447 0 0 0 defined $lines[$line] and $lines[$line] =~ / \S /msx
7533 0 0 0 defined $frac and $frac ne "."
7678 0 0 0 $@ and warn $@
7982 0 13 31 defined $val and $val =~ / \S /msx
8121 0 3 0 defined $value and not _looks_like_real($value)
8137 0 0 0 defined $value and $value =~ / [^0-9] /msx

or 2 conditions

line l !l condition
2414 50 2 $model_map{shift() or $self->{'model'}} || \&Astro::Coord::ECI::TLE::_period
2499 0 87 $status{$id} || 'tle'
2660 0 0 $status ||= 0
2664 0 0 $name ||= ""
2665 0 0 $comment ||= ""
7234 0 0 $args{'date_format'} || '%d-%b-%Y %H:%M:%S'
7240 0 0 $self->get('name') || 'unspecified'
7428 0 0 $rslt ||= {}
7558 0 0 $hash->{'astro_coord_eci_class'} || 'Astro::Coord::ECI::TLE'
7571 0 0 $attrs ||= {}

or 3 conditions

line l !l&&r !l&&!r condition
568 4 4 0 $$self{&TLE_INIT}{'TLE_apoapsis'} ||= (1 + $self->get("eccentricity")) * $self->semimajor
661 1 2 8 $name =~ / \b deb \b /imsx or $name =~ / \b debris \b /imsx
3 1 7 $name =~ / \b deb \b /imsx or $name =~ / \b debris \b /imsx or $name =~ / \b coolant \b /imsx
3 1 6 $name =~ / \b deb \b /imsx or $name =~ / \b debris \b /imsx or $name =~ / \b coolant \b /imsx or $name =~ / \b shroud \b /imsx
2 1 5 $name =~ / \b deb \b /imsx or $name =~ / \b debris \b /imsx or $name =~ / \b coolant \b /imsx or $name =~ / \b shroud \b /imsx or $name =~ / \b westford \s+ needles \b /imsx
667 1 2 2 $name =~ m[ \b r/b \b ]imsx or $name =~ / \b [ap] km \b /imsx
1732 12020 0 663 $elev < $screening_horizon or @info and $elev < $effective_horizon and $info[-1]{'elevation'} >= $effective_horizon
0 2 661 $elev < $screening_horizon or @info and $elev < $effective_horizon and $info[-1]{'elevation'} >= $effective_horizon or $truncate and $time >= $pass_end
1881 73 0 146 not $suntim or $time >= $suntim
1952 13 34 3 not $want_visible or $event->{'illumination'} == "lit"
1982 58 0 12 $_->{'illumination'} == "lit" or $_->{'event'} == "shdw"
2163 365 35 15 $visible ||= $elev > $screening_horizon && (!$want_visible || $litup == 1 && $sun_elev_from_sat >= $min_sun_elev_from_sat)
2365 4 4 0 $$self{&TLE_INIT}{'TLE_periapsis'} ||= (1 - $self->get("eccentricity")) * $self->semimajor
2425 0 2 0 $$self{&TLE_INIT}{'TLE_period'} ||= do { my $a1 = ("0.0743669161" / $self->{'meanmotion'}) ** "0.666666666666667"; my $temp = "0.000811962" * (3 * cos($self->{'inclination'}) ** 2 - 1) / (1 - $self->{'eccentricity'} * $self->{'eccentricity'}) ** "1.5"; my $del1 = $temp / ($a1 * $a1); my $a0 = $a1 * (1 - $del1 * ("0.333333333333333" + $del1 * (1 + "1.65432098765432" * $del1))); my $del0 = $temp / ($a0 * $a0); my $xnodp = $self->{'meanmotion'} / (1 + $del0); "6.28318530717959" / $xnodp * 60 }
2445 18 32 0 $$self{&TLE_INIT}{'TLE_sgp4r'} ||= $self->_r_sgp4init
2502 0 0 0 $args[0]{'class'} || $args[0]{'type'}
2541 8 4 0 $$self{&TLE_INIT}{'TLE_semimajor'} ||= do { my $to2pi = $self->period / "6.28318530717959"; exp log($to2pi * $to2pi * $mu) / 3 }
2561 0 0 0 $$self{&TLE_INIT}{'TLE_semiminor'} ||= do { my $e = $self->get("eccentricity"); $self->semimajor * sqrt(1 - $e * $e) }
2600 1067 4 163 $clear ||= $attrib{$name}
2656 0 0 0 $type_map{$type} || $type
2679 0 0 0 $type_map{$type} || $type
2768 5 2 0 $$self{&TLE_INIT}{'TLE_sgp'} ||= do { croak("Error - The SGP model is not valid for deep space objects.\n Use the SDP4, SDP4R, or SDP8 models instead.\n") if $self->is_deep; my $c1 = "0.000811962"; my $c2 = "0.000135327"; my $c3 = "0.000270654"; my $c4 = "-0.00117253486000576"; my $cosi0 = cos $self->{'inclination'}; my $sini0 = sin $self->{'inclination'}; my $a1 = ("0.0743669161" / $self->{'meanmotion'}) ** "0.666666666666667"; my $d1 = $c1 / $a1 / $a1 * (3 * $cosi0 * $cosi0 - 1) / (1 - $self->{'eccentricity'} * $self->{'eccentricity'}) ** "1.5"; my $a0 = $a1 * (1 - "0.333333333333333" * $d1 - $d1 * $d1 - "1.65432098765432" * $d1 * $d1 * $d1); my $p0 = $a0 * (1 - $self->{'eccentricity'} * $self->{'eccentricity'}); my $q0 = $a0 * (1 - $self->{'eccentricity'}); my $xlo = $self->{'meananomaly'} + $self->{'argumentofperigee'} + $self->{'ascendingnode'}; my $d10 = $c3 * $sini0 * $sini0; my $d20 = $c2 * (7 * $cosi0 * $cosi0 - 1); my $d30 = $c1 * $cosi0; my $d40 = $d30 * $sini0; my $po2no = $self->{'meanmotion'} / ($p0 * $p0); my $omgdt = $c1 * $po2no * (5 * $cosi0 * $cosi0 - 1); my $xnodot = -2 * $d30 * $po2no; my $c5 = "0.5" * $c4 * $sini0 * (3 + 5 * $cosi0) / (1 + $cosi0); my $c6 = $c4 * $sini0; warn "Debug sgp initialization -\n A0 = $a0\n C5 = $c5\n C6 = $c6\n D10 = $d10\n D20 = $d20\n D30 = $d30\n D40 = $d40\n OMGDT = $omgdt\n Q0 = $q0\n XLO = $xlo\n XNODOT = $xnodot\n" if $self->{'debug'}; +{"a0", $a0, "c5", $c5, "c6", $c6, "d10", $d10, "d20", $d20, "d30", $d30, "d40", $d40, "omgdt", $omgdt, "q0", $q0, "xlo", $xlo, "xnodot", $xnodot} }
2874 7 0 20 abs $tem5 < "1e-06" or $item3++ >= 10
2984 5 2 0 $$self{&TLE_INIT}{'TLE_sgp4'} ||= do { croak("Error - The SGP4 model is not valid for deep space objects.\n Use the SDP4, SDP4R or SDP8 models instead.\n") if $self->is_deep; my $a1 = ("0.0743669161" / $self->{'meanmotion'}) ** "0.666666666666667"; my $cosi0 = cos $self->{'inclination'}; my $theta2 = $cosi0 * $cosi0; my $x3thm1 = 3 * $theta2 - 1; my $eosq = $self->{'eccentricity'} * $self->{'eccentricity'}; my $beta02 = 1 - $eosq; my $beta0 = sqrt $beta02; my $del1 = "0.000811962" * $x3thm1 / ($a1 * $a1 * $beta0 * $beta02); my $a0 = $a1 * (1 - $del1 * ("0.333333333333333" + $del1 * (1 + "1.65432098765432" * $del1))); my $del0 = "0.000811962" * $x3thm1 / ($a0 * $a0 * $beta0 * $beta02); my $xnodp = $self->{'meanmotion'} / (1 + $del0); my $aodp = $a0 / (1 - $del0); my $isimp = $aodp * (1 - $self->{'eccentricity'}) / 1 < "1.03449284155948"; my $s4 = "1.01222928"; my $qoms24 = "1.88027916e-09"; my $perige = ($aodp * (1 - $self->{'eccentricity'}) - 1) * "6378.135"; unless ($perige >= 156) { $s4 = $perige > 98 ? $perige - 78 : 20; $qoms24 = ((120 - $s4) * 1 / "6378.135") ** 4; $s4 = $s4 / "6378.135" + 1; } ; my $pinvsq = 1 / ($aodp * $aodp * $beta02 * $beta02); my $tsi = 1 / ($aodp - $s4); my $eta = $aodp * $self->{'eccentricity'} * $tsi; my $etasq = $eta * $eta; my $eeta = $self->{'eccentricity'} * $eta; my $psisq = abs 1 - $etasq; my $coef = $qoms24 * $tsi ** 4; my $coef1 = $coef / $psisq ** "3.5"; my $c2 = $coef1 * $xnodp * ($aodp * (1 + "1.5" * $etasq + $eeta * (4 + $etasq)) + "0.000405981" * $tsi / $psisq * $x3thm1 * (8 + 3 * $etasq * (8 + $etasq))); my $c1 = $self->{'bstardrag'} * $c2; my $sini0 = sin $self->{'inclination'}; my $a3ovk2 = "0.00469013944002306"; my $c3 = $coef * $tsi * $a3ovk2 * $xnodp * 1 * $sini0 / $self->{'eccentricity'}; my $x1mth2 = 1 - $theta2; my $c4 = 2 * $xnodp * $coef1 * $aodp * $beta02 * ($eta * (2 + "0.5" * $etasq) + $self->{'eccentricity'} * ("0.5" + 2 * $etasq) - "0.001082616" * $tsi / ($aodp * $psisq) * (-3 * $x3thm1 * (1 - 2 * $eeta + $etasq * ("1.5" - "0.5" * $eeta)) + "0.75" * $x1mth2 * (2 * $etasq - $eeta * (1 + $etasq)) * cos(2 * $self->{'argumentofperigee'}))); my $c5 = 2 * $coef1 * $aodp * $beta02 * (1 + "2.75" * ($etasq + $eeta) + $eeta * $etasq); my $theta4 = $theta2 * $theta2; my $temp1 = "0.001623924" * $pinvsq * $xnodp; my $temp2 = $temp1 * "0.000541308" * $pinvsq; my $temp3 = "7.762359375e-07" * $pinvsq * $pinvsq * $xnodp; my $xmdot = $xnodp + "0.5" * $temp1 * $beta0 * $x3thm1 + "0.0625" * $temp2 * $beta0 * (13 - 78 * $theta2 + 137 * $theta4); my $x1m5th = 1 - 5 * $theta2; my $omgdot = "-0.5" * $temp1 * $x1m5th + "0.0625" * $temp2 * (7 - 114 * $theta2 + 395 * $theta4) + $temp3 * (3 - 36 * $theta2 + 49 * $theta4); my $xhdot1 = -$temp1 * $cosi0; my $xnodot = $xhdot1 + ("0.5" * $temp2 * (4 - 19 * $theta2) + 2 * $temp3 * (3 - 7 * $theta2)) * $cosi0; my $omgcof = $self->{'bstardrag'} * $c3 * cos($self->{'argumentofperigee'}); my $xmcof = "-0.666666666666667" * $coef * $self->{'bstardrag'} * 1 / $eeta; my $xnodcf = "3.5" * $beta02 * $xhdot1 * $c1; my $t2cof = "1.5" * $c1; my $xlcof = "0.125" * $a3ovk2 * $sini0 * (3 + 5 * $cosi0) / (1 + $cosi0); my $aycof = "0.25" * $a3ovk2 * $sini0; my $delmo = (1 + $eta * cos($self->{'meananomaly'})) ** 3; my $sinmo = sin $self->{'meananomaly'}; my $x7thm1 = 7 * $theta2 - 1; my($d2, $d3, $d4, $t3cof, $t4cof, $t5cof); unless ($isimp) { my $c1sq = $c1 * $c1; $d2 = 4 * $aodp * $tsi * $c1sq; my $temp = $d2 * $tsi * $c1 / 3; $d3 = (17 * $aodp + $s4) * $temp; $d4 = "0.5" * $temp * $aodp * $tsi * (221 * $aodp + 31 * $s4) * $c1; $t3cof = $d2 + 2 * $c1sq; $t4cof = "0.25" * (3 * $d3 * $c1 * (12 * $d2 + 10 * $c1sq)); $t5cof = "0.2" * (3 * $d4 + 12 * $c1 * $d3 + 6 * $d2 * $d2 + 15 * $c1sq * (2 * $d2 + $c1sq)); } ; print qq[Debug SGP4 - Initialize\n AODP = $aodp\n AYCOF = $aycof\n C1 = $c1\n C4 = $c4\n C5 = $c5\n COSIO = $cosi0\n D2 = @{[defined $d2 ? $d2 : "undef"];}\n D3 = @{[defined $d3 ? $d3 : "undef"];}\n D4 = @{[defined $d4 ? $d4 : "undef"];}\n DELMO = $delmo\n ETA = $eta\n ISIMP = $isimp\n OMGCOF = $omgcof\n OMGDOT = $omgdot\n SINIO = $sini0\n SINMO = $sinmo\n T2COF = @{[defined $t2cof ? $t2cof : "undef"];}\n T3COF = @{[defined $t3cof ? $t3cof : "undef"];}\n T4COF = @{[defined $t4cof ? $t4cof : "undef"];}\n T5COF = @{[defined $t5cof ? $t5cof : "undef"];}\n X1MTH2 = $x1mth2\n X3THM1 = $x3thm1\n X7THM1 = $x7thm1\n XLCOF = $xlcof\n XMCOF = $xmcof\n XMDOT = $xmdot\n XNODCF = $xnodcf\n XNODOT = $xnodot\n XNODP = $xnodp\n] if $self->{'debug'}; +{"aodp", $aodp, "aycof", $aycof, "c1", $c1, "c4", $c4, "c5", $c5, "cosi0", $cosi0, "d2", $d2, "d3", $d3, "d4", $d4, "delmo", $delmo, "eta", $eta, "isimp", $isimp, "omgcof", $omgcof, "omgdot", $omgdot, "sini0", $sini0, "sinmo", $sinmo, "t2cof", $t2cof, "t3cof", $t3cof, "t4cof", $t4cof, "t5cof", $t5cof, "x1mth2", $x1mth2, "x3thm1", $x3thm1, "x7thm1", $x7thm1, "xlcof", $xlcof, "xmcof", $xmcof, "xmdot", $xmdot, "xnodcf", $xnodcf, "xnodot", $xnodot, "xnodp", $xnodp} }
3190 0 2 5 $e > 1 or $e < -1
3333 5 2 0 $$self{&TLE_INIT}{'TLE_sdp4'} ||= do { croak("Error - The SDP4 model is not valid for near-earth objects.\n Use the SGP, SGP4, SGP4R, or SGP8 models instead.\n") unless $self->is_deep; my $a1 = ("0.0743669161" / $self->{'meanmotion'}) ** "0.666666666666667"; my $cosi0 = cos $self->{'inclination'}; my $theta2 = $cosi0 * $cosi0; my $x3thm1 = 3 * $theta2 - 1; my $eosq = $self->{'eccentricity'} * $self->{'eccentricity'}; my $beta02 = 1 - $eosq; my $beta0 = sqrt $beta02; my $del1 = "0.000811962" * $x3thm1 / ($a1 * $a1 * $beta0 * $beta02); my $a0 = $a1 * (1 - $del1 * ("0.333333333333333" + $del1 * (1 + "1.65432098765432" * $del1))); my $del0 = "0.000811962" * $x3thm1 / ($a0 * $a0 * $beta0 * $beta02); my $xnodp = $self->{'meanmotion'} / (1 + $del0); my $aodp = $a0 / (1 - $del0); my $s4 = "1.01222928"; my $qoms24 = "1.88027916e-09"; my $perige = ($aodp * (1 - $self->{'eccentricity'}) - 1) * "6378.135"; unless ($perige >= 156) { $s4 = $perige > 98 ? $perige - 78 : 20; $qoms24 = ((120 - $s4) * 1 / "6378.135") ** 4; $s4 = $s4 / "6378.135" + 1; } ; my $pinvsq = 1 / ($aodp * $aodp * $beta02 * $beta02); my $sing = sin $self->{'argumentofperigee'}; my $cosg = cos $self->{'argumentofperigee'}; my $tsi = 1 / ($aodp - $s4); my $eta = $aodp * $self->{'eccentricity'} * $tsi; my $etasq = $eta * $eta; my $eeta = $self->{'eccentricity'} * $eta; my $psisq = abs 1 - $etasq; my $coef = $qoms24 * $tsi ** 4; my $coef1 = $coef / $psisq ** "3.5"; my $c2 = $coef1 * $xnodp * ($aodp * (1 + "1.5" * $etasq + $eeta * (4 + $etasq)) + "0.000405981" * $tsi / $psisq * $x3thm1 * (8 + 3 * $etasq * (8 + $etasq))); my $c1 = $self->{'bstardrag'} * $c2; my $sini0 = sin $self->{'inclination'}; my $a3ovk2 = "0.00469013944002306"; my $x1mth2 = 1 - $theta2; my $c4 = 2 * $xnodp * $coef1 * $aodp * $beta02 * ($eta * (2 + "0.5" * $etasq) + $self->{'eccentricity'} * ("0.5" + 2 * $etasq) - "0.001082616" * $tsi / ($aodp * $psisq) * (-3 * $x3thm1 * (1 - 2 * $eeta + $etasq * ("1.5" - "0.5" * $eeta)) + "0.75" * $x1mth2 * (2 * $etasq - $eeta * (1 + $etasq)) * cos(2 * $self->{'argumentofperigee'}))); my $theta4 = $theta2 * $theta2; my $temp1 = "0.001623924" * $pinvsq * $xnodp; my $temp2 = $temp1 * "0.000541308" * $pinvsq; my $temp3 = "7.762359375e-07" * $pinvsq * $pinvsq * $xnodp; my $xmdot = $xnodp + "0.5" * $temp1 * $beta0 * $x3thm1 + "0.0625" * $temp2 * $beta0 * (13 - 78 * $theta2 + 137 * $theta4); my $x1m5th = 1 - 5 * $theta2; my $omgdot = "-0.5" * $temp1 * $x1m5th + "0.0625" * $temp2 * (7 - 114 * $theta2 + 395 * $theta4) + $temp3 * (3 - 36 * $theta2 + 49 * $theta4); my $xhdot1 = -$temp1 * $cosi0; my $xnodot = $xhdot1 + ("0.5" * $temp2 * (4 - 19 * $theta2) + 2 * $temp3 * (3 - 7 * $theta2)) * $cosi0; my $xnodcf = "3.5" * $beta02 * $xhdot1 * $c1; my $t2cof = "1.5" * $c1; my $xlcof = "0.125" * $a3ovk2 * $sini0 * (3 + 5 * $cosi0) / (1 + $cosi0); my $aycof = "0.25" * $a3ovk2 * $sini0; my $x7thm1 = 7 * $theta2 - 1; $$self{&TLE_INIT}{'TLE_deep'} = {$self->_dpinit($eosq, $sini0, $cosi0, $beta0, $aodp, $theta2, $sing, $cosg, $beta02, $xmdot, $omgdot, $xnodot, $xnodp)}; print qq[Debug SDP4 - Initialize\n AODP = $aodp\n AYCOF = $aycof\n C1 = $c1 << 2.45532e-06 in test_sgp-c-lib\n c2 = $c2 << 0.000171569 in test_sgp-c-lib\n C4 = $c4\n COSIO = $cosi0\n ETA = $eta\n OMGDOT = $omgdot\n s4 = $s4\n SINIO = $sini0\n T2COF = @{[defined $t2cof ? $t2cof : "undef"];} << 3.68298e-06 in test_sgp-c-lib\n X1MTH2 = $x1mth2\n X3THM1 = $x3thm1\n X7THM1 = $x7thm1\n XLCOF = $xlcof\n XMDOT = $xmdot\n XNODCF = $xnodcf << -1.40764e-11 in test_sgp-c-lib\n XNODOT = $xnodot\n XNODP = $xnodp\n] if $self->{'debug'}; +{"aodp", $aodp, "aycof", $aycof, "c1", $c1, "c4", $c4, "cosi0", $cosi0, "eta", $eta, "omgdot", $omgdot, "sini0", $sini0, "t2cof", $t2cof, "x1mth2", $x1mth2, "x3thm1", $x3thm1, "x7thm1", $x7thm1, "xlcof", $xlcof, "xmdot", $xmdot, "xnodcf", $xnodcf, "xnodot", $xnodot, "xnodp", $xnodp} }
3495 0 2 5 $e > 1 or $e < -1
3618 5 2 0 $$self{&TLE_INIT}{'TLE_sgp8'} ||= do { croak("Error - The SGP8 model is not valid for deep space objects.\n Use the SDP4, SGP4R, or SDP8 models instead.\n") if $self->is_deep; my $a1 = ("0.0743669161" / $self->{'meanmotion'}) ** "0.666666666666667"; my $cosi = cos $self->{'inclination'}; my $theta2 = $cosi * $cosi; my $tthmun = 3 * $theta2 - 1; my $eosq = $self->{'eccentricity'} * $self->{'eccentricity'}; my $beta02 = 1 - $eosq; my $beta0 = sqrt $beta02; my $del1 = "0.000811962" * $tthmun / ($a1 * $a1 * $beta0 * $beta02); my $a0 = $a1 * (1 - $del1 * ("0.333333333333333" + $del1 * (1 + "1.65432098765432" * $del1))); my $del0 = "0.000811962" * $tthmun / ($a0 * $a0 * $beta0 * $beta02); my $aodp = $a0 / (1 - $del0); my $xnodp = $self->{'meanmotion'} / (1 + $del0); my $b = 2 * $self->{'bstardrag'} / "0.15696615"; my $isimp = 0; my $po = $aodp * $beta02; my $pom2 = 1 / ($po * $po); my $sini = sin $self->{'inclination'}; my $sing = sin $self->{'argumentofperigee'}; my $cosg = cos $self->{'argumentofperigee'}; my $temp = "0.5" * $self->{'inclination'}; my $sinio2 = sin $temp; my $cosio2 = cos $temp; my $theta4 = $theta2 ** 2; my $unm5th = 1 - 5 * $theta2; my $unmth2 = 1 - $theta2; my $a3cof = "0.00469013944002306"; my $pardt1 = "0.001623924" * $pom2 * $xnodp; my $pardt2 = $pardt1 * "0.000541308" * $pom2; my $pardt4 = "7.762359375e-07" * $pom2 * $pom2 * $xnodp; my $xmdt1 = "0.5" * $pardt1 * $beta0 * $tthmun; my $xgdt1 = "-0.5" * $pardt1 * $unm5th; my $xhdt1 = -$pardt1 * $cosi; my $xlldot = $xnodp + $xmdt1 + "0.0625" * $pardt2 * $beta0 * (13 - 78 * $theta2 + 137 * $theta4); my $omgdt = $xgdt1 + "0.0625" * $pardt2 * (7 - 114 * $theta2 + 395 * $theta4) + $pardt4 * (3 - 36 * $theta2 + 49 * $theta4); my $xnodot = $xhdt1 + ("0.5" * $pardt2 * (4 - 19 * $theta2) + 2 * $pardt4 * (3 - 7 * $theta2)) * $cosi; my $tsi = 1 / ($po - "1.01222928"); my $eta = $self->{'eccentricity'} * "1.01222928" * $tsi; my $eta2 = $eta ** 2; my $psim2 = abs 1 / (1 - $eta2); my $alpha2 = 1 + $eosq; my $eeta = $self->{'eccentricity'} * $eta; my $cos2g = 2 * $cosg ** 2 - 1; my $d5 = $tsi * $psim2; my $d1 = $d5 / $po; my $d2 = 12 + $eta2 * (36 + "4.5" * $eta2); my $d3 = $eta2 * (15 + "2.5" * $eta2); my $d4 = $eta * (5 + "3.75" * $eta2); my $b1 = "0.000541308" * $tthmun; my $b2 = "-0.000541308" * $unmth2; my $b3 = $a3cof * $sini; my $c0 = "0.5" * $b * "0.15696615" * "1.88027916e-09" * $xnodp * $aodp * $tsi ** 4 * $psim2 ** "3.5" / sqrt($alpha2); my $c1 = "1.5" * $xnodp * $alpha2 ** 2 * $c0; my $c4 = $d1 * $d3 * $b2; my $c5 = $d5 * $d4 * $b3; my $xndt = $c1 * (2 + $eta2 * (3 + 34 * $eosq) + 5 * $eeta * (4 + $eta2) + "8.5" * $eosq + $d1 * $d2 * $b1 + $c4 * $cos2g + $c5 * $sing); my $xndtn = $xndt / $xnodp; my($ed, $edot, $gamma, $pp, $ovgpp, $qq, $xnd); if (abs $xndtn * 1440 < "0.00216") { $isimp = 1; $edot = "-0.666666666666667" * $xndtn * (1 - $self->{'eccentricity'}); } else { my $d6 = $eta * (30 + "22.5" * $eta2); my $d7 = $eta * (5 + "12.5" * $eta2); my $d8 = 1 + $eta2 * ("6.75" + $eta2); my $c8 = $d1 * $d7 * $b2; my $c9 = $d5 * $d8 * $b3; $edot = -$c0 * ($eta * (4 + $eta2 + $eosq * ("15.5" + 7 * $eta2)) + $self->{'eccentricity'} * (5 + 15 * $eta2) + $d1 * $d6 * $b1 + $c8 * $cos2g + $c9 * $sing); my $d20 = "0.333333333333333" * $xndtn; my $aldtal = $self->{'eccentricity'} * $edot / $alpha2; my $tsdtts = 2 * $aodp * $tsi * ($d20 * $beta02 + $self->{'eccentricity'} * $edot); my $etdt = ($edot + $self->{'eccentricity'} * $tsdtts) * $tsi * "1.01222928"; my $psdtps = -$eta * $etdt * $psim2; my $sin2g = 2 * $sing * $cosg; my $c0dtc0 = $d20 + 4 * $tsdtts - $aldtal - 7 * $psdtps; my $c1dtc1 = $xndtn + 4 * $aldtal + $c0dtc0; my $d9 = $eta * (6 + 68 * $eosq) + $self->{'eccentricity'} * (20 + 15 * $eta2); my $d10 = 5 * $eta * (4 + $eta2) + $self->{'eccentricity'} * (17 + 68 * $eta2); my $d11 = $eta * (72 + 18 * $eta2); my $d12 = $eta * (30 + 10 * $eta2); my $d13 = 5 + "11.25" * $eta2; my $d14 = $tsdtts - 2 * $psdtps; my $d15 = 2 * ($d20 + $self->{'eccentricity'} * $edot / $beta02); my $d1dt = $d1 * ($d14 + $d15); my $d2dt = $etdt * $d11; my $d3dt = $etdt * $d12; my $d4dt = $etdt * $d13; my $d5dt = $d5 * $d14; my $c4dt = $b2 * ($d1dt * $d3 + $d1 * $d3dt); my $c5dt = $b3 * ($d5dt * $d4 + $d5 * $d4dt); my $d16 = $d9 * $etdt + $d10 * $edot + $b1 * ($d1dt * $d2 + $d1 * $d2dt) + $c4dt * $cos2g + $c5dt * $sing + $xgdt1 * ($c5 * $cosg - 2 * $c4 * $sin2g); my $xnddt = $c1dtc1 * $xndt + $c1 * $d16; my $eddot = $c0dtc0 * $edot - $c0 * ((4 + 3 * $eta2 + 30 * $eeta + $eosq * ("15.5" + 21 * $eta2)) * $etdt + (5 + 15 * $eta2 + $eeta * (31 + 14 * $eta2)) * $edot + $b1 * ($d1dt * $d6 + $d1 * $etdt * (30 + "67.5" * $eta2)) + $b2 * ($d1dt * $d7 + $d1 * $etdt * (5 + "37.5" * $eta2)) * $cos2g + $b3 * ($d5dt * $d8 + $d5 * $etdt * $eta * ("13.5" + 4 * $eta2)) * $sing + $xgdt1 * ($c9 * $cosg - 2 * $c8 * $sin2g)); my $d25 = $edot ** 2; my $d17 = $xnddt / $xnodp - $xndtn ** 2; my $tsddts = 2 * $tsdtts * ($tsdtts - $d20) + $aodp * $tsi * ("0.666666666666667" * $beta02 * $d17 - 4 * $d20 * $self->{'eccentricity'} * $edot + 2 * ($d25 + $self->{'eccentricity'} * $eddot)); my $etddt = ($eddot + 2 * $edot * $tsdtts) * $tsi * "1.01222928" + $tsddts * $eta; my $d18 = $tsddts - $tsdtts ** 2; my $d19 = -$psdtps ** 2 / $eta2 - $eta * $etddt * $psim2 - $psdtps ** 2; my $d23 = $etdt * $etdt; my $d1ddt = $d1dt * ($d14 + $d15) + $d1 * ($d18 - 2 * $d19 + "0.666666666666667" * $d17 + 2 * ($alpha2 * $d25 / $beta02 + $self->{'eccentricity'} * $eddot) / $beta02); my $xntrdt = $xndt * ("1.33333333333333" * $d17 + 3 * ($d25 + $self->{'eccentricity'} * $eddot) / $alpha2 - 6 * $aldtal ** 2 + 4 * $d18 - 7 * $d19) + $c1dtc1 * $xnddt + $c1 * ($c1dtc1 * $d16 + $d9 * $etddt + $d10 * $eddot + $d23 * (6 + 30 * $eeta + 68 * $eosq) + $etdt * $edot * (40 + 30 * $eta2 + 272 * $eeta) + $d25 * (17 + 68 * $eta2) + $b1 * ($d1ddt * $d2 + 2 * $d1dt * $d2dt + $d1 * ($etddt * $d11 + $d23 * (72 + 54 * $eta2))) + $b2 * ($d1ddt * $d3 + 2 * $d1dt * $d3dt + $d1 * ($etddt * $d12 + $d23 * (30 + 30 * $eta2))) * $cos2g + $b3 * (($d5dt * $d14 + $d5 * ($d18 - 2 * $d19)) * $d4 + 2 * $d4dt * $d5dt + $d5 * ($etddt * $d13 + "22.5" * $eta * $d23)) * $sing + $xgdt1 * ((7 * $d20 + 4 * $self->{'eccentricity'} * $edot / $beta02) * ($c5 * $cosg - 2 * $c4 * $sin2g) + (2 * $c5dt * $cosg - 4 * $c4dt * $sin2g - $xgdt1 * ($c5 * $sing + 4 * $c4 * $cos2g)))); my $tmnddt = $xnddt * "1000000000"; my $temp = $tmnddt ** 2 - $xndt * "1e+18" * $xntrdt; $pp = ($temp + $tmnddt ** 2) / $temp; $gamma = -$xntrdt / ($xnddt * ($pp - 2)); $xnd = $xndt / ($pp * $gamma); $qq = 1 - $eddot / ($edot * $gamma); $ed = $edot / ($qq * $gamma); $ovgpp = 1 / ($gamma * ($pp + 1)); } ; print qq[Debug SGP8 - Initialize\n A3COF = @{[defined $a3cof ? $a3cof : "undef"];}\n COSI = @{[defined $cosi ? $cosi : "undef"];}\n COSIO2 = @{[defined $cosio2 ? $cosio2 : "undef"];}\n ED = @{[defined $ed ? $ed : "undef"];}\n EDOT = @{[defined $edot ? $edot : "undef"];}\n GAMMA = @{[defined $gamma ? $gamma : "undef"];}\n ISIMP = @{[defined $isimp ? $isimp : "undef"];}\n OMGDT = @{[defined $omgdt ? $omgdt : "undef"];}\n OVGPP = @{[defined $ovgpp ? $ovgpp : "undef"];}\n PP = @{[defined $pp ? $pp : "undef"];}\n QQ = @{[defined $qq ? $qq : "undef"];}\n SINI = @{[defined $sini ? $sini : "undef"];}\n SINIO2 = @{[defined $sinio2 ? $sinio2 : "undef"];}\n THETA2 = @{[defined $theta2 ? $theta2 : "undef"];}\n TTHMUN = @{[defined $tthmun ? $tthmun : "undef"];}\n UNM5TH = @{[defined $unm5th ? $unm5th : "undef"];}\n UNMTH2 = @{[defined $unmth2 ? $unmth2 : "undef"];}\n XGDT1 = @{[defined $xgdt1 ? $xgdt1 : "undef"];}\n XHDT1 = @{[defined $xhdt1 ? $xhdt1 : "undef"];}\n XLLDOT = @{[defined $xlldot ? $xlldot : "undef"];}\n XMDT1 = @{[defined $xmdt1 ? $xmdt1 : "undef"];}\n XND = @{[defined $xnd ? $xnd : "undef"];}\n XNDT = @{[defined $xndt ? $xndt : "undef"];}\n XNODOT = @{[defined $xnodot ? $xnodot : "undef"];}\n XNODP = @{[defined $xnodp ? $xnodp : "undef"];}\n] if $self->{'debug'}; +{"a3cof", $a3cof, "cosi", $cosi, "cosio2", $cosio2, "ed", $ed, "edot", $edot, "gamma", $gamma, "isimp", $isimp, "omgdt", $omgdt, "ovgpp", $ovgpp, "pp", $pp, "qq", $qq, "sini", $sini, "sinio2", $sinio2, "theta2", $theta2, "tthmun", $tthmun, "unm5th", $unm5th, "unmth2", $unmth2, "xgdt1", $xgdt1, "xhdt1", $xhdt1, "xlldot", $xlldot, "xmdt1", $xmdt1, "xnd", $xnd, "xndt", $xndt, "xnodot", $xnodot, "xnodp", $xnodp} }
4005 5 2 0 $$self{&TLE_INIT}{'TLE_sdp8'} ||= do { croak("Error - The SDP8 model is not valid for near-earth objects.\n Use the SGP, SGP4, SGP4R, or SGP8 models instead.\n") unless $self->is_deep; my $a1 = ("0.0743669161" / $self->{'meanmotion'}) ** "0.666666666666667"; my $cosi = cos $self->{'inclination'}; my $theta2 = $cosi * $cosi; my $tthmun = 3 * $theta2 - 1; my $eosq = $self->{'eccentricity'} * $self->{'eccentricity'}; my $beta02 = 1 - $eosq; my $beta0 = sqrt $beta02; my $del1 = "0.000811962" * $tthmun / ($a1 * $a1 * $beta0 * $beta02); my $a0 = $a1 * (1 - $del1 * ("0.333333333333333" + $del1 * (1 + "1.65432098765432" * $del1))); my $del0 = "0.000811962" * $tthmun / ($a0 * $a0 * $beta0 * $beta02); my $aodp = $a0 / (1 - $del0); my $xnodp = $self->{'meanmotion'} / (1 + $del0); my $b = 2 * $self->{'bstardrag'} / "0.15696615"; my $po = $aodp * $beta02; my $pom2 = 1 / ($po * $po); my $sini = sin $self->{'inclination'}; my $sing = sin $self->{'argumentofperigee'}; my $cosg = cos $self->{'argumentofperigee'}; my $temp = "0.5" * $self->{'inclination'}; my $sinio2 = sin $temp; my $cosio2 = cos $temp; my $theta4 = $theta2 ** 2; my $unm5th = 1 - 5 * $theta2; my $unmth2 = 1 - $theta2; my $a3cof = "0.00469013944002306"; my $pardt1 = "0.001623924" * $pom2 * $xnodp; my $pardt2 = $pardt1 * "0.000541308" * $pom2; my $pardt4 = "7.762359375e-07" * $pom2 * $pom2 * $xnodp; my $xmdt1 = "0.5" * $pardt1 * $beta0 * $tthmun; my $xgdt1 = "-0.5" * $pardt1 * $unm5th; my $xhdt1 = -$pardt1 * $cosi; my $xlldot = $xnodp + $xmdt1 + "0.0625" * $pardt2 * $beta0 * (13 - 78 * $theta2 + 137 * $theta4); my $omgdt = $xgdt1 + "0.0625" * $pardt2 * (7 - 114 * $theta2 + 395 * $theta4) + $pardt4 * (3 - 36 * $theta2 + 49 * $theta4); my $xnodot = $xhdt1 + ("0.5" * $pardt2 * (4 - 19 * $theta2) + 2 * $pardt4 * (3 - 7 * $theta2)) * $cosi; my $tsi = 1 / ($po - "1.01222928"); my $eta = $self->{'eccentricity'} * "1.01222928" * $tsi; my $eta2 = $eta ** 2; my $psim2 = abs 1 / (1 - $eta2); my $alpha2 = 1 + $eosq; my $eeta = $self->{'eccentricity'} * $eta; my $cos2g = 2 * $cosg ** 2 - 1; my $d5 = $tsi * $psim2; my $d1 = $d5 / $po; my $d2 = 12 + $eta2 * (36 + "4.5" * $eta2); my $d3 = $eta2 * (15 + "2.5" * $eta2); my $d4 = $eta * (5 + "3.75" * $eta2); my $b1 = "0.000541308" * $tthmun; my $b2 = "-0.000541308" * $unmth2; my $b3 = $a3cof * $sini; my $c0 = "0.5" * $b * "0.15696615" * "1.88027916e-09" * $xnodp * $aodp * $tsi ** 4 * $psim2 ** "3.5" / sqrt($alpha2); my $c1 = "1.5" * $xnodp * $alpha2 ** 2 * $c0; my $c4 = $d1 * $d3 * $b2; my $c5 = $d5 * $d4 * $b3; my $xndt = $c1 * (2 + $eta2 * (3 + 34 * $eosq) + 5 * $eeta * (4 + $eta2) + "8.5" * $eosq + $d1 * $d2 * $b1 + $c4 * $cos2g + $c5 * $sing); my $xndtn = $xndt / $xnodp; my $edot = "-0.666666666666667" * $xndtn * (1 - $self->{'eccentricity'}); $$self{&TLE_INIT}{'TLE_deep'} = {$self->_dpinit($eosq, $sini, $cosi, $beta0, $aodp, $theta2, $sing, $cosg, $beta02, $xlldot, $omgdt, $xnodot, $xnodp)}; +{"a3cof", $a3cof, "cosi", $cosi, "cosio2", $cosio2, "edot", $edot, "omgdt", $omgdt, "sini", $sini, "sinio2", $sinio2, "theta2", $theta2, "tthmun", $tthmun, "unm5th", $unm5th, "unmth2", $unmth2, "xgdt1", $xgdt1, "xhdt1", $xhdt1, "xlldot", $xlldot, "xmdt1", $xmdt1, "xndt", $xndt, "xnodot", $xnodot, "xnodp", $xnodp} }
4484 0 4 0 $xnq < "0.00826" or $xnq > "0.00924"
4 0 0 $xnq < "0.00826" or $xnq > "0.00924" or $eq < "0.5"
4799 0 0 0 not $dpsp->{'atime'} or $t >= 0 and $dpsp->{'atime'} < 0
0 0 0 not $dpsp->{'atime'} or $t >= 0 and $dpsp->{'atime'} < 0 or $t < 0 and $dpsp->{'atime'} >= 0
5753 3 0 20 $init->{'inclm'} < "0.052359877" or $init->{'inclm'} > &SGP_PI - "0.052359877"
5770 3 0 20 $init->{'inclm'} < "0.052359877" or $init->{'inclm'} > &SGP_PI - "0.052359877"
6083 220 0 0 $$atime == 0 or $t >= 0 and $$atime < 0
0 0 0 $$atime == 0 or $t >= 0 and $$atime < 0 or $t < 0 and $$atime >= 0
6097 0 0 544 abs $t < abs $$atime or $iret == 351
6468 35 0 0 $init->{'omeosq'} >= 0 or $parm->{'meanmotion'} >= 0
6690 18817 3 0 $$self{&TLE_INIT}{'TLE_sgp4r'} ||= $self->_r_sgp4init
6777 0 4 18816 $eccm >= 1 or $eccm < "-0.001"
4 0 18816 $eccm >= 1 or $eccm < "-0.001" or $am < "0.95"
6829 0 0 395 $eccp < 0 or $eccp > 1
7670 0 0 0 $self->get("effective") or $self->get("epoch")
7972 0 0 0 ref $body || $body