2020/12/14 14:35:21 INFO ./2.list.pl
2020/12/14 14:35:21 INFO Sun set is Tue Dec 15 00:27:26 2020 UT
####
$ ./2.list.pl
./2.list.pl
14 December Mon
Sun set is Tue Dec 15 00:27:26 2020 UT
Jupiter 244.6431915014 -29.1858529704823
Saturn 245.134645395248 -28.5593225839294
diff: 0.49145389384833 0.626530386552826
new_name is November_15_2020
save_file is /home/hogan/Documents/hogan/my_data/November_15_2020.pdf
####
$ cat 2.list.pl
#!/usr/bin/env perl
use v5.14;
use Path::Class;
use PDF::API2;
my $path = '/home/hogan/Documents/hogan/my_data';
my @months = qw(January February March April May June July August
September October November December);
my @days = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
### update for perlukkah 2020
# add grownup logging
use Log::Log4perl;
my $file = '/home/hogan/Documents/hogan/logs/4.log4perl.txt';
unlink $file or warn "Could not unlink $file: $!";
my $log_conf4 = "/home/hogan/Documents/hogan/logs/conf_files/4.conf";
Log::Log4perl::init($log_conf4); #info
my $logger = Log::Log4perl->get_logger();
$logger->info("$0");
## populate an array with ephemeral objects
# order the same as fourmilab
my @ephem = qw(Sun Mercury Venus Moon Mars Jupiter Saturn Uranus Neptune Pluto);
#### unaltered
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) =
localtime();
print "$mday $months[$mon] $days[$wday]\n";
my $day = $mday + 1;
my $yr = $year + 1900;
my $header = "List for $days[$wday+1], $months[$mon -1] $day, $yr";
my $pdf = PDF::API2->new(
width => 595, # A4 dimensions in point
height => 842, # 1 point = 1/72 inch
);
####
##
my $lat = 45.4;
my $long = -122.5;
use Astro::Coord::ECI;
use Astro::Coord::ECI::Sun;
use Astro::Coord::ECI::Utils qw{deg2rad};
# 1600 Pennsylvania Ave, Washington DC USA
# latitude 38.899 N, longitude 77.038 W,
# altitude 16.68 meters above sea level
my $lat = deg2rad($lat); # Radians
my $long = deg2rad($long); # Radians
my $alt = .5; # Kilometers <- looks spurious
my $sun = Astro::Coord::ECI::Sun->new();
my $sta = Astro::Coord::ECI->universal( time() )->geodetic( $lat, $long, $alt );
my ( $time, $rise ) = $sta->next_elevation($sun);
$logger->info(
"Sun @{[$rise ? 'rise' : 'set']} is ",
scalar gmtime $time,
" UT\n"
);
my $obs_time = $time;
###
use Time::Piece;
use Astro::Coords;
use Astro::Telescope;
my $out_string;
$out_string = qq/Planet\tAzimuth\t\t\tElevation\n/;
my ( @a, @b );
for my $name (qw/Jupiter Saturn/) {
my $planet = Astro::Coords->new( planet => $name );
$planet->datetime( Time::Piece->new );
$planet->telescope(
Astro::Telescope->new(
Name => 'clackamas',
Long => deg2rad($lat),
Lat => deg2rad($long),
Alt => $alt
)
);
my $az = $planet->az( format => 'deg' );
my $el = $planet->el( format => 'deg' );
push @a, $az;
push @b, $el;
print qq/$name\t$az\t $el\n/;
}
my $delta_a = $a[1] - $a[0];
my $delta_b = $b[1] - $b[0];
print qq/diff:\t$delta_a\t $delta_b\n/;
###
# close integer values to begin stub out code with:
my ( $m, $n ) = ( 5, 6 );
sub drawline {
my ( $line, $y ) = @_;
my $x1 = 50;
my $x2 = 550;
$line->linewidth(3);
$line->move( $x1, $y );
$line->line( $x2, $y );
$line->stroke;
}
my $page = $pdf->page;
my $txt = $page->text;
my $font = $pdf->corefont('Times-Roman');
#my $font = $pdf->ttfont('DejaVuSans.ttf');
$txt->font( $font, 32 );
$txt->translate( 100, 650 );
$txt->text( $header, -encoding => 'utf8' );
my @task = (
'set alarm for 8:30 --one snooze max',
'meds am',
'brekkies',
'stretch',
'rehab exercises',
'meditation',
'journal',
'practice Buked',
"this is the $n th the day of perlukkah",
"observe planets at this time $obs_time",
"it is $m days until jup-sat conjunction",
'meds pm',
);
my $line = $page->gfx;
$txt->font( $font, 20 );
my $vspace = 70;
for my $i ( 0 .. $#task ) {
my $linepos = 500 - ( $i * $vspace );
my $msg = '[ ] ' . $task[$i];
drawline( $line, $linepos );
$txt->translate( 70, $linepos + 10 );
$txt->text($msg);
}
my $new_name = join( '_', $months[ $mon - 1 ], $day, $yr );
say "new_name is $new_name";
my $save_file = file( $path, "$new_name.pdf" );
say "save_file is $save_file";
$pdf->saveas("$save_file");
__END__