1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
|
#!/usr/local/perl -w
use Astro::Time;
use Astro::Coord;
use Astro::Misc;
use strict;
my ($day, $month, $dayno, $year, $ut, $mjd, $dUT1, $gst, $lmst, $i);
my ($turn, $deg, $rad, $hour, $minute, $sec, $l, $b);
my ($str, $ra, $dec, $x, $y, $az, $el, $ha, $nra, $ndec);
$day = 17;
$month = 11;
$year = 1997;
my $longitude = 0.417;
my $latitude = 0.141;
$str = '12:34:45.4';
$turn = str2turn($str, 'H');
printf "str2turn: $str ==> %.4f\n", $turn;
$str = turn2str($turn, 'H', 1);
printf "turn2str: %.4f ==> $str\n", $turn;
$str = '-45 34 12.9';
$turn = str2turn($str, 'D');
printf "str2turn: $str ==> %.4f\n", $turn;
$Astro::Time::StrSep = ' ';
$str = turn2str($turn, 'D', 1);
printf "turn2str: %.4f ==> $str\n", $turn;
$str = '13h23m45.3s';
$turn = str2turn($str, 'H');
printf "str2turn: $str ==> %.4f\n", $turn;
$Astro::Time::StrSep = 'hms';
$str = turn2str($turn, 'H', 1);
printf "turn2str: %.4f ==> $str\n", $turn;
$str = '13d03\'45.3"';
$turn = str2turn($str, 'H'); # Note 'H' gets ignored
printf "str2turn: $str ==> %.4f\n", $turn;
$str = turn2str($turn, 'D', 1, 'deg');
printf "turn2str: %.4f ==> $str\n", $turn;
$hour = 12;
$minute = 33;
$sec = 47;
$ut = hms2time($hour, $minute, $sec);
printf("hms2time: %02d/%02d/%02d ==> %s\n", $hour, $minute, $sec,
turn2str($ut, 'H', 0, ':'));
$rad = 0.45;
$deg = rad2deg($rad);
printf "rad2deg: $rad Radians ==> %.2f degrees\n", $deg;
$turn = deg2turn($deg);
printf "deg2turn: %.2f degrees ==> %.3f Turns\n", $deg, $turn;
$dayno = cal2dayno($day, $month, $year);
print "cal2dayno: $day/$month/$year ==> $dayno/$year\n";
($day, $month) = dayno2cal($dayno, $year);
print "dayno2cal: $dayno/$year ==> $day/$month/$year\n";
print "yesterday: The day before $day/$month/$year is ";
($day, $month, $year) = yesterday($day, $month, $year);
print "$day/$month/$year\n";
print "Tomorrow: The day after $dayno/$year is ";
($dayno, $year) = tomorrow($dayno, $year);
print "$dayno/$year\n";
print "leap:\n";
for ($i=1996; $i<2001; $i++) {
if (leap($i)) {
print " $i is a leap year\n";
} else {
print " $i is NOT a leap year\n";
}
}
$mjd = now2mjd();
printf "now2mjd: Current MJD = %.2f\n", $mjd;
$Astro::Time::StrSep = 'hms';
($day, $month, $year, $ut) = mjd2cal($mjd);
printf("mjd2cal: MJD %.2f ==> %02d/%02d/$year (%s)\n", $mjd, $day,
$month, turn2str($ut, 'H', 0));
$mjd = cal2mjd($day, $month, $year, $ut);
printf("cal2mjd: %02d/%02d/$year (%s) ==> MJD %.2f \n", $day, $month,
turn2str($ut, 'H', 0), $mjd);
$Astro::Time::StrSep = ':';
($dayno, $year, $ut) = mjd2dayno($mjd);
printf("mjd2dayno: MJD %.2f ==> %03d/$year (%s)\n", $mjd, $dayno,
turn2str($ut,'H',0));
$mjd = dayno2mjd($dayno, $year, $ut);
printf("dayno2mjd: %03d/$year (%s) ==> MJD %.2f\n", $dayno,
turn2str($ut,'H',0), $mjd);
my $mstr = month2str($month);
printf("month2str: $month is $mstr\n");
my $dow = mjd2weekday($mjd);
my $dowstr = mjd2weekdaystr($mjd, 1);
printf("Day of week:$dow $dowstr\n");
$dUT1 = -0.2;
$gst = gst($mjd, $dUT1);
printf("gst: MJD %.2f (dUT1=$dUT1) ==> GMST %s\n", $mjd,
turn2str($gst,'H',0));
$Astro::Time::StrSep = 'hms';
$lmst = cal2lst($day, $month, $year, $ut, $longitude);
printf("cal2lst: $day/$month/$year (%s) at %s ==> LMST %s\n",
turn2str($ut, 'H', 0), turn2str($longitude, 'D', 1, ':'),
turn2str($lmst, 'H', 0));
$lmst = dayno2lst($dayno, $year, $ut, $longitude);
printf("dayno2lst: $dayno/$year (%s) at %s ==> LMST %s\n",
turn2str($ut, 'H', 0), turn2str($longitude, 'D', 1, ':'),
turn2str($lmst, 'H', 0));
$lmst = mjd2lst($mjd, $longitude, $dUT1);
printf("mjd2lst: MJD %.6f at %s ==> LMST %s\n", $mjd,
turn2str($longitude, 'D', 1, ':'), turn2str($lmst, 'H', 2));
$mjd = lst2mjd($lmst, $dayno, $year, $longitude);
printf("lst2mjd: LST %s on $dayno/$year \@ %s ==> MJD %.6f\n",
turn2str($lmst,'H',2,'hms'), turn2str($longitude,'D',0,':'),
$mjd);
$Astro::Time::StrSep = ':';
my $time = mjd2epoch($mjd);
printf("mjd2epoch: MJD %.6f is Unix Epoch %d\n", $mjd, $time);
$ra = 0.5356;
$dec = 0.1025;
my ($lst_rise, $lst_set) = rise($ra, $dec, $latitude, deg2turn(15));
printf("rise: %s,%s at %s rise between %s - %s lst\n",
turn2str($ra, 'H', 0), turn2str($dec, 'D', 0),
turn2str($latitude, 'D', 0),
turn2str($lst_rise, 'H', 0), turn2str($lst_set, 'H', 0));
$x = deg2turn(-15.585);
$y = deg2turn(+11.507);
($az, $el) = xy2azel($x, $y);
printf("xy2azel: %s,%s ==> %s,%s\n", turn2str($x,'D',0),
turn2str($y,'D',0), turn2str($az,'D',0), turn2str($el,'D',0));
($x, $y) = azel2xy($az, $el);
printf("azel2xy: %s,%s ==> %s,%s\n", turn2str($az,'D',0),
turn2str($el,'D',0), turn2str($x,'D',0), turn2str($y,'D',0));
($ha, $dec) = eqazel($az, $el, $latitude,1);
printf("eqazel: %s,%s ==> %s,%s (azel->hadec)\n", turn2str($az,'D',0),
turn2str($el,'D',0), turn2str($ha,'H',0), turn2str($dec,'D',0));
($ha, $dec) = eqazel($az, $el, $latitude);
printf("eqazel: %s,%s ==> %s,%s (azel->hadec)\n", turn2str($az,'D',0),
turn2str($el,'D',0), turn2str($ha,'H',0), turn2str($dec,'D',0));
($az, $el) = eqazel($ha, $dec, $latitude);
printf("eqazel: %s,%s ==> %s,%s (hadec->azel)\n", turn2str($ha,'H',0),
turn2str($dec,'D',0), turn2str($az,'D',0), turn2str($el,'D',0));
($nra, $ndec) = fk4fk5($ra, $dec);
printf("fk4fk5: %s,%s => %s,%s\n", turn2str($ra,'H',0),
turn2str($dec,'D',0), turn2str($nra,'H',0), turn2str($ndec,'D',0));
($ra, $dec) = fk5fk4($nra, $ndec);
printf("fk5fk4: %s,%s => %s,%s\n", turn2str($nra,'H',0),
turn2str($ndec,'D',0), turn2str($ra,'H',0), turn2str($dec,'D',0));
($l, $b) = fk4gal($ra, $dec);
printf("fk4gal: %s,%s => %s,%s\n", turn2str($ra,'H',0),
turn2str($dec,'D',0), turn2str($l,'D',0), turn2str($b,'D',0));
($ra, $dec) = galfk4($l, $b);
printf("galfk4: %s,%s => %s,%s\n", turn2str($l,'D',0),
turn2str($b,'D',0), turn2str($ra,'H',0), turn2str($dec,'D',0));
$dec = 0.2;
($az, $el) = coord_convert($ra, $dec, 4, 1, $mjd, $longitude, $latitude,
0.00005);
printf("coord_convert: Source %s, %s\n",
turn2str($ra,'H',0), turn2str($dec,'D',0));
printf(" MJD %.2f\n", $mjd);
printf(" Observatory %s, %s\n",
turn2str($longitude,'D',0,'deg'), turn2str($latitude,'D',0,'deg'));
printf(" ==> az,el %s, %s\n",
turn2str($az,'D',0), turn2str($el,'D',0));
|