日・月の出・入・南中計算実行ファイル!
Updated:
先日は「日・月の出・入・南中計算Rubyスクリプト」を紹介しました。
そのRubyスクリプトを Microsoft Visual C# Express Edition に移行して実行(EXE)ファイルを作成してみました。 コマンドラインで日付、緯度、経度、標高を指定して実行すると計算結果を出力します。( 時刻は日本時間(UTC+9)固定 )
ソースは公開しませんが、実行(EXE)ファイルをダウンロードできるようにしておきます。興味のある方はどうぞ。
使用方法
動作確認について
アプリ作成・動作確認は WindowsXP SP3 + .NET Framework 4.0 Client Profile で行いました。 特別な処理は盛り込んでいませんので、.NET Framework は 2.0, 3.0, 3.5, 3.5 Client Profle, 4.0 でも動作すると思います。
使用方法
ダウンロードした圧縮ファイルを解凍後、コマンドプロンプトで引数を指定して”SunMoon.exe”を実行するだけです。
>SunMoon 第1引数 第2引数 第3引数 第4引数 [ 第5引数 ]
引数について
日付・緯度・経度・標高は必須です。オプションは省略すると全情報を出力します。 オプションを省略した場合の出力順は下記の第5引数の説明に記載のアルファベット順となります。 オプションを指定した場合は指定した順に出力します。
引数 : 第1 ( 日 付 ) [必須] [ 99999999 ]
計算対象の日付(グレゴリオ暦)を半角8桁数字で指定します。
第2 ( 緯 度 ) [必須] [ [+|-]999.99999999 | [+|-]999:99:99.99 ]
緯度を 度 または 度・分・秒 で指定します。
( 北緯はプラス、南緯はマイナス )
( 度 の小数点以下、度・分・秒 の分以下は省略可 )
第3 ( 経 度 ) [必須] [ [+|-]999.99999999 | [+|-]999:99:99.99 ]
経度を 度 または 度・分・秒 で指定します。
( 東経はプラス、西経はマイナス )
( 度 の小数点以下、度・分・秒 の分以下は省略可 )
第4 ( 標 高 ) [必須] [ 9999.99999999 ]
標高をメートルで指定します。
( 小数点以下分以下は省略可 )
第5 ( オプション ) [省略可] [ abcdefghijkl ]
出力項目を下記の半角小文字アルファベットが指定可能です。
( 無指定なら全指定と判断 )
a : 日の出時刻
b : 日の出方位角
c : 日の入時刻
d : 日の入方位角
e : 日の南中時刻
f : 日の南中高度
g : 月の出時刻
h : 月の出方位角
i : 月の入時刻
j : 月の入方位角
k : 月の南中時刻
l : 月の南中高度
使用例
オプション指定無し
指定の日付・緯度・経度・標高の全情報を出力します。 2011年9月18日の島根県庁(北緯35.47222222度、東経133.05055556度、標高は0メートルと仮定)の場合です。
>SunMoon 20110918 35.47222222 133.05055556 0
2011/09/18 [ 35.47222222N 133.05055556E 0m ] 05:52:00 86.77 18:11:48 272.99 12:0
2:11 56.58 21:13:18 62.97 11:00:38 296.16 03:43:58 75.18
オプションに日の出・入時刻のみ出力する例
指定の日付・緯度・経度・標高の全情報を出力します。 2011年9月18日の島根県庁(北緯35度28分20秒、東経133度03分02秒、標高は0メートルと仮定)の場合です。
>SunMoon 20110918 35:28:20 133:03:03 0 ac
2011/09/18 [ 35:28:20N 133:03:03E 0m ] 05:52:00 18:11:48
各種計算の丸め方法や、大気差の計算条件・方法などに多少の誤差はあります。 当方が任意の位置の任意の日付で確認してみたところ、以下のような誤差が発生します。
- 日・月の出・入・南中時刻 プラスマイナス1秒未満
- 日・月の出・入方位角 プラスマイナス0.0001度未満
- 日の南中高度 プラスマイナス0.01度未満
- 月の南中高度 プラスマイナス1度未満
Rubyスクリプトで実行した場合と同じ誤差です。 この誤差については、色々なサイトで確認してみましたが、時刻を分単位、方位角・高度を100分の1単位で丸めれば、どれも結果は似たようなものになります。
※この実行(EXE)ファイルは個人的に利用することが目的で作成しています。実行結果の保証はいたしません。個人の責任の元ご利用ください。 ※著作権は、mk-mode.com に帰属しますが、自由に配布して頂いてかまいません。 ※また、ベクター等にアップするつもりも(今のところは)ありません。
参考にしたサイト・文献
VisualC# はそんなにC言語っぽくなく、むしろ VisualBasic と Java を足して2で割ったような感じに思います。 (VisualBasic をオブジェクト指向にした感じ?)
以上。
Comments