Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: perl in the stars

by Anonymous Monk
on Dec 18, 2022 at 01:32 UTC ( #11148951=note: print w/replies, xml ) Need Help??


in reply to perl in the stars

Measure angles with Astro::Coords::Angle or the angle method of Astro::Coord::ECI.

Implement star catalogs with Astro-Catalog

Locate stars with Astro::Coord::ECI::Star or Astro::Coords/Astro::Telescope:

#!/usr/bin/perl use strict; use warnings; use Astro::Coords; use Astro::Telescope; use Math::Trig 'deg2rad'; use Time::Piece; # Observer latitude, longitude and altitude # in decimal degrees and meters: my ($lat, $lon, $alt) = (38.899, -77.038, 16.68); 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

Replies are listed 'Best First'.
Re^2: perl in the stars
by Aldebaran (Curate) on Dec 19, 2022 at 06:21 UTC
    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....

      Stellar data can be accessed with Astro::SIMBAD::Client, but idk how to parse it:
      perl -MAstro::SIMBAD::Client -le '$s=Astro::SIMBAD::Client->new;@q=spl +it /\n/, $s->url_query(id => Ident => "$ARGV[0]", NbIdent => 1);@r=gr +ep/ICRS/,@q;print for @r' aldebaran
      Result:
      Coordinates(ICRS,ep=J2000,eq=2000): 04 35 55.23907  +16 30 33.4885 (Opt ) A [7.38 5.70 90] 2007A&A...474..653V
      Here's the raw SIMBAD data:
      http:// simbad.u-strasbg.fr/simbad/sim-id?output.format=ASCII&Ident=aldebaran
      > How might we represent Orion as a perl data structure with as little cooking from scratch as possible?

      At minimum a constellation is a set of boundary coordinates. Constellations also contain stars and their asterisms, and events that occur inside the boundary. AFAIK there's nothing like that on CPAN...

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11148951]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2023-10-04 05:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?