to.tetramorph.starbase.util
クラス NatalChart

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

public class NatalChart
extends Object

TimePlaceから天体位置を求め、getBody()メソッドで天体位置を取得する。 setTimePlace()を実行したタイミングで、すべての天体位置、可能であればハウスカスプ やAC,MC,バーテックスなどの感受点も計算する。天体は太陽から冥王星、フォルスと 四大小惑星の位置を求める。 ノードおよびリリスを取得する際、指定するIDはNODEまたはAPOGEEで、TRUE_NODEや OSC_APOGEEは指定できない。TRUEまたはMEANどちらのタイプを使用するかは、 ChartConfigによって指定する。 このクラスを単体で動作させるためには次のプロパティの設定が必要。

  System.setProperty("swe.path","c:/users/ephe/"); //必須。スイスエフェメリスの辞書ファイルの場所。
  System.setProperty("DefaultTime","00:00:00"); //時間を省略する場合は設定されてる必要がある。
 


フィールドの概要
protected  Body[] bodys
          getBody()で得られる天体オブジェクトはこの配列に格納されている。
protected  String[] bodysError
           
 
コンストラクタの概要
NatalChart()
          デフォルトのプロパティ設定でオブジェクトを作成する。
NatalChart(ChartConfig cc, int group)
          計算設定情報を指定してオブジェクトを作成する。
 
メソッドの概要
 Body getBody(int id)
          指定された天体IDの天体をBodyオブジェクトで返す。
static Body getBody(TimePlace timePlace, int se_body_id)
          指定された天体の位置を求める。
 Body getBodyBySecondaryProgression(TimePlace transit, int body_id)
          1日1年法での天体の位置を返す。
 List<Body> getBodyList(int[] ids)
          指定された天体IDの配列から、天体オブジェクト(Body)のリストを返す。
 Map<Integer,Body> getBodyMap(int[] ids)
          指定された天体IDから天体オブジェクト(Body)を取得し、ハッシュマップに 格納して返す。
 ChartConfig getChartConfig()
          このオブジェクトの設定オブジェクトを返す。
 List<Body> getCuspList()
          ハウスカスプをBodyオブジェクトで返す。
 ErrorBody getErrorBody(int id)
          指定された天体の位置が算出できていない場合は、ErrorBodyオブジェクトを返す。
 List<ErrorBody> getErrorList(int[] ids)
          指定された天体IDの配列から、エラーが発生して位置を求められなかった天体が あれば、そのリストを返す。
 String getHouseSystemName()
          ハウス分割法の名前を返す。
 TimePlace getSecondaryProgressionTimePlace(TimePlace transit)
          このオブジェクトにセットされている日時を出生日時とみなし、引数で与えられた transit時刻から進行計算用の日時を求める。
 TimePlace getTimePlace()
          このオブジェクトに日時と場所をTimePlaceオブジェクトで返す。
static void main(String[] args)
           
 TimePlace search(int id, double targetAngle, boolean isBackwards)
          現在セットされているTimePlaceの日時から計算して、指定された天体が指定の位置 にくる日時を計算して返す。
 void setChartConfig(ChartConfig cc)
          このオブジェクトに設定オブジェクトをセットする。
 void setTimePlace(TimePlace timePlace)
          日時と場所をセットする。
 void setTimePlace(TimePlace timePlace, int[] planets)
          日時と場所をセットする。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

bodys

protected Body[] bodys
getBody()で得られる天体オブジェクトはこの配列に格納されている。 SUNからはじまりCUSP12で終わる。


bodysError

protected String[] bodysError
コンストラクタの詳細

NatalChart

public NatalChart()
デフォルトのプロパティ設定でオブジェクトを作成する。 groupは0が設定される。


NatalChart

public NatalChart(ChartConfig cc,
                  int group)
計算設定情報を指定してオブジェクトを作成する。

パラメータ:
cc -
group - N,P,Tを表す値。このクラスによって求まるBodyオブジェクトのgroup フィールドにはこの値がセットされる。
メソッドの詳細

getChartConfig

public ChartConfig getChartConfig()
このオブジェクトの設定オブジェクトを返す。


setChartConfig

public void setChartConfig(ChartConfig cc)
このオブジェクトに設定オブジェクトをセットする。再計算は行わないので、 設定を反映したデータを取得したい場合はsetTimePlace()を再実行すること。


setTimePlace

public void setTimePlace(TimePlace timePlace)
日時と場所をセットする。このタイミングで天体位置は計算され、それをgetBody() で取得可能となる。


setTimePlace

public void setTimePlace(TimePlace timePlace,
                         int[] planets)
日時と場所をセットする。天体IDを配列で指定することで、必要な天体のみを計算し、 計算時間を稼ぐことができる。指定できる天体は、10惑星と小惑星に限られる。 またこの配列の中で太陽はかならず指定しなければならない。 AC,MC,バーテックスなどは指定してはならない。


getTimePlace

public TimePlace getTimePlace()
このオブジェクトに日時と場所をTimePlaceオブジェクトで返す。 (setTimePlace()でセットしたものと同じもの)。


getBodyBySecondaryProgression

public Body getBodyBySecondaryProgression(TimePlace transit,
                                          int body_id)
                                   throws IllegalArgumentException
1日1年法での天体の位置を返す。このオブジェクトにセットされている日時を出生 時刻とみなし、引数で与えられたtransit時刻での天体の進行位置を求める。 このメソッドは実行速度が速いのが利点。

パラメータ:
transit - 日時をTimePlaceオブジェクトで指定する。場所は無視される。
body_id - 天体ID。スイスエフェメリスが対応している天体IDに限る。
例外:
IllegalArgumentException - 天体暦範囲外の日時がセットされた場合や、 天文暦ファイルが見つからない(これも範囲外ということだが)場合

getBody

public static Body getBody(TimePlace timePlace,
                           int se_body_id)
指定された天体の位置を求める。AC,MC,VERTEXなどの仮想天体は求める事ができない。 SweConstのSE_SUN等、SE_で始まる天体のみ可能。 このメソッドの利点は、 一つの天体だけを計算するので速いこと。

パラメータ:
timePlace - 日時と場所
se_body_id - SweConstのSE_SUN等、SE_で始まる天体のみ可能。
戻り値:
求まったBodyオブジェクトのgroupフィールドは0。

getSecondaryProgressionTimePlace

public TimePlace getSecondaryProgressionTimePlace(TimePlace transit)
このオブジェクトにセットされている日時を出生日時とみなし、引数で与えられた transit時刻から進行計算用の日時を求める。 出生日時より過去の日時を指定しても問題なく計算できる。


getBody

public Body getBody(int id)
指定された天体IDの天体をBodyオブジェクトで返す。戻り値がnullの場合は、 getbodysError()で、取得できない理由を知る事ができる。


getErrorBody

public ErrorBody getErrorBody(int id)
指定された天体の位置が算出できていない場合は、ErrorBodyオブジェクトを返す。 算出できている場合はnullを返す。

パラメータ:
id - 天体ID

getBodyList

public List<Body> getBodyList(int[] ids)
指定された天体IDの配列から、天体オブジェクト(Body)のリストを返す。 日時(TimePlace)がセットされていない場合はサイズ0のリストを返す。 天文暦の範囲外で位置が求められなかった天体は、返されるリストからは除外され る。除外された天体のエラー情報は、getErrorList()で取得できる。

パラメータ:
ids - 取得する天体のIDリスト

getBodyMap

public Map<Integer,Body> getBodyMap(int[] ids)
指定された天体IDから天体オブジェクト(Body)を取得し、ハッシュマップに 格納して返す。


getErrorList

public List<ErrorBody> getErrorList(int[] ids)
指定された天体IDの配列から、エラーが発生して位置を求められなかった天体が あれば、そのリストを返す。エラーが無い場合は、size()が0のリストが返る。

パラメータ:
ids - 天体IDの配列
戻り値:
ErrorBodyのリスト

getCuspList

public List<Body> getCuspList()
ハウスカスプをBodyオブジェクトで返す。 日時がセットされていない場合は、牡羊座から30度づつ分割されたリストを返す。


getHouseSystemName

public String getHouseSystemName()
ハウス分割法の名前を返す。時刻や場所の不在によって、指定されたハウス分割法 が使用できない場合があり、そのときは分割法がソーラー系のものに自動的に切り替わる。 ゆえにこのメソッドは一度はsetTimePlace()を実行されて、位置計算が行われるまで 確定せず、確定していない状態のときこのメソッドはnullを返す。


search

public TimePlace search(int id,
                        double targetAngle,
                        boolean isBackwards)
現在セットされているTimePlaceの日時から計算して、指定された天体が指定の位置 にくる日時を計算して返す。

パラメータ:
id - 天体ID
targetAngle - 移動させたい黄経
isBackwards - 過去に向かって検索する場合はtrueを指定する。

main

public static void main(String[] args)