I just happen to be making astronomical calculations in perl and noticing that the sun is really near 0 right ascension and declination. Hmm. That would be the vernal equinox, right? I always like to calculate things like this exactly if I happen to have the time and a nearby laptop. I'm getting output I don't understand, so I think I'm in a better place to ask a cohesive question. What's more, I think I can get to it without needing to resort to readmore tags.
I found an old thread where haukex had helped me figure out some of this: Re: calculate length of day as function of space at onset of fall, and started folding in the old code into the new. I write some really primitive-looking code looking back, but it's my learning on display. Out of this I made a githubpull request, simply to try to understand how github works, and I really don't get it still, which defines me clearly as an intermediate perl user that I am struggling with it. This is what I had some code at github that calculates equinoxes, sunsets, meridians.
Anyways, so I start chopping that up and am left 3 lines, and then I hardcode the year:
use Astro::Utils;
my $spring = calculate_equinox( 'mar', 'utc', '2021' );
$logger->info("spring begins $spring");
I'll list output, source and then have a couple questions.
$ ./3.vernal.pl
./3.vernal.pl
Name Right Ascension Declination
Mars 1.19220473652282 0.409015700183571
Moon 1.6536783961676 0.442537954264476
Sun 0.0202246733370893 0.00876435085335973
Aldeb 1.20392811802569 0.288139315093836
Time is Sun Mar 21 17:03:18 2021
Julian day is 2459295.460625
Sun set is Mon Mar 22 01:58:54 2021
Astro::Coord::ECI=HASH(0x560eda31aa70)
spring begins 2021-03-20 09:37:05
$ cat 3.vernal.pl
#!/usr/bin/perl
use Time::Piece;
use Astro::Coord::ECI::Utils 'deg2rad';
use Astro::Coords;
use Log::Log4perl;
use 5.030;
my $file = '/home/hogan/Documents/hogan/logs/3.log4perl.txt';
unlink $file or warn "Could not unlink $file: $!";
my $log_conf4 = "/home/hogan/Documents/hogan/logs/conf_files/3.conf";
Log::Log4perl::init($log_conf4); #info
my $logger = Log::Log4perl->get_logger();
$logger->info("$0");
$logger->info("Name\tRight Ascension\t\tDeclination");
for my $name (qw/Mars Moon Sun/) {
my $planet2 = Astro::Coords->new( planet => $name );
$planet2->datetime( Time::Piece->new );
my $ra = $planet2->ra( format => q/rad/ );
my $dec = $planet2->dec( format => q/rad/ );
$logger->info("$name\t$ra\t$dec");
}
## declare values and tailor to what these routines expect...
my $aldeb_ra_degrees = 68.98;
my $aldeb_ra_radians = deg2rad($aldeb_ra_degrees);
my $aldeb_declination_degrees = 16.509166666667;
my $aldeb_dec_radians = deg2rad($aldeb_declination_degrees);
my $local_lat = deg2rad(43.6135); #
+Radians
my $local_long = deg2rad(-116.20345); #
+Radians
my $local_alt = 8321 / 1000; #
+Kilometers
$logger->info("Aldeb\t$aldeb_ra_radians\t$aldeb_dec_radians ");
my $t = localtime;
my $jd = $t->julian_day;
$logger->info("Time is $t");
$logger->info("Julian day is $jd");
use Astro::Coord::ECI::Sun;
my $sun = Astro::Coord::ECI::Sun->new();
my $sta = Astro::Coord::ECI->universal( time() )
->geodetic( $local_lat, $local_long, $local_alt );
my ( $time, $rise ) = $sta->next_elevation($sun);
my $string =
"Sun @{[$rise ? 'rise' : 'set']} is " . scalar gmtime $time . " UT\n
+";
$logger->info("$string");
$logger->debug("$sta");
# calculate begin of spring
use Astro::Utils;
my $spring = calculate_equinox( 'mar', 'utc', '2021' );
$logger->info("spring begins $spring");
__END__
$
As I look at the data, does it not say that spring has already sprung? Here's question 1: Is the value for $spring correct?
If $spring is correct, then has spring sprung? If so, why are the values for the sun's declination and right ascension still so unzeroish?
Thanks for your comments,