このページでは[JPL DE 天文暦]を利用した天文プログラムのC言語ソースを提供します。なおプログラムに使用するJPLの各種DE天文暦ファイルは以下のFTPサイトよりダウンロードください。
添付したソフトはDE-200/406/405/421/422/430/431/440/441をサポートしています。
JPL/NASA 天文暦ダンロードサイト: (https://ssd.jpl.nasa.gov/ftp/eph/planets/Linux/)
太陽、月、惑星、恒星の位置計算 プログラム
DEファイルのデータは直交座標系のみで、赤緯赤経等の位置情報を得るためには追加の計算が必要となります。以下のプログラムにて、太陽/月/惑星/恒星の視差補正等を含めた位置計算が出来ます。
以下の環境で使用してください。
@"jpl_eph_6.0.zip"を解凍しCコンパイラでコンパイルした実行ファイル
AJPL/NASAのサイトのDExxx.xxxファイル
の2つのファイルを使って位置を計算します。計算例も添付します。
1)太陽・月・惑星位置計算ソース"jpl_eph_6.0.zip"
2)ソースに含まれる計算例の結果"計算結果.txt"
なおCコンパイラはMS Visual Studio 2008を使用して開発しています。
Readmeファイルは添付していないのでソースを読んで使ってください。
jpl_eph.cの113行目から154行目にあるDEファイルを置くデイレクトリ名を自分のPCの
環境に合わせて変更ください。
惑星暦計算例のmain()関数はmain.cの最後に記述しています。
恒星の位置計算例はmain_star()としていますので、惑星暦計算例のmain()の名前を変更した上で、
main()に名前を変更して使用ください。
注1:DE441431のファイルは2.7GByteあるのでAD10000年以降を参照する場合には"jpl_eph_6.0.zip"の中に添付した"filedivide.c"でDEファイルを2分割して使用ください。32bit環境で2GB以上のメモリにアクセスできないのでエラー又は不正値となります。
最初はファイルサイズが小さいDE440(linuz_p1550p2650.430)97.5MBが良いと思います。
DE440のサポート期間はAD1550-AD2650まで。
注2:Nutationは第3版[jpl_eph_3.0.zip]ではIAUの[SOFA library」の[nut00b.c]を使用しましたが、
第4版[jpl_eph_4.0.zip]では同等(IAU2000B)の内部関数に変更しました。
注3:第4版で星の位置計算に光差の影響の計算も追加しました。
注4:計算速度向上のため、第4版[jpl_eph_4.0.zip]では角度の受け渡しを恒星の位置計算を除き、
[度からラジアン]に変更しました。また光度の計算をEphemerides()からEphemerides2()へ移動。
従って以前配布のソースとは互換が無いです。コンペア等で確認して使用下さい。
注5:星表データをHipparcos星表(2007修正版)へ更新したためv.5更新しました。 2019/06/21
ファイル名等に修正があります。
******************************************************************************
ここで紹介するプログラムは無保証です。このプログラムの使用によっていかなる
損害が生じても一切責任は負えません。しかしながら、バグ・改善要望につきまし
ては出 来るだけ対応したいと思いますのでお知らせください。
他のNETへの転載、再配布等は自由に行って下さい、特に制限しません。営利目的
(無料配付を含む)での利用も制限しません。しかし、配布等の時にはオリジナル
ソースをこの形式で添付下さい。また、著作権は放棄していません。
******************************************************************************
旧掲載ファイル
JPL天文暦CD-ROMを”C”で読む
JPL DE天文暦ファイルを”C”で読む(第2版)
JPL DE431ファイルの小型化
JPL DE天文暦ファイルを”C”で読む(第3版)
Mutual Occultation of Planets: (2016/09/18)
[JPL DE 天文暦]で天文計算(第5版)
|