日の出時間の計算方法 【Python PyEphem】使ってみた!

2018年の初日の出時間を正確に調べる方法を調査した結果、Pythonのライブラリ"PyEphem"でそれっぽいことができることがわかったところまでが、先日の投稿。

今日はその使い方に関してまとめてみる。
日の出時間を計算するだけでなく、日の入りや色々な数値も可能…



一先ず環境構築 ("python3 -m venv" オプションで…)

今回は 仮想環境にPython3 をベースにした環境を構築する。Python3 標準搭載の venv オプションを用いる。

カレントディレクトリ上に仮想環境を構築するためのコマンド。"venv"ディレクトリが構築される。

python3 -m venv venv

仮想環境の実行

仮想環境実行コマンド

source venv/bin/activate

この結果、コンソール上に "(venv)" が表示され、仮想環境への突入がわかる

"PyEphem"ライブラリーの実験

まずは"PyEphem"ライブラリのインストールから…

pip install pyephem

日の出時間の計算サンプル

import ephem

location = ephem.Observer()
location.lat,location.lon = '34.877599','138.333849'
location.date = '2018/01/01'
print(location.previous_rising(ephem.Sun()))

結果

2017/12/31 21:53:58

日の出時間が31日、しかも深夜の時間…不思議な結果。
だけどご心配なく!!

GMT(世界標準時時間)での出力になってるためだから、時差9時間進めれば結果は、

2018/01/01 06:53:58

となる。

上記location.lat, location.lonの部分に緯度、経度を入力する。更にlocation.dateに日の出時刻を得たい日時を入力する。

以上で、簡単に目的地点の日の出情報を得られる。

これ以外にも、下記のような時間情報を取得できる。

location.previous_rising(ephem.Sun()    // 前回、日の出時間
location.next_setting(ephem.Sun())  // 次回、日の入り時間
location.previous_rising(ephem.Moon())  // 前回、月の出た時間
location.next_setting(ephem.Moon()) // 次回、月の入った時間