SVGで星空を描く

hipparcos

アニメ『化物語』(2009) 七夕になるといつも思い出すこのアニメ。なぜかというと、エンディング曲の「君の知らない物語」(supercell)の歌詞にアルタイルとベガが出てくるからです。彦星と織姫ですね。
このアニメは、主人公がヒロインにほっぺたを、ホチキスで綴じられるシーンがあって、驚愕して視聴始めたのですが、いろいろシリーズが出てくると見なくなってしまいました。シリーズに番号とかついていれば、わかりやすいのですが、○○物語って形で増えていくので、どの順番で見ればよいのやら、「俺物語」は違うよなあ、と迷ってるうちに今度にしようってなります。ということでそのうちまとめて一気に見る予定です。
おそらく次回の七夕の季節に見ることを思い出すと思います。

七夕なので、星空(っぽいもの)を描いてみます。
NASA(http://heasarc.gsfc.nasa.gov/)からデータをダウンロードして伸長します。

~$ wget http://heasarc.gsfc.nasa.gov/FTP/heasarc/dbase/dump/heasarc_hipparcos.tdat.gz
~$ gunzip *.gz
~$ ls 
heasarc_hipparcos.tdat
~$ head heasarc_hipparcos.tdat
<HEADER>
#
#         TABLE: heasarc_hipparcos
#      LOCATION: dbms1.gsfc.nasa.gov
#    TOTAL ROWS: 118218
#
# CREATION DATE: 2003-05-05 16:58:20
# LAST MODIFIED: 2015-03-18 11:26:54
#   EXGEST DATE: 2015-03-18 11:30:18
#
~$ 

データのことはまだよくわかってないので、適当にプロットするスクリプトです。星空っぽく見えればよかったので。

~$ perl -F'\|' -nae '
BEGIN{
print <<EOL;
<svg width="2560" height="1440">
<rect x="0" y="0" width="2560" height="1440" fill="black"></rect>
EOL
}
{if( $F[0] =~ /HIP/){
	$vmag=$F[7];
	if($vmag < 7){
		$name = $F[0];
		$ra=$F[1];
		$dec=$F[2];
		$size=1;
		$color="gray";

		$x=int $ra * 2560 / 360;
		$y=960 + int $dec * 960 / 160;

		if($vmag < 3){
			$size=2;
			$color="white";
		}
print <<EOL;
	<circle cx="$x" cy="$y" r="$size" fill="$color" />
EOL
	}
}}
END{ print "</svg>"}
' < heasarc_hipparcos.tdat > /tmp/tmp.svg
inkscape -z -e out.png /tmp/tmp.svg

2 responses to “SVGで星空を描く

  1. Pingback: /usr/localディレクトリに何を置けばよい? | コマンドの達人

  2. At last! Something clear I can unretsdand. Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA