Tensim 日の出入り計算ページを追加

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

日の出入り計算

日付と観測地点を入れると、その日の太陽の出没や薄明の時刻を計算する(*゚ェ゚*)

  • 日の出・日の入りの時刻と方位角
  • 市民・航海・天文薄明の時刻
  • 南中の時刻と高度
  • 昼の長さ
  • 1日の太陽の高度のグラフ

観測地点は都市のリストから選ぶか、地図をクリックするか、現在地ボタンで指定できる(*´ェ`)高さを入れると、海のように水平線まで見通せる場所での眼高差も補正する(*゚ェ゚*)白夜や極夜の日はその旨を表示するようにした(*´ェ`)

入力した値は URL に残るので、そのまま共有すれば同じ結果が見られる(*´ェ`)

日の出・日の入りは国立天文台の暦と同じく、太陽の上端が地平線に接する時刻にしている(*´ェ`)
大気差は標準大気の値 35′8″ を使っているので、気温や気圧によっては実際とは1〜2分ずれることもある(*゚ェ゚*)

計算には hinodeiri という名前で作っていた C のプログラムを利用した(*´ェ`)ようやく日の目をみることができた…
hinodeiri は太陽の位置を自分では計算せず、指定時刻の天体の位置を返すプログラム で求めた前日・当日・翌日・翌々日の 0 時の太陽の位置を 3次補間して出没時刻を求めている(*゚ェ゚*)

流れはこんな感じ(*´ェ`)

  • EOP API から 4日分の EOP をまとめて取得
  • 指定時刻の天体の位置を返すプログラム を 4回並列に実行
  • その結果を hinodeiri に渡して実行し結果を取得

ここは Go で書いている API に日の出入り用の API を追加して担当させている(*゚ェ゚*)