The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Geo::Sun - Calculates the Geodetic Position of the Sun over the Surface of the Earth

SYNOPSIS

  use Geo::Sun;
  my $gs=Geo::Sun->new;
  my $point=$gs->set_datetime(DateTime->now)->point; #Full OO interface
  my $point=$gs->point_dt(DateTime->now);            #Old interface
  printf "Latitude: %s, Longitude: %s\n", $point->latlon;
  printf "Point isa %s\n", ref($point);              #GPS::Point

DESCRIPTION

The Geo::Sun package calculates the position of the Sun over the Earth. The user method point_dt takes a DateTime object as a parameter and returns a GPS::Point which is the point on the earth where the Sun is directly over at the given time.

The Geo::Sun package is a wrapper around Astro::Coord::ECI::Sun with a user friendly interface.

USAGE

  use Geo::Sun;
  my $gs=Geo::Sun->new;

CONSTRUCTOR

new

  my $gs=Geo::Sun->new;

METHODS

METHODS (POINT)

point

Returns a GPS::Point for the location of the sun at the current datetime.

  my $point=$gs->point;
  my $point=$gs->set_datetime(DateTime->now)->point;

point_dt

Set the current datetime and returns a GPS::Point

  my $point=$gs->point_dt(DateTime->now);

Implemented as

  my $point=$gs->set_datetime(DateTime->now)->point;

datetime

Sets or returns the current datetime which is a DateTime object. The default is DateTime->now.

set_datetime

Sets datetime returns self

METHODS (BEARING)

bearing

Returns the bearing from the station to the Sun.

station

Sets or returns station. Station must be a valid point argument for GSP::Point distance method.

set_station

Sets station returns self

METHODS (INTERNAL)

sun

Sets or returns the Astro::Coord::ECI::Sun object.

  my $sun=$gs->sun;

ellipsoid

Set or returns the Geo::Ellipsoids object.

  my $ellipsoid=$gs->ellipsoid;  #WGS84

BUGS

Please send to the geo-perl email list.

SUPPORT

Try the geo-perl email list.

LIMITATIONS

Calculations are only good to about 3 decimal places.

AUTHOR

    Michael R. Davis
    CPAN ID: MRDVT
    STOP, LLC
    domain=>stopllc,tld=>com,account=>mdavis
    http://www.stopllc.com/

COPYRIGHT

This program is free software licensed under the...

        The BSD License

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO