スライムびより(ナスビもね!)

IT(笑)やら日々の生活の小ネタ。時に風物を取り上げることも。

一年分の日の出と日の入りをプログラムで求める

日が短くなってくるとなんとも寂しい気分になっちゃいます。ナスライム(仮)です。

今年はまだまだ冷やし中華が美味しいですね!

地点と標高を指定したら、指定した1年分の日の出と日の入りの時刻を算出できるプログラムを、ウェブ向けにPHPとかで書けないかなと思ったんですね。国立天文台には以下のページがありまして、日の出日の入りだけでなくいろいろ調べることができます。

eco.mtk.nao.ac.jp

もちろん、緯度経度標高まで自分で指定した地点の日の出日の入りを見ることができるので、それを使えばいいのでしょうが。分単位での出力なんですよね。いろいろ細かいことを知りたいので、秒単位で出力できるようにしたいなぁ、なんてことを考えたわけです。

ナスビ王国のあさやけ。

というわけで、今回の記事はちょっと専門的なところがあります。「そういうものなのね」と思って読み進めていただければ幸いです。

方法発見!プログラムもできました

で、ちょっと調べたら「ナスライムの考え休むに似たり」ということが判明しました。詳細は略しますが、一言でいうとめんどくさい、これに尽きます(いやそれ説明雑すぎるでしょ)

一旦断念したんですが、そこはあきらめの悪いナスライムのこと、最近流行ってるらしいPythonというプログラミング言語であれば、そういうものを持ったライブラリが整備されているだろうと思いまして。調べたらあっという間に、使い方情報にぶち当たりました。

あたり!

システム開発用に使用していたPCが故障中のため、代替のPCに環境を構築することに若干手間取りましたが。プログラムを書き出したら、ほどなくして欲しい情報を得られるようになりました。

こんな感じで出力されます(日付と時刻2つをカンマ区切り)

 

これはナスライムがすごいわけではなく、Pythonというプログラミング言語とそれを取り巻く環境が凄いのだということは、言うまでもありません。

誤差の理由は確認中

なお、国立天文台のサイトで得られる時刻情報と比較すると、日の出の判定が若干遅く、日の入りの判定が若干早くなっています。理由はわかりませんが、まず誤差があるとうことと、ついで日の出日の入りの判定基準が両者で違う可能性を考えてます。

誤差は調査中ですよー

 

日の出・日の入りとも定義は、太陽の上辺が水平線にかかったところです。もしかして今回のプログラムでは太陽の中心点あるいは下辺が水平線に、という可能性はあります。仕様をチラ見したレベルではわかりませんでしたけどね。もう少し調べておきたいと思います。仕様を確認したところ、日の出日の入り時刻を求めるために使ったメソッド(といいます)はやはり天体の上辺が水平線にかかるところですので、定義は同じですね。おそらく別の条件が絡んでくるのかなと思いますが、誤差の話はもう少し確認しましょうかね。

日が落ちるのがどんどん早まっていくのが実感できる季節です。夕暮れ時は交通事故にご注意を。ナスライムでした。