Astro-PAL
view release on metacpan or search on metacpan
lib/Astro/PAL.pm view on Meta::CPAN
=over 4
=item DPI - Pi
=item D2PI - 2 * Pi
=item D1B2PI - 1 / (2 * Pi)
=item D4PI - 4 * Pi
=item D1B4PI - 1 / (4 * Pi)
=item DPISQ - Pi ** 2 (Pi squared)
=item DSQRPI - sqrt(Pi)
=item DPIBY2 - Pi / 2: 90 degrees in radians
=item DD2R - Pi / 180: degrees to radians
=item DR2D - 180/Pi: radians to degrees
=item DAS2R - pi/(180*3600): arcseconds to radians
=item DR2AS - 180*3600/pi: radians to arcseconds
=item DH2R - pi/12: hours to radians
=item DR2H - 12/pi: radians to hours
=item DS2R - pi / (12*3600): seconds of time to radians
=item DR2S - 12*3600/pi: radians to seconds of time
=item D15B2P - 15/(2*pi): hours to degrees * radians to turns
=back
=cut
# Could implement these directly via the include file in the XS layer.
# Since these cant change - implement them explicitly.
# Pi
use constant DPI => 3.1415926535897932384626433832795028841971693993751;
# 2pi
use constant D2PI => 6.2831853071795864769252867665590057683943387987502;
# 1/(2pi)
use constant D1B2PI => 0.15915494309189533576888376337251436203445964574046;
# 4pi
use constant D4PI => 12.566370614359172953850573533118011536788677597500;
# 1/(4pi)
use constant D1B4PI => 0.079577471545947667884441881686257181017229822870228;
# pi^2
use constant DPISQ => 9.8696044010893586188344909998761511353136994072408;
# sqrt(pi)
use constant DSQRPI => 1.7724538509055160272981674833411451827975494561224;
# pi/2: 90 degrees in radians
use constant DPIBY2 => 1.5707963267948966192313216916397514420985846996876;
# pi/180: degrees to radians
use constant DD2R => 0.017453292519943295769236907684886127134428718885417;
# 180/pi: radians to degrees
use constant DR2D => 57.295779513082320876798154814105170332405472466564;
# pi/(180*3600): arcseconds to radians
use constant DAS2R => 4.8481368110953599358991410235794797595635330237270e-6;
# 180*3600/pi : radians to arcseconds
use constant DR2AS => 2.0626480624709635515647335733077861319665970087963e5;
# pi/12: hours to radians
use constant DH2R => 0.26179938779914943653855361527329190701643078328126;
# 12/pi: radians to hours
use constant DR2H => 3.8197186342054880584532103209403446888270314977709;
# pi/(12*3600): seconds of time to radians
use constant DS2R => 7.2722052166430399038487115353692196393452995355905e-5;
# 12*3600/pi: radians to seconds of time
use constant DR2S => 1.3750987083139757010431557155385240879777313391975e4;
# 15/(2pi): hours to degrees x radians to turns
use constant D15B2P => 2.3873241463784300365332564505877154305168946861068;
=head2 Extra functions
These are exportable using the 'funcs' tag or used directly
through the Astro::PAL namespace.
They directly match the Astro::SLA equivalents.
=over 4
=item B<lstnow_tel>
Return current LST (in radians) and MJD for a given telescope.
The telescope identifiers should match those present in palObs.
The supplied telescope name is converted to upper case.
($lst, $mjd) = lstnow_tel($tel);
Aborts if telescope name is unknown.
=cut
sub lstnow_tel {
croak 'Usage: lstnow_tel($tel)' unless scalar(@_) == 1;
my $tel = shift;
# Upper case the telescope
$tel = uc($tel);
# Find the longitude of this telescope
my ($ident, $name, $w, $p, $h) = palObs( $tel );
# Check telescope name
croak "Telescope name $tel unrecognised by palObs()"
unless defined $ident;
# Convert longitude to west negative
$w *= -1.0;
# Run lstnow
lstnow($w);
( run in 1.655 second using v1.01-cache-2.11-cpan-39bf76dae61 )