赤道座標の換算コード

参考:http://d.hatena.ne.jp/yoshiyuki_kitne/20070507/p1

まぁ、単に四則演算を自動でやってくれるだけなんだけど。

#! usr/bin/perl
#
#--------------------------------------------------------------
#
#           RaDec_calc.pl
#
#--------------------------------------------------------------
#
# Description:
# ===========
#   赤経α[h:m:s]、赤緯δ[d:m:s]をともにdeg、arcmin、arcsec
# 単位に換算してくれるプログラム。
# 
#
# Usage:
# =====
#	RaDec_calc.pl  RA[h:m:s]   Dec[d:m:s]
#
#   RA [h:m:s]	: 赤経RA
#   Dec[d:m:s]	: 赤緯Dec
#
#
#
# Revision history:
# ================
#   created  May  25  2007  
#   revised  August  26  2007  円周率の最後の桁
#   revised  August  27  2007  RA, DECの符号を文字として処理
#   revised  August  28  2007  use/bin/perl
#
#--------------------------------------------------------------

$pi = 3.1415926536;

if(@ARGV != 2){
	die "usage: RaDec_calc.pl  RA[h:m:s]   Dec[d:m:s] \n";
}

$RA		= shift @ARGV;
$Dec	= shift @ARGV;

@Dec	= split(/:/, $Dec);
#if($Dec[0] >= 0){
if($Dec[0] =~ /^-/){
	$Dec_deg	= $Dec[0] - $Dec[1] / 60. - $Dec[2] / 3600.;
}
else{
	$Dec_deg	= $Dec[0] + $Dec[1] / 60. + $Dec[2] / 3600.;
}
$Dec_min	= $Dec_deg * 60;
$Dec_sec	= $Dec_deg * 3600;
$Dec_rad	= $Dec_deg * $pi / 180.;

@RA		= split(/:/, $RA);
#if($RA[0] >= 0){
if($RA[0] =~ /^-/){
	$RA_deg		= ($RA[0] - $RA[1] / 60. - $RA[2] / 3600.)*15 ;
}
else{
	$RA_deg		= ($RA[0] + $RA[1] / 60. + $RA[2] / 3600.)*15 ;
}
$RA_min		= $RA_deg * 60;
$RA_sec		= $RA_deg * 3600;

print "\n";
print "RA  = $RA_deg [deg] \n";
print "RA  = $RA_min [arcmin] \n";
print "RA  = $RA_sec [arcsec] \n\n";

print "Dec = $Dec_deg [deg] \n";
print "Dec = $Dec_min [arcmin] \n";
print "Dec = $Dec_sec [arcsec] \n\n";