to.tetramorph.starbase.util
クラス Ephemeris

java.lang.Object
  上位を拡張 to.tetramorph.starbase.util.Ephemeris

public class Ephemeris
extends Object

主にデータベースに入れるためにまとめて天体位置を求めるのに使う。 このクラスを使用するためには、System.setProperty("swe.path","天文暦へのパス") として辞書へのパスが設定されている必要がある。


メソッドの概要
 Map<Integer,Body> getBodyMap(double jday)
          ユリウス日を指定するとその日のスイスエフェメリスが標準でサポートしている すべての天体位置のリストを返す。
 Map<Integer,Body> getBodyMap(double jday, double lat, double lon, int hsys)
          アセンダント,MC,バーテックス,ディセンダント、 1室カスプ〜12室カスプまでを求めmapに登録する。
 List<String> getErrorList()
          isError()がtrueを返したときはこのメソッドでエラーの一覧表を取得できる。
static Ephemeris getInstance()
          このオブジェクトを返す。
 double getSun(GregorianCalendar gcal)
          指定日の太陽黄経を返す。
 swisseph.SwissEph getSwissEph()
          SwissEphのインスタンスを返す。
 boolean isError()
          計算エラーや警告があったときはtrueを返す。
static void main(String[] args)
          テスト
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getInstance

public static Ephemeris getInstance()
このオブジェクトを返す。


getSwissEph

public swisseph.SwissEph getSwissEph()
SwissEphのインスタンスを返す。 理想的にはシステム終了時にswe_close()で閉じること。


getBodyMap

public Map<Integer,Body> getBodyMap(double jday)
ユリウス日を指定するとその日のスイスエフェメリスが標準でサポートしている すべての天体位置のリストを返す。 黄経、黄緯、距離、黄経角速度、黄緯角速度、相対速度が求まる。 天文暦の範囲外の日付を指定すると算術例外がスルーされる。 1万件の計算に約20秒

例外:
ArithmeticException

getBodyMap

public Map<Integer,Body> getBodyMap(double jday,
                                    double lat,
                                    double lon,
                                    int hsys)
アセンダント,MC,バーテックス,ディセンダント、 1室カスプ〜12室カスプまでを求めmapに登録する。


isError

public boolean isError()
計算エラーや警告があったときはtrueを返す。エラーが出る主な理由は、天文暦の 範囲外の日時が指定されたとき。


getErrorList

public List<String> getErrorList()
isError()がtrueを返したときはこのメソッドでエラーの一覧表を取得できる。 ノーエラーならsize()==0のリストが返る。


getSun

public double getSun(GregorianCalendar gcal)
指定日の太陽黄経を返す。これはお手軽に太陽の位置を求めるためのメソッド。


main

public static void main(String[] args)
テスト