Astro-SLA

 view release on metacpan or  search on metacpan

t/comet.t  view on Meta::CPAN

		      $halebopp{AORL},
		      $halebopp{EPOCH},$halebopp{ORBINC}, $halebopp{ANODE},
		      $halebopp{PERIH},$halebopp{AORQ},$halebopp{E},
		      $halebopp{AORL},
		      my $jstat);

is( $jstat, 0, "Status return from perturbing the elements");

# Telescope information
my $name = 'JCMT';
Astro::SLA::slaObs(-1, $name, my $fullname, my $long, my $lat, my $h);
$long *= -1; # Need east positive
print "# $fullname, $long, $lat, $h \n";

# Now use the elements
Astro::SLA::slaPlante($MJD, $long, $lat, $jform,
		      $halebopp{EPOCH}, $halebopp{ORBINC}, 
		      $halebopp{ANODE}, $halebopp{PERIH}, 
		      $halebopp{AORQ}, $halebopp{E}, $halebopp{AORL},
		      $halebopp{DM},
		      my $ra, my $dec, my $dist, my $j);

is( $j, 0, "Status from slaPlante");

# Convert from observed to apparent place
Astro::SLA::slaOap("r", $ra, $dec, $MJD, 0.0, $long, $lat, 
		   0.0,0.0,0.0,
		   0.0,0.0,0.0,0.0,0.0,$ra, $dec);

# Convert RA and Dec to sexagesimal
my $ra_str = fromrad( $ra / 15 );
my $dec_str = fromrad( $dec );
print "# app RA: $ra -> $ra_str  App Dec: $dec -> $dec_str \n";

is(substr($ra_str,1,8),"08:09:03","Hale-Bopp app RA");
is(substr($dec_str,0,11),"-47:24:51.4","Hale-Bopp app Dec");


# Calculate hour angle
my $ha = $lst -$ra;
is(sprintf("%.2f",($ha * Astro::SLA::DR2H)), "0.69", "Hour Angle");

Astro::SLA::slaDe2h($ha, $dec, $lat, my $az, my $el);

$az *= Astro::SLA::DR2D;
$el *= Astro::SLA::DR2D;
print "# Az: $az El: $el\n";

is( sprintf("%.1f",$el),"22.1", "EL");
is( sprintf("%.2f",$az),"187.57", "AZ");

# Now switch to 3200 Phaethon. This caused real problems with some
# slalib versions and architectures
print "# Testing 3200 Phaethon. Will not pass in older SLA versions (<2.5.3)\n";

my %elem = (
	    'AORQ' => '0.139854192733765',
	    'E' => '0.889994084835052',
	    'EPOCHPERIH' => '53431.54296875',
	    'PERIH' => '5.61957263946533',
	    'ORBINC' => '0.386924684047699',
	    'ANODE' => '4.63256978988647',
	    'EPOCH' => '53200',
	    'AORL' => 0,
	   );

my $now = 53613.09;

Astro::SLA::slaPertel( 3, $elem{EPOCH}, $now,
		       $elem{EPOCHPERIH},
		       $elem{ORBINC},
		       $elem{ANODE},
		       $elem{PERIH},
		       $elem{AORQ},
		       $elem{E},
		       $elem{AORL},
		       my $EPOCH1, my $ORBINC1, my $ANODE1, my $PERIH1,
		       my $AORQ1, my $E1, my $AORL1, my $J);

is( $J, 0, "Test perturbation of elements for 3200 Phaethon" );

exit;

sub fromrad {
  # Convert rad to sexagesimal
  my $in = shift;
  my @dmsf;
  my $res = 2;
  Astro::SLA::slaDr2af($res, $in, my $sign, @dmsf);
  $sign = ' ' if $sign eq "+";
  $in = $sign . sprintf("%02d:%02d:%02d.%0$res"."d",@dmsf);
  return $in;
}



( run in 2.840 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )