Aldebaran has asked for the wisdom of the Perl Monks concerning the following question:
I walked out the home depot last night to a brilliant celestial display, as the moon, aldebaran and mars made a nearly symmetric triangle. I thought, "it looks like the moon has conjoined with mars and is within a day of doing so with aldebaran."
The next day, the moon surprised me by seeming to pass between aldebaran and mars. I would like to use the Astro:: modules to verify that this did indeed happen and when, according to some criterion. What a person thinks he sees can be quite unreliable.
As I begin this, I will note that this project will never be an SSCCE. For one, it's not a contrived example, so the shoe doesn't fit right there. I will take the length I need to represent what I have and what I want. It may be short; it may not be. If that doesn't suit you, do not click the readmore tags expecting otherwise.
I wrote several different versions of an Astro:: script, adding Log4perl in the final one and stepping through with the debugger. That was kind of trip, and I'll list that at the end.
One thing I lack now is a representation for where Aldebaran is. Wiki has it at 4 hr 35 min right ascension and +16 and change for what I assume is degrees above the ecliptic. When I was installing the software, I saw:
WYANT/Astro-satpass-0.117.tar.gz ./Build test -- OK Running Build install for WYANT/Astro-satpass-0.117.tar.gz Building Astro-satpass Installing /usr/local/share/perl/5.30.0/Astro/Coord/ECI.pm Installing /usr/local/share/perl/5.30.0/Astro/Coord/ECI/Star.pm
I don't know what that is yet, but that might be the ticket right there.
What I do have is some gutshot data with Mars and the Moon, with an amalgam script 5.astro.pl:
#!/usr/bin/perl use Time::Piece; use Astro::Coord::ECI::Utils 'deg2rad'; use Astro::Coords; use Astro::Telescope; use Log::Log4perl; 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("Object\tAzimuth\tElevation"); $logger->info("Right Ascension\tDeclination "); for my $name (qw/Mars Moon/) { my $planet = Astro::Coords->new( planet => $name ); $planet->datetime( Time::Piece->new ); $planet->telescope( Astro::Telescope->new( Name => 'boise', Long => deg2rad(-116.2), #43.615833, -116.201667 Lat => deg2rad(43.61), Alt => 8321, #meters above sea level boise ) ); my $az = $planet->az( format => 'deg' ); my $el = $planet->el( format => 'deg' ); $logger->info("$name\t$az\t $el"); my $planet2 = Astro::Coords->new( planet => $name ); $planet2->datetime( Time::Piece->new ); my $ra = $planet2->ra( format => q/deg/ ); my $dec = $planet2->dec( format => q/deg/ ); $logger->info("$name\t$ra\t$dec"); } my $t = localtime; my $jd = $t->julian_day; $logger->info("Time is $t"); $logger->info("Julian day is $jd"); __END__
This is the conf file for Log4perl. If you get the proper form for the output, then it makes a huge difference for looking at a time series:
###################################################################### +######### # Log::Log4perl Conf + # ###################################################################### +######### log4perl.rootLogger = DEBUG, LOG1, SCREEN log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen log4perl.appender.SCREEN.stderr = 0 log4perl.appender.SCREEN.layout = Log::Log4perl::Layout::PatternLayou +t log4perl.appender.SCREEN.layout.ConversionPattern = %m %n log4perl.appender.LOG1 = Log::Log4perl::Appender::File log4perl.appender.LOG1.filename = /home/hogan/Documents/hogan/logs/3. +log4perl.txt log4perl.appender.LOG1.mode = append log4perl.appender.LOG1.layout = Log::Log4perl::Layout::PatternLayou +t log4perl.appender.LOG1.layout.ConversionPattern = %d %p %m %n
If you would like to replicate this, you will have to change the .filename, unless you happen to be hogan. As far as output, I was very pleased as I went about writing this today, with the log building. Another component of this is going outside and looking every couple hours. That's a way this is not self-contained. We need all kinds of sanity checks with this stuff including peer review and wondering, "did you see it too?" Here's 3.log4perl.txt:
2021/03/19 19:31:51 INFO ./4.astro.pl 2021/03/19 19:31:51 INFO Object Azimuth Elevation 2021/03/19 19:31:51 INFO Mars 220.365443728883 65.2689423230543 + 2021/03/19 19:31:51 INFO Moon 211.599830034082 65.5618916858789 + 2021/03/19 19:31:51 INFO Time is Fri Mar 19 19:31:51 2021 2021/03/19 19:31:51 INFO Julian day is 2459293.56378472 2021/03/19 22:40:06 INFO ./4.astro.pl 2021/03/19 22:40:06 INFO Object Azimuth Elevation 2021/03/19 22:40:06 INFO Mars 270.806033806743 34.1750013710903 + 2021/03/19 22:40:06 INFO Moon 266.284000787558 36.8694401304625 + 2021/03/19 22:40:06 INFO Time is Fri Mar 19 22:40:06 2021 2021/03/19 22:40:06 INFO Julian day is 2459293.69451389 2021/03/19 23:35:35 INFO ./5.astro.pl 2021/03/19 23:35:35 INFO Object Azimuth Elevation 2021/03/19 23:35:35 INFO Right Ascension Declination 2021/03/19 23:35:35 INFO Mars 279.88665284031 24.1792258156848 2021/03/19 23:35:35 INFO 67.2076668140408 23.2786995609773 2021/03/19 23:35:35 INFO Moon 275.550366714117 27.1395270284972 + 2021/03/19 23:35:35 INFO 73.1915415734555 22.2734334102247 2021/03/19 23:35:35 INFO Time is Fri Mar 19 23:35:35 2021 2021/03/19 23:35:35 INFO Julian day is 2459293.73304398 2021/03/19 23:39:06 INFO ./5.astro.pl 2021/03/19 23:39:06 INFO Object Azimuth Elevation 2021/03/19 23:39:06 INFO Right Ascension Declination 2021/03/19 23:39:06 INFO Mars 280.444080455657 23.5521856680493 + 2021/03/19 23:39:06 INFO Mars 67.2092465053295 23.2789265197005 2021/03/19 23:39:06 INFO Moon 276.109507072202 26.5260435839715 + 2021/03/19 23:39:06 INFO Moon 73.2365988210088 22.280059131584 2021/03/19 23:39:06 INFO Time is Fri Mar 19 23:39:06 2021 2021/03/19 23:39:06 INFO Julian day is 2459293.73548611 2021/03/20 00:27:38 INFO 5.astro.pl 2021/03/20 00:27:38 INFO Object Azimuth Elevation 2021/03/20 00:28:10 INFO Right Ascension Declination 2021/03/20 00:30:06 INFO Mars 288.303956397801 14.794085544023 2021/03/20 00:32:59 DEBUG This is debug 2021/03/20 00:33:58 INFO Mars 67.2338800886927 23.2824828016645 2021/03/20 00:59:03 INFO Moon 284.638027927888 17.0850686583167 + 2021/03/20 01:00:14 INFO Moon 74.2622910906381 22.4512455528347 2021/03/20 01:00:14 INFO Time is Sat Mar 20 01:00:14 2021 2021/03/20 01:00:14 INFO Julian day is 2459293.7918287
The ultimate run was done with the debugger, which I'm tapping my way around with:
$ perl -d 5.astro.pl Loading DB routines from perl5db.pl version 1.55 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(5.astro.pl:9): my $file = '/home/hogan/Documents/hogan/logs/ +3.log4perl.txt'; DB<1> n + main::(5.astro.pl:12): my $log_conf4 = "/home/hogan/Documents/hogan +/logs/conf_files/3.conf"; DB<1> v + 9: my $file = '/home/hogan/Documents/hogan/logs/3.log4perl.txt'; 10 11 # unlink $file or warn "Could not unlink $file: $!"; 12==> my $log_conf4 = "/home/hogan/Documents/hogan/logs/conf_files/ +3.conf"; 13: Log::Log4perl::init($log_conf4); #info 14: my $logger = Log::Log4perl->get_logger(); ... main::(5.astro.pl:39): my $planet2 = Astro::Coords->new( planet = +> $name ); DB<6> $logger->debug( "This is debug"); + This is debug ... DB<8> . + main::(5.astro.pl:26): $planet->telescope( main::(5.astro.pl:27): Astro::Telescope->new( main::(5.astro.pl:28): Name => 'boise', main::(5.astro.pl:29): Long => deg2rad(-116.2), #43.615833 +, -116.201667 main::(5.astro.pl:30): Lat => deg2rad(43.61), main::(5.astro.pl:31): Alt => 8321, #meters ab +ove sea level boise main::(5.astro.pl:32): ) main::(5.astro.pl:33): ); DB<8> s + Astro::Coord::ECI::Utils::deg2rad(/usr/local/share/perl/5.30.0/Astro/C +oord/ECI/Utils.pm:545): 545: sub deg2rad { return defined $_[0] ? $_[0] * PI / 180 : undef +} ... DB<8> n + Astro::Telescope::new(/usr/local/share/perl/5.30.0/Astro/Telescope.pm: +182): 182: my $proto = shift; DB<8> n + Astro::Telescope::new(/usr/local/share/perl/5.30.0/Astro/Telescope.pm: +183): 183: my $class = ref($proto) || $proto; DB<8> v + 180 181 sub new { 182: my $proto = shift; 183==> my $class = ref($proto) || $proto; 184 185: return undef unless @_; 186 187 # Create the new object 188: my $tel = bless {}, $class; 189 DB<8> b 188 + DB<9> c + Astro::Telescope::new(/usr/local/share/perl/5.30.0/Astro/Telescope.pm: +188): 188: my $tel = bless {}, $class; DB<9> n + Astro::Telescope::new(/usr/local/share/perl/5.30.0/Astro/Telescope.pm: +192): 192: $tel->_configure( @_ ) or return undef; DB<9> v + 189 190 # Configure it with the supplied telescope name 191 # or other arguments 192==> $tel->_configure( @_ ) or return undef; 193 194: return $tel; 195 } 196 197 =back 198 DB<9> p @_ + NameboiseLong-2.02807259081741Lat0.761138086794727Alt8321 ... DB<10> v + 217 =cut 218 219 sub new { 220==> my $class = shift; 221 222: my %args = @_; 223 224: my $obj; 225 226 # Always try for a planet object first if $args{planet} is u +sed DB<10> b 224 + DB<11> c + Astro::Coords::new(/usr/local/share/perl/5.30.0/Astro/Coords.pm:224): 224: my $obj; DB<11> p @_ + planetMoon DB<12> c + Moon 74.2622910906381 22.4512455528347 Time is Sat Mar 20 01:00:14 2021 Julian day is 2459293.7918287 Debugged program terminated. Use q to quit or R to restart, use o inhibit_exit to avoid stopping after program termination, h q, h R or h o to get additional info. DB<12> q
Anyways, so that's as far as make it tonight.
Thank you for your comments.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Deciding when the moon passed between aldebaran and mars
by Aldebaran (Curate) on Mar 21, 2021 at 07:14 UTC | |
by Aldebaran (Curate) on Mar 21, 2021 at 23:45 UTC |