遠征前の夜、いつも同じことを調べていました。「日の入りは何時か」「天文薄明が終わるのは何時か」「月はいつ出て、どれくらい明るいのか」。国立天文台のサイトや暦計算ツールを行ったり来たりして、メモ帳に手打ちで書き出す。毎回同じ作業なのに、毎回同じだけ面倒でした。
おまけに、実際に現地に着いてから「あと何分で薄明が明けるんだっけ」と確認したくなっても、山の中では圏外でスマホの検索すら動かないことがよくあります。事前にスクショを撮っておく、紙にメモしておく――そんな運用でごまかしていました。
それなら、必要な情報だけをその場で出してくれて、しかも電波がなくても動くツールを自分で作ってしまおう、と思い立って作ったのが今回の「天文薄明計算」です。
「日の出・日の入り」だけでは足りない理由
星空や星雲を撮るうえで本当に知りたいのは、日の入り・日の出そのものではなく「空がどれくらい暗いか」です。太陽が地平線の下-18°より深く沈むと、空気による散乱光の影響がほぼなくなり、これが天文学的に「完全な夜」とされる天文薄明の基準です(ちなみに-6°は市民薄明、-12°は航海薄明と呼ばれ、段階的に空が暗くなっていきます)。
つまり本当に欲しい数字は、日没時刻でも日の出時刻でもなく、「天文薄明が終わってから、翌朝の天文薄明が始まるまで」という一続きの時間帯。このツールではこれを「撮影可能時間」と呼んでいます。
作ったもの — 天文薄明計算

緯度・経度(と日付)を入力すると、日の入りから翌朝の日の出まで、市民薄明・航海薄明・天文薄明の切り替わり時刻と、実質的な撮影可能時間を計算して表示するブラウザツールです。太陽の位置計算はNOAAの太陽位置アルゴリズム、月の位置・月齢・輝面比の計算はMeeusの天文アルゴリズムをベースに、すべてブラウザ内のJavaScriptだけで計算しています。外部のAPIには一切問い合わせません。
この「外部に問い合わせない」という点が今回いちばんこだわったところで、一度ページを開いておけば、あとは機内モードでも、圏外の山奥でも、そのまま正常に動作します。
使い方
1. 観測地点を入力する(4つの方法)
- プリセット:よく行く遠征先を「名前・緯度経度・タイムゾーン」で登録しておける機能です。圏外の現地では、地図もネット検索も使えないので、実質的にはこれがメインの入力手段になります。一度自宅のWi-Fi環境で登録しておけば、現地では名前を選ぶだけです。
- 手入力:十進度(35.6812のような形式)だけでなく、度分秒(DMS)形式でも入力できます。
- 現在地取得:端末のGPSを使います。GPS自体はネット接続不要で動くので、圏外でも現在地から計算できます。
- 地図から選択:Leaflet + OpenStreetMapの地図から緯度経度を拾える補助機能です。地図タイルの取得にはネット接続が必要なため、オンライン時のみ使える位置づけにしています(自宅でプリセットを登録するときに使うイメージです)。
2. 日付を選ぶ
「今日」「明日」のボタンのほか、日付を直接指定できます。観測地とお使いの端末のタイムゾーンが違う場合(遠征先が海外など)は、両方のタイムゾーンを併記して表示されるようにしています。
3. タイムラインで直感的に把握する
計算結果は数字の表だけでなく、その夜(日没〜翌朝の日の出)を横一本の帯グラフとして表示します。市民薄明・航海薄明・天文薄明・撮影可能時間を色分けし、その上に「月が出ている時間帯」を別レイヤーで重ねて表示します。月が出ているからといって撮影不可と決めつけるのは早計(ナローバンド撮影などは月明かりの影響を受けにくい)なので、あくまで判断材料として重ねているだけで、可否の判定はしない設計にしています。
帯の上にカーソルを乗せると、その位置に対応する正確な時刻と薄明の状態がツールチップで出るようにもしてあります。「このあたりで月が沈むから、そこから3時間くらいが本命かな」といった見立てが、パッと動かすだけでできます。
4. 月の情報を確認する
月の出・月の入り時刻に加えて、月齢と輝面比(照度)、南中高度の目安も表示します。繰り返しになりますが、これらはあくまで「参考情報」で、撮影可否をアプリ側が機械的に判定することはしません。
5. 遠征先を比較する
プリセットを複数登録しておくと、「今週、どの遠征先が条件が良さそうか」を3〜7日分まとめて比較できる表も出せます。輝面比10%未満の新月期はハイライトされるので、遠征計画を立てるときに便利です。
6. カレンダーに書き出す
プッシュ通知は実装していません。オフライン環境ではバックグラウンド通知は信頼できないですし、画面を見れば残り時間はわかるので、通知の必要性自体が薄いという判断です。代わりに、計算した撮影可能時間を.icsファイルとして書き出せるようにしました。端末標準のカレンダーアプリに取り込めば、リマインドはOS側の機能に任せられます。複数の遠征先をまとめて書き出すこともできます。
7. ホーム画面に追加する
PWA(Progressive Web App)として作っているので、スマホでアクセスしてホーム画面に追加すると、普通のアプリのようにアイコンから起動できます。一度追加してしまえば、次回からはブラウザを立ち上げる手間もなく、圏外でもすぐに開けます。
8. ダーク/赤色ナイトモード
現地では暗所でスマホ画面を見ることになるので、通常のライト・ダークテーマに加えて、暗順応を妨げにくい赤色主体の「ナイトモード」も用意しています。ヘッダー右上のボタンでいつでも切り替えられます。
観測地ページも用意しました

乗鞍高原、阿智村、美ヶ原高原、大台ヶ原、波照間島、富士山五合目、高山村、川上村――よく名前が挙がる星空観測スポットについては、座標をあらかじめ入力した状態のページも用意しました。地名で検索して迷い込んできた方でも、そのまま今夜の撮影可能時間を確認できます。
使ってみてどう変わったか
いちばん変わったのは、遠征前の「調べ物」の時間がほぼゼロになったことです。プリセットに登録済みの場所であれば、開いて名前を選ぶだけで、今夜の撮影可能時間・月齢・タイムラインまで一画面で揃います。
そして何より、電波の入らない現地でカウントダウン表示を見ながら「まだ天文薄明が明けるまで◯時間ある」と確認できるのは、想像していた以上に安心感がありました。もし同じような「毎回同じ計算を手作業でやっている」という方がいれば、ぜひ使ってみてください。完全無料で、登録もデータ送信も不要です。