NAME
Astro::Montenbruck::RiseSet::Sunset — rise and set.
SYNOPSIS
use Astro::Montenbruck::MathUtils qw/frac/;
use Astro::Montenbruck::RiseSet::Constants qw/:events :altitudes/;
use Astro::Montenbruck::RiseSet::Sunset qw/:riseset_func/;
my $func = riseset_func(
date => [1989, 3, 23],
phi => 48.1,
lambda => -11.6
);
$func->(
get_position => sub {
my $jd = shift;
# return equatorial coordinates of the celestial body for the Julian Day.
},
sin_h0 => sin( deg2rad($H0_PLANET) ),
on_event => sub {
my ($evt, $jd) = @_;
say "$evt: $jd";
},
on_noevent => sub {
my $state = shift;
say $state;
}
);
VERSION
Version 0.01
DESCRIPTION
Low level routines for calculating rise and set times of celestial bodies.
FUNCTIONS
riseset_func ( %args )
time of rise and set events.
Named Arguments
get_position — function, which given Standard Julian Day, returns equatorial coordinates of the celestial body, in radians.
date — array of year (astronomical, zero-based), month [1..12] and day, [1..31].
phi — geographic latitude, degrees, positive northward
lambda —geographic longitude, degrees, positive westward
get_position — function, which given Standard Julian Day, returns equatorial coordinates of the celestial body, in radians.
sin_h0 — sine of the standard altitude, i.e. the geometric altitude of the center of the body at the time of apparent rising or setting.
on_event
callback is called when the event time is determined. The arguments are:event type, one of
$EVT_RISE
or$EVT_SET
Universal time of the event
on_event => sub { my ($evt, $ut) = @_; ... }
on_noevent
is called when the event does not happen at the given date, either because the body never rises, or is circumpolar. The argument is respectively$STATE_NEVER_RISES
or$STATE_CIRCUMPOLAR
.on_noevent => sub { my $state = shift; ... }
AUTHOR
Sergey Krushinsky, <krushi at cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2010-2022 by Sergey Krushinsky
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.