to.tetramorph.starbase.lib
クラス ChartFactor

java.lang.Object
  上位を拡張 to.tetramorph.starbase.lib.ChartFactor

public class ChartFactor
extends Object

スイスエフェメリスを使ってホロスコープ描画に必要なデータを取り出し扱いやすい形 に整形する。スイスエフェメリスが提供してくれるのは、プリミティブ型の天体位置だ が、天体位置やアスペクトを表すクラスを用意して、それに値を入れるようにする。

求めたい天体名のリスト、日時、時間を渡すと、天体位置を計算して取り出せるよう になるという方法。

ノードにはmeanとtrueの二つのタイプがあるが、 Preferenceの"UseMeanNode"の値が真ならmeanノードで計算し、 違うならtrueノードで計算する。

アポジーにはmeanとoscu.の二つのタイプがあるが、 これは"UseMeanApogee"の値が真ならmeanアポジーで計算し、 違うならoscu.アポジーで計算する。

このクラスは後々には廃止する予定なのだが、ephtoolプロジェクトの SolarAspectCalendar(技評の仕事用)が使用しているため、削除するときはその対処 も忘れてはいけない。


フィールドの概要
static int ANGULAR
          アンギュラー (1,4,7,10宮) を表す定数
static int CADENT
          キャデント (3,6,9,12宮) を表す定数
static boolean PLOT_ADJUST
          感受点位置をホロスコープ描画用に調整する。
static boolean PLOT_NOT_ADJUST
          感受点位置をホロスコープ描画用に調整しない。
static int SUCCEDENT
          サクシデント (2,5,8,11宮)を表す定数
 
コンストラクタの概要
ChartFactor(ChartFactor cf)
          swissEph,pref,planetSetのみをシャローコピーしてオブジェクトを複製作成する。
ChartFactor(swisseph.SwissEph swissEph, Preference pref)
           
ChartFactor(swisseph.SwissEph swissEph, Preference pref, int[] bodys)
           
ChartFactor(swisseph.SwissEph swissEph, Preference pref, Set<Integer> planetSet)
           
 
メソッドの概要
static String formatSignAngle(double value, int degits)
          星座度数の値 ( 0 >= x < 30) を指定小数点で「切り捨て」て文字列で返す。
static String[] formatSignAngles(double[] values, int degits)
          配列で与えられた星座度数の値 ( 0 >= x < 30) を指定小数点で「切り捨て」て文字列で返す。
 Body getBody(int id)
          天体番号から天体位置を返す。
 Body getCulminatedPlanet()
          カルミネイトしている天体(エレベートしている惑星の中でもっともMCに近い惑星を返す。
 double[] getCusps()
          ハウスカスプのリストを返す。
 List<Body[]> getElementsTable()
          火,地,風,水,C,F,M,陽,陰の星座にそれぞれどんな天体(複数)が入っているかを返す。
 List<Body> getElevatedPlanets()
          エレベートしている惑星のリストを返す。
 List<Body> getHouseInPlanets(int house)
          各ハウスに入っている惑星のリストを返す。
 String getHouseSystemName()
          ハウスシステム名を返す。
 Object[] getMoonFace(int div)
          太陽と月の離角から月齢を求める。
 List<Body> getPlanets(int[] bodys, boolean plotAdjust)
          引数で指定された天体(複数)の位置を返す。
 List<Body> getPlanets(List<Integer> bodyList, boolean plotAdjust)
          引数で指定された天体(複数)の位置を返す。
static double[] getPlanetsAngle(List<Body> planetList)
          引数で指定された天体リストの黄経だけを取り出してdouble[]にして返す。
 List<Body> getPlanetsByHouseType(int type)
          アンギュラー、サクシデント、キャデント別に在泊天体(複数)を求める。
static double[] getPlanetsPlotAngle(List<Body> planetList)
          引数で指定された天体リストのplot黄経だけを取り出してdouble[]にして返す。
 Set getPlanetsSet()
           
 Body getRisingPlanet()
          上昇星(AC±5度以内にある天体で、ASCに一番近い天体を返す。
 Body getRulerPlanet()
          支配星(ASCサインのルーラー)を返す。
static void main(String[] args)
           
 void setCompositProgression(TimePlace natalTimePlace, TimePlace transitTimePlace)
          コンポジット方式の進行法で天体位置を求める。
protected  void setDateAndPlace(double jd, double lat, double lon, boolean isSetPlace, boolean isSetTime)
          ユリウス日と観測地の緯度経度から天体位置とハウスを計算
 void setDateAndPlace(GregorianCalendar datetime, double lat, double lon, boolean isSetPlace, boolean isSetTime)
          日時と場所を与えると天体位置やアセンダントやMCの座標やハウスカスプを計算する。
 void setDateAndPlace(TimePlace timePlace)
          日時と場所をNatalオブジェクトで与えると、天体位置やアセンダントやMCや ハウスカスプを計算する。
 void setPrimaryProgression(TimePlace natalTimePlace, TimePlace transitTimePlace)
          一度一年法での天体位置を求める。
 void setSecondaryProgression(TimePlace natalTimePlace, TimePlace transitTimePlace)
           
 void setSecondaryProgression2(TimePlace natalTimePlace, TimePlace transitTimePlace)
          一日一年法で天体の進行位置を求めるが、AC,MCについては別の方式で計算する。
 void setSolarArcProgression(TimePlace natalTimePlace, TimePlace transitTimePlace)
          ソーラーアーク進行法での天体位置を求める。
 void setTrueSecondaryProgression(TimePlace natalTimePlace, TimePlace transitTimePlace)
          1日1年法での進行位置を計算する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ANGULAR

public static final int ANGULAR
アンギュラー (1,4,7,10宮) を表す定数

関連項目:
定数フィールド値

SUCCEDENT

public static final int SUCCEDENT
サクシデント (2,5,8,11宮)を表す定数

関連項目:
定数フィールド値

CADENT

public static final int CADENT
キャデント (3,6,9,12宮) を表す定数

関連項目:
定数フィールド値

PLOT_ADJUST

public static final boolean PLOT_ADJUST
感受点位置をホロスコープ描画用に調整する。getPlanets()で指定する定数。

関連項目:
定数フィールド値

PLOT_NOT_ADJUST

public static final boolean PLOT_NOT_ADJUST
感受点位置をホロスコープ描画用に調整しない。getPlanets()で指定する定数。

関連項目:
定数フィールド値
コンストラクタの詳細

ChartFactor

public ChartFactor(swisseph.SwissEph swissEph,
                   Preference pref,
                   int[] bodys)
パラメータ:
swissEph - new SwissEph()したインスタンス。
pref - 各種設定情報が入ったPreferenceオブジェクト 詳細はswisseph.SwissEph.swe_houses()を参照。
bodys - 計算対象とする天体番号を格納した配列。Constを参照せよ。
関連項目:
SwissEph.swe_houses(double tjd_ut,int iflag,double geolat,double geolon,int hsys,double[] cusp,double[] ascmc)

ChartFactor

public ChartFactor(swisseph.SwissEph swissEph,
                   Preference pref,
                   Set<Integer> planetSet)
パラメータ:
swissEph - new SwissEph()したインスタンス。
pref - 各種設定情報が入ったPreferenceオブジェクト 詳細はswisseph.SwissEph.swe_houses()を参照。
planetSet - 計算対象とする天体番号を格納したリスト。Constを参照。
関連項目:
SwissEph.swe_houses(double tjd_ut,int iflag,double geolat,double geolon,int hsys,double[] cusp,double[] ascmc)

ChartFactor

public ChartFactor(swisseph.SwissEph swissEph,
                   Preference pref)
パラメータ:
swissEph - new SwissEph()したインスタンス。
pref - 各種設定情報が入ったPreferenceオブジェクト 詳細はswisseph.SwissEph.swe_houses()を参照。
関連項目:
SwissEph.swe_houses(double tjd_ut,int iflag,double geolat, double geolon,int hsys,double[] cusp,double[] ascmc)

ChartFactor

public ChartFactor(ChartFactor cf)
swissEph,pref,planetSetのみをシャローコピーしてオブジェクトを複製作成する。

メソッドの詳細

setDateAndPlace

public void setDateAndPlace(GregorianCalendar datetime,
                            double lat,
                            double lon,
                            boolean isSetPlace,
                            boolean isSetTime)
日時と場所を与えると天体位置やアセンダントやMCの座標やハウスカスプを計算する。 これはトランシットの天体位置を計算するという前提にたっていて、時刻はかならずセット されているものと想定している。

パラメータ:
datetime - 日時をカレンダーオブジェクトで指定
isSetPlace - lat,lonに有効な値をセットしたときはtrueを、場所情報を無視 させたいときはfalseをセットする。
lat - 観測地の緯度
lon - 観測地の経度

setDateAndPlace

public void setDateAndPlace(TimePlace timePlace)
日時と場所をNatalオブジェクトで与えると、天体位置やアセンダントやMCや ハウスカスプを計算する。Natalオブジェクトに時刻が設定されていない場合は、 デフォルトの計算時刻で計算される。観測地の緯度経度が設定されていない場合は、 アセンダントやMCやハウスカスプは計算されない。 デフォルトの計算時刻はSystem.getProperties().get("DefaultCalculateTime")で 定義されている。


setDateAndPlace

protected void setDateAndPlace(double jd,
                               double lat,
                               double lon,
                               boolean isSetPlace,
                               boolean isSetTime)
ユリウス日と観測地の緯度経度から天体位置とハウスを計算


setSecondaryProgression

public void setSecondaryProgression(TimePlace natalTimePlace,
                                    TimePlace transitTimePlace)

setSecondaryProgression2

public void setSecondaryProgression2(TimePlace natalTimePlace,
                                     TimePlace transitTimePlace)
一日一年法で天体の進行位置を求めるが、AC,MCについては別の方式で計算する。 AC,MCの値はMeanSecondayProgressionとは大きくことなる。出生から1年目の進行は 丸1日(24時間)後の天体位置と同じだが、このときアセンダントは1周よりわずに先に 進む。たとえばここで0.8度多く進んだとする。では1年目ではなくちょうど半年後の 進行はどうなるかというと、出生から12時間後の天体位置がそれになり惑星や小惑星は その値を適用するが、AC,MCについては、先にあげた移動量0.8度の半分である0.4度 進んだものとし、出生のACに0.4度加えた値を出す。 MeanSecondayProgressionならこのとき出生から12時間後のAC,MCの値をそのまま採 用する。


setTrueSecondaryProgression

public void setTrueSecondaryProgression(TimePlace natalTimePlace,
                                        TimePlace transitTimePlace)
1日1年法での進行位置を計算する。 MeanSecondayProgressionは平均太陽年で経過時間を割って進行させる日数に変換 するが、平均値である以上ずれが生じる。たとえば出生から40年後の進行位置を求める 場合、1年につき1日うごかすのだとすれば、出生日に40日くわえるわけだが、 満40歳までに経過した時間を太陽年で割ったとしても、きっちり40日という値には ならず秒単位でズレが生じる。このメソッドはCalendarオブジェクトの日付計算 を使って進行日を求めるため、誤差が発生しない。 このメソッドでの一年は、毎年の誕生日から次の誕生日までの時間をいう。


setPrimaryProgression

public void setPrimaryProgression(TimePlace natalTimePlace,
                                  TimePlace transitTimePlace)
一度一年法での天体位置を求める。


setSolarArcProgression

public void setSolarArcProgression(TimePlace natalTimePlace,
                                   TimePlace transitTimePlace)
ソーラーアーク進行法での天体位置を求める。これはSecondayProgression(1日1年法) で太陽が進行した角度をもとめ、それをネイタルの全感受点に加算する方法。 ただし現状ではネイタルから365年以上先のプログレスは計算できず、それを超える とIllegalArgumentExceptionが出る。


setCompositProgression

public void setCompositProgression(TimePlace natalTimePlace,
                                   TimePlace transitTimePlace)
コンポジット方式の進行法で天体位置を求める。 火星とそれ以遠の天体(小惑星も)は1度1年法(PrimaryProgression)で、 太陽から金星、ハウスカスプ、AC,MC、VERTEX等、仮想的な感受点は、 一日一年法で天体位置を求める。


getPlanetsSet

public Set getPlanetsSet()

getBody

public Body getBody(int id)
天体番号から天体位置を返す。


getElementsTable

public List<Body[]> getElementsTable()
火,地,風,水,C,F,M,陽,陰の星座にそれぞれどんな天体(複数)が入っているかを返す。
 List#get(0〜3) 火,地,風,水の順で天体(Body)の配列が返る。
 List#get(4〜6) C,F,Mの順で天体リスト
 List#get(7〜8) 陽,陰の天体リスト
 


getPlanetsByHouseType

public List<Body> getPlanetsByHouseType(int type)
アンギュラー、サクシデント、キャデント別に在泊天体(複数)を求める。

パラメータ:
type - ANGULAR,SUCCEDENT,CADENTの三種類を指定できる。

getRisingPlanet

public Body getRisingPlanet()
上昇星(AC±5度以内にある天体で、ASCに一番近い天体を返す。 ただし対象となるのは太陽から冥王星までのいずれか。 ASCが求まっていない等、算出不能のときはnullを返す。


getCulminatedPlanet

public Body getCulminatedPlanet()
カルミネイトしている天体(エレベートしている惑星の中でもっともMCに近い惑星を返す。 存在しないときはnullを返す。


getElevatedPlanets

public List<Body> getElevatedPlanets()
エレベートしている惑星のリストを返す。7室から12室にある惑星のリストを返すという こと。一つもないときは戻り値のlist.size()が0を返す。


getHouseInPlanets

public List<Body> getHouseInPlanets(int house)
各ハウスに入っている惑星のリストを返す。小惑星は無視する。 一つも入っていないときはsize()==0のリストが返る。

パラメータ:
house - ハウス番号

getRulerPlanet

public Body getRulerPlanet()
支配星(ASCサインのルーラー)を返す。 ASCが求まっていない等、算出不能のときはnullを返す。


getMoonFace

public Object[] getMoonFace(int div)
太陽と月の離角から月齢を求める。divには月相を何分割するかを与える。 たとえば28を与えれば、戻り値は0〜27の値になる。 値はObject[]で返り、[0]はInteger型で月相、[1]にはDouble型で離角


getHouseSystemName

public String getHouseSystemName()
ハウスシステム名を返す。「プラシーダス」「イコール」等。通常はPreferenceで 与えられたハウスシステム名が返るが、時間や緯度経度の不備からカスプの計算が できなかったときは「ソーラーサイン」や「ソーラー」の名前が返る。


getCusps

public double[] getCusps()
ハウスカスプのリストを返す。1室から順番に要素がならんだリストを返す。 Angle#valueにカスプの計算値(0 >= value < 360)、 nameには獣帯座標に整形された度数(0 >= value < 30)がセットされている。 整形された度数はデフォルトでは小数点以下は切り捨てだが、 Preferenceに"NumberOfDecimals"のプロパティが設定されていればその値に 従って小数点以下を切り捨てる。2なら小数点以下二位以下は切り捨てる。


getPlanets

public List<Body> getPlanets(int[] bodys,
                             boolean plotAdjust)
引数で指定された天体(複数)の位置を返す。このメソッドが返す天体位置は、 ホロスコープ描画用に感受点の表示位置が調整されている。

パラメータ:
bodys - 求めたい天体番号の配列 (Constクラスで宣言されているもの)
plotAdjust - 感受点の表示位置調整を行う場合はtrueをセット。ただしtrueに すると処理に時間がかかる。falseならBody#plotはセットされない。

getPlanets

public List<Body> getPlanets(List<Integer> bodyList,
                             boolean plotAdjust)
引数で指定された天体(複数)の位置を返す。このメソッドが返す天体位置は、 ホロスコープ描画用に感受点の表示位置が調整されている。

パラメータ:
bodyList - 求めたい天体番号 (Constクラスで宣言されているもの)リスト
plotAdjust - 感受点の表示位置調整を行う場合はtrueをセット。ただしtrueに すると処理に時間がかかる。falseならBody#plotはセットされない。

getPlanetsAngle

public static double[] getPlanetsAngle(List<Body> planetList)
引数で指定された天体リストの黄経だけを取り出してdouble[]にして返す。


getPlanetsPlotAngle

public static double[] getPlanetsPlotAngle(List<Body> planetList)
引数で指定された天体リストのplot黄経だけを取り出してdouble[]にして返す。


main

public static void main(String[] args)

formatSignAngle

public static String formatSignAngle(double value,
                                     int degits)
星座度数の値 ( 0 >= x < 30) を指定小数点で「切り捨て」て文字列で返す。 つまりvalue=23.3999 のときdegits=2で切り捨てると23.39。

パラメータ:
value - 天体度数
degits - 小数点何位で切り捨てるか(0〜4)

formatSignAngles

public static String[] formatSignAngles(double[] values,
                                        int degits)
配列で与えられた星座度数の値 ( 0 >= x < 30) を指定小数点で「切り捨て」て文字列で返す。 つまりvalue=23.3999 のときdegits=2で切り捨てると23.39。

パラメータ:
values - 天体度数(複数)
degits - 小数点何位で切り捨てるか(0〜4)