Tensim に日の出・日の入りを計算するページを追加した(*´ェ`)

日付と観測地点を入れると、その日の太陽の出没や薄明の時刻を計算する(*゚ェ゚*)
- 日の出・日の入りの時刻と方位角
- 市民・航海・天文薄明の時刻
- 南中の時刻と高度
- 昼の長さ
- 1日の太陽の高度のグラフ
観測地点は都市のリストから選ぶか、地図をクリックするか、現在地ボタンで指定できる(*´ェ`)高さを入れると、海のように水平線まで見通せる場所での眼高差も補正する(*゚ェ゚*)白夜や極夜の日はその旨を表示するようにした(*´ェ`)
入力した値は URL に残るので、そのまま共有すれば同じ結果が見られる(*´ェ`)
日の出・日の入りは国立天文台の暦と同じく、太陽の上端が地平線に接する時刻にしている(*´ェ`)
大気差は標準大気の値 35′8″ を使っているので、気温や気圧によっては実際とは1〜2分ずれることもある(*゚ェ゚*)
計算には hinodeiri という名前で作っていた C のプログラムを利用した(*´ェ`)ようやく日の目をみることができた…
hinodeiri は太陽の位置を自分では計算せず、指定時刻の天体の位置を返すプログラム で求めた前日・当日・翌日・翌々日の 0 時の太陽の位置を 3次補間して出没時刻を求めている(*゚ェ゚*)
流れはこんな感じ(*´ェ`)
- EOP API から 4日分の EOP をまとめて取得
- 指定時刻の天体の位置を返すプログラム を 4回並列に実行
- その結果を hinodeiri に渡して実行し結果を取得
ここは Go で書いている API に日の出入り用の API を追加して担当させている(*゚ェ゚*)