Measure angles with Astro::Coords::Angle or the angle method of Astro::Coord::ECI.
Ok, great, thanks, I had forgotten the critical word ::Coords:: here.
Implement star catalogs with Astro-Catalog
I'm trying to get my head around that. If I gave you:
my $stern = 'aldebaran';
, could this locate it without having to hard code the position?
Locate stars with Astro::Coord::ECI::Star or Astro::Coords/Astro::Telescope:
Yeah, so this looks very nice and clean. I've just lopped it into the beginning of what I had before mixing the sources:
fritz@laptop:~/Documents/gitlab1$ ./2.betelgeuse.pl
Betelgeuse
RA : 05:55:10.305
DEC: 07:24:25.43
NOW: Sun Dec 18 22:39:20 2022
OBS: 43 -116 830
AZ: 131.819209124284°
EL: 44.4163511693206°
./2.betelgeuse.pl
Name Right Ascension Declination
Mars 1.22046550975414 0.432956445569288
Moon 3.66020589860573 -0.191580119364385
Aldeb 1.20392811802569 0.288139315093836
Time is Sun Dec 18 22:39:20 2022
Julian day is 2459932.73564815
fritz@laptop:~/Documents/gitlab1$
Source:
#!/usr/bin/perl
use strict;
use warnings;
use Time::Piece;
use Astro::Coord::ECI::Utils 'deg2rad';
use Astro::Coords;
use Log::Log4perl;
use Astro::Telescope;
# Observer latitude, longitude and altitude
# in decimal degrees and meters:
my ( $lat, $lon, $alt ) = ( 43.0, -116.0, 830 );
my $star = Astro::Coords->new(
name => 'Betelgeuse',
ra => '05h 55m 10.30536s',
dec => '07 24 25.4304',
type => 'j2000',
);
my $scope = Astro::Telescope->new(
Name => "$lat $lon $alt",
Lat => deg2rad($lat),
Long => deg2rad($lon),
Alt => $alt
);
$star->telescope($scope);
$star->datetime( Time::Piece->new );
print $star->name, "\n", "RA : ", $star->ra, "\n", "DEC:", $star->dec,
+ "\n\n",
"NOW: ", scalar localtime, "\n", "OBS: ", $scope->name, "\n\n",
"AZ: ", $star->az( format => 'deg' ), "°\n", # Azimuth
"EL: ", $star->el( format => 'deg' ), "°\n"; # Elevation
my $file = '/home/fritz/Documents/gitlab1/1.aldeb.txt';
# unlink $file or warn "Could not unlink $file: $!";
my $log_conf4 = "/home/fritz/Documents/gitlab1/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/) {
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");
}
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);
$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");
__END__
This is great progress, so I'm really pleased, and thanks for posting. I want to get away from as much hard-coding of values as possible. Let me ask this question:
How might we represent Orion as a perl data structure with as little cooking from scratch as possible? What about the Plieades?
Lots happening tonight, in the vicinity of Aldebaran....
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.