igeo
Class ISun

java.lang.Object
  extended by igeo.ISun

public class ISun
extends java.lang.Object

A solar analysis package providing direction of the sun in the spcecified location at the specified time.

Version:
0.7.0.0;
Author:
Satoru Sugihara

Nested Class Summary
static class ISun.City
           
static class ISun.Date
           
static class ISun.Location
           
static class ISun.SearchBuffer
           
 
Field Summary
static boolean aberrationCorrection
           
 double altitude
           
 double azimuth
           
 ISun.SearchBuffer buffer
           
 int day
          input time info
 boolean daylightSaving
          switch to interpret hour as hour in daylight saving day
 IVec dir
           
 double elevation
          height(altitude) of the location
 double hour
          hour includes fraction of minutes and seconds
 double latitude
          input location info
 double longitude
          input location info
static boolean measureAzimuthFromSouth
           
 int month
          input time info
 IVec northDir
           
static boolean nutationCorrection
           
static boolean precessionCorrection
           
static boolean refractionCorrection
           
 double timeZone
          time zone as difference of hours from GMT; -12 - +12
 boolean updateAngle
           
 int year
          input time info
 
Constructor Summary
ISun()
           
ISun(double latitude, double longitude, double timeZone)
           
ISun(double latitude, double longitude, double elevation, double timeZone)
           
ISun(double latitude, double longitude, double elevation, double timeZone, int year, int month, int day, double hour, boolean daylightSavingTime)
           
ISun(double latitude, double longitude, double elevation, double timeZone, IVec northDir)
           
ISun(double latitude, double longitude, double elevation, double timeZone, IVec northDir, int year, int month, int day, double hour, boolean daylightSavingTime)
           
ISun(double latitude, double longitude, double timeZone, IVec northDir)
           
ISun(ISun.City city)
           
ISun(ISun.City city, IVec northDir)
           
ISun(ISun.Location location)
           
ISun(ISun.Location location, IVec northDir)
           
 
Method Summary
static java.lang.String adstring(double ra)
           
 double altitude()
          calculate altitude angle
static double altitude(double latitude, double longitude, double elevation, double timeZone, int year, int month, int day, double hour, boolean daylightSavingTime)
          calculate altitude angle at the given time and location hour can include fraction of minutes
 double altitude(int year, int month, int day, double hour)
          calculate altitude angle at the given time.
 double altitude(int year, int month, int day, double hour, boolean daylightSavingTime)
          calculate altitude angle at the given time.
 double altitude(int year, int month, int day, int hour, double minute)
          calculate altitude angle at the given time.
 double altitude(int year, int month, int day, int hour, double minute, boolean daylightSavingTime)
          calculate altitude angle at the given time.
 double altitude(int year, int month, int day, int hour, int minute, double second)
          calculate altitude angle at the given time.
 double altitude(int year, int month, int day, int hour, int minute, double second, boolean daylightSavingTime)
          calculate altitude angle at the given time.
 double[] angles()
           
static double[] angles(double latitude, double longitude, double elevation, double timeZone, int year, int month, int day, double hour, boolean daylightSavingTime)
          alias of calcAngle.
 double[] angles(int year, int month, int day, double hour)
           
 double[] angles(int year, int month, int day, double hour, boolean daylightSavingTime)
           
 double[] angles(int year, int month, int day, int hour, double minute)
           
 double[] angles(int year, int month, int day, int hour, double minute, boolean daylightSavingTime)
           
 double[] angles(int year, int month, int day, int hour, int minute, double second)
           
 double[] angles(int year, int month, int day, int hour, int minute, double second, boolean daylightSavingTime)
           
 double azimuth()
          calculate azimuth.
static double azimuth(double latitude, double longitude, double elevation, double timeZone, int year, int month, int day, double hour, boolean daylightSavingTime)
          calculate azimuth angle at the given time and location hour can include fraction of minutes
 double azimuth(int year, int month, int day, double hour)
          calculate azimuth at the given time.
 double azimuth(int year, int month, int day, double hour, boolean daylightSavingTime)
          calculate azimuth at the given time.
 double azimuth(int year, int month, int day, int hour, double minute)
          calculate azimuth at the given time.
 double azimuth(int year, int month, int day, int hour, double minute, boolean daylightSavingTime)
          calculate azimu at the given time.
 double azimuth(int year, int month, int day, int hour, int minute, double second)
          calculate azimuth at the given time.
 double azimuth(int year, int month, int day, int hour, int minute, double second, boolean daylightSavingTime)
          calculate azimuth at the given time.
 ISun calc()
           
static double[] calcAngle(double latitude, double longitude, double elevation, double timeZone, int year, int month, int day, double hour, boolean daylightSavingTime)
          calculate altitude and azimuth angle.
static double[] calcEquatorialCoordinates(double julianDate)
           
static double[] calcHorizontalCoordinates(double rightAscension, double declination, double julianDate, double latitude, double longitude, double elevation, double eclipticLongitude)
           
static double[] coaberration(double julianDate, double rightAscension, double declination, double eps, double eclipticLongitude)
           
static double[] conutate(double julianDate, double rightAscension, double declination)
           
static double corefract(double altitudeAngle, double elevation)
           
static double corefractForward(double altitudeAngle, double pressure, double temperature)
           
static java.lang.String degStr(double deg)
           
 IVec dir()
           
static IVec dir(double latitude, double longitude, double elevation, double timeZone, IVec northDir, int year, int month, int day, double hour, boolean daylightSavingTime)
           
 IVec dir(int year, int month, int day, double hour)
           
 IVec dir(int year, int month, int day, double hour, boolean daylightSavingTime)
           
 IVec dir(int year, int month, int day, int hour, double minute)
           
 IVec dir(int year, int month, int day, int hour, double minute, boolean daylightSavingTime)
           
 IVec dir(int year, int month, int day, int hour, int minute, double second)
           
 IVec dir(int year, int month, int day, int hour, int minute, double second, boolean daylightSavingTime)
           
 IVec direction()
           
static IVec direction(double latitude, double longitude, double elevation, double timeZone, IVec northDir, int year, int month, int day, double hour, boolean daylightSavingTime)
           
static IVec direction(double altitude, double azimuth, IVec northDir)
          converting azimuth and altitude to XYZ vector
 IVec direction(int year, int month, int day, double hour)
           
 IVec direction(int year, int month, int day, double hour, boolean daylightSavingTime)
           
 IVec direction(int year, int month, int day, int hour, double minute)
           
 IVec direction(int year, int month, int day, int hour, double minute, boolean daylightSavingTime)
           
 IVec direction(int year, int month, int day, int hour, int minute, double second)
           
 IVec direction(int year, int month, int day, int hour, int minute, double second, boolean daylightSavingTime)
           
 double hourAt(int year, int month, int day, boolean daylightSavingTime, double azimuth)
          search hour in the specified date when sun comes in the direction of azimuth
 double hourAt(int year, int month, int day, boolean daylightSavingTime, double azimuth, int sampleNumber)
          search hour in the specified date when sun comes in the direction of azimuth
 double hourAt(int year, int month, int day, boolean daylightSavingTime, IVec azimuthDir, IVec northDir)
           
static java.lang.String hourStr(double deg)
           
static double julianDate(int year, int month, int day, double hour)
          converting calender dates into julian dates.
static double localSiderealTime(double lng, double jd)
          convert from local civil time to local mean siderial time.
 ISun location(double latitude, double longitude, double timeZone)
          setting location
 ISun location(double latitude, double longitude, double elevation, double timeZone)
          setting location
 ISun location(double latitude, double longitude, double elevation, double timeZone, IVec northDir)
          setting location
 ISun location(double latitude, double longitude, double timeZone, IVec northDir)
          setting location
 ISun location(ISun.City city)
          setting location
 ISun location(ISun.City city, IVec northDir)
          setting location
 ISun location(ISun.Location location)
          setting location
 ISun location(ISun.Location location, IVec northDir)
          setting location
static void main(java.lang.String[] args)
           
static double mod(double x, double mod)
          cyclic modulus operation including negative range
static double[] nutate(double julianDate)
           
static double[] precess(double rightAscension, double declination, double equinox1, double equinox2, boolean fk4)
           
static double[][] precessMatrix(double equinox1, double equinox2, boolean fk4)
           
 ISun time(int year, int month, int day, double hour)
          setting time
 ISun time(int year, int month, int day, double hour, boolean daylightSavingTime)
          setting time
 ISun time(int year, int month, int day, int hour, double minute)
          setting time
 ISun time(int year, int month, int day, int hour, double minute, boolean daylightSavingTime)
          setting time
 ISun time(int year, int month, int day, int hour, int minute, double second)
          setting time
 ISun time(int year, int month, int day, int hour, int minute, double second, boolean daylightSavingTime)
          setting time
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

latitude

public double latitude
input location info


longitude

public double longitude
input location info


elevation

public double elevation
height(altitude) of the location


timeZone

public double timeZone
time zone as difference of hours from GMT; -12 - +12


year

public int year
input time info


month

public int month
input time info


day

public int day
input time info


hour

public double hour
hour includes fraction of minutes and seconds


daylightSaving

public boolean daylightSaving
switch to interpret hour as hour in daylight saving day


dir

public IVec dir

azimuth

public double azimuth

altitude

public double altitude

updateAngle

public boolean updateAngle

northDir

public IVec northDir

buffer

public ISun.SearchBuffer buffer

precessionCorrection

public static boolean precessionCorrection

nutationCorrection

public static boolean nutationCorrection

aberrationCorrection

public static boolean aberrationCorrection

refractionCorrection

public static boolean refractionCorrection

measureAzimuthFromSouth

public static boolean measureAzimuthFromSouth
Constructor Detail

ISun

public ISun()

ISun

public ISun(double latitude,
            double longitude,
            double elevation,
            double timeZone,
            IVec northDir,
            int year,
            int month,
            int day,
            double hour,
            boolean daylightSavingTime)

ISun

public ISun(double latitude,
            double longitude,
            double elevation,
            double timeZone,
            int year,
            int month,
            int day,
            double hour,
            boolean daylightSavingTime)

ISun

public ISun(double latitude,
            double longitude,
            double elevation,
            double timeZone,
            IVec northDir)

ISun

public ISun(double latitude,
            double longitude,
            double elevation,
            double timeZone)

ISun

public ISun(double latitude,
            double longitude,
            double timeZone,
            IVec northDir)

ISun

public ISun(double latitude,
            double longitude,
            double timeZone)

ISun

public ISun(ISun.City city,
            IVec northDir)

ISun

public ISun(ISun.City city)

ISun

public ISun(ISun.Location location,
            IVec northDir)

ISun

public ISun(ISun.Location location)
Method Detail

time

public ISun time(int year,
                 int month,
                 int day,
                 int hour,
                 int minute,
                 double second,
                 boolean daylightSavingTime)
setting time


time

public ISun time(int year,
                 int month,
                 int day,
                 int hour,
                 int minute,
                 double second)
setting time


time

public ISun time(int year,
                 int month,
                 int day,
                 int hour,
                 double minute,
                 boolean daylightSavingTime)
setting time


time

public ISun time(int year,
                 int month,
                 int day,
                 int hour,
                 double minute)
setting time


time

public ISun time(int year,
                 int month,
                 int day,
                 double hour,
                 boolean daylightSavingTime)
setting time


time

public ISun time(int year,
                 int month,
                 int day,
                 double hour)
setting time


location

public ISun location(double latitude,
                     double longitude,
                     double elevation,
                     double timeZone,
                     IVec northDir)
setting location


location

public ISun location(double latitude,
                     double longitude,
                     double elevation,
                     double timeZone)
setting location


location

public ISun location(double latitude,
                     double longitude,
                     double timeZone,
                     IVec northDir)
setting location


location

public ISun location(double latitude,
                     double longitude,
                     double timeZone)
setting location


location

public ISun location(ISun.City city,
                     IVec northDir)
setting location


location

public ISun location(ISun.City city)
setting location


location

public ISun location(ISun.Location location,
                     IVec northDir)
setting location


location

public ISun location(ISun.Location location)
setting location


direction

public IVec direction(int year,
                      int month,
                      int day,
                      int hour,
                      int minute,
                      double second,
                      boolean daylightSavingTime)

direction

public IVec direction(int year,
                      int month,
                      int day,
                      int hour,
                      int minute,
                      double second)

direction

public IVec direction(int year,
                      int month,
                      int day,
                      int hour,
                      double minute,
                      boolean daylightSavingTime)

direction

public IVec direction(int year,
                      int month,
                      int day,
                      int hour,
                      double minute)

direction

public IVec direction(int year,
                      int month,
                      int day,
                      double hour,
                      boolean daylightSavingTime)

direction

public IVec direction(int year,
                      int month,
                      int day,
                      double hour)

direction

public IVec direction()

dir

public IVec dir(int year,
                int month,
                int day,
                int hour,
                int minute,
                double second,
                boolean daylightSavingTime)

dir

public IVec dir(int year,
                int month,
                int day,
                int hour,
                int minute,
                double second)

dir

public IVec dir(int year,
                int month,
                int day,
                int hour,
                double minute,
                boolean daylightSavingTime)

dir

public IVec dir(int year,
                int month,
                int day,
                int hour,
                double minute)

dir

public IVec dir(int year,
                int month,
                int day,
                double hour,
                boolean daylightSavingTime)

dir

public IVec dir(int year,
                int month,
                int day,
                double hour)

dir

public IVec dir()

azimuth

public double azimuth(int year,
                      int month,
                      int day,
                      int hour,
                      int minute,
                      double second,
                      boolean daylightSavingTime)
calculate azimuth at the given time. second can include fraction of millisecond


azimuth

public double azimuth(int year,
                      int month,
                      int day,
                      int hour,
                      int minute,
                      double second)
calculate azimuth at the given time. second can include fraction of millisecond


azimuth

public double azimuth(int year,
                      int month,
                      int day,
                      int hour,
                      double minute,
                      boolean daylightSavingTime)
calculate azimu at the given time. minute can include fraction of second


azimuth

public double azimuth(int year,
                      int month,
                      int day,
                      int hour,
                      double minute)
calculate azimuth at the given time. minute can include fraction of second


azimuth

public double azimuth(int year,
                      int month,
                      int day,
                      double hour,
                      boolean daylightSavingTime)
calculate azimuth at the given time. hour can include fraction of minutes


azimuth

public double azimuth(int year,
                      int month,
                      int day,
                      double hour)
calculate azimuth at the given time. hour can include fraction of minutes


azimuth

public double azimuth()
calculate azimuth.


altitude

public double altitude(int year,
                       int month,
                       int day,
                       int hour,
                       int minute,
                       double second,
                       boolean daylightSavingTime)
calculate altitude angle at the given time. second can include fraction of millisecond


altitude

public double altitude(int year,
                       int month,
                       int day,
                       int hour,
                       int minute,
                       double second)
calculate altitude angle at the given time. second can include fraction of millisecond


altitude

public double altitude(int year,
                       int month,
                       int day,
                       int hour,
                       double minute,
                       boolean daylightSavingTime)
calculate altitude angle at the given time. minute can include fraction of second


altitude

public double altitude(int year,
                       int month,
                       int day,
                       int hour,
                       double minute)
calculate altitude angle at the given time. minute can include fraction of second


altitude

public double altitude(int year,
                       int month,
                       int day,
                       double hour,
                       boolean daylightSavingTime)
calculate altitude angle at the given time. hour can include fraction of minute


altitude

public double altitude(int year,
                       int month,
                       int day,
                       double hour)
calculate altitude angle at the given time. hour can include fraction of minute


altitude

public double altitude()
calculate altitude angle


angles

public double[] angles(int year,
                       int month,
                       int day,
                       int hour,
                       int minute,
                       double second,
                       boolean daylightSavingTime)
Returns:
array of 2 double, first azimuth and second altitude

angles

public double[] angles(int year,
                       int month,
                       int day,
                       int hour,
                       int minute,
                       double second)
Returns:
array of 2 double, first azimuth and second altitude

angles

public double[] angles(int year,
                       int month,
                       int day,
                       int hour,
                       double minute,
                       boolean daylightSavingTime)
Returns:
array of 2 double, first azimuth and second altitude

angles

public double[] angles(int year,
                       int month,
                       int day,
                       int hour,
                       double minute)
Returns:
array of 2 double, first azimuth and second altitude

angles

public double[] angles(int year,
                       int month,
                       int day,
                       double hour,
                       boolean daylightSavingTime)
Returns:
array of 2 double, first azimuth and second altitude

angles

public double[] angles(int year,
                       int month,
                       int day,
                       double hour)
Returns:
array of 2 double, first azimuth and second altitude

angles

public double[] angles()
Returns:
array of 2 double, first azimuth and second altitude

calc

public ISun calc()

hourAt

public double hourAt(int year,
                     int month,
                     int day,
                     boolean daylightSavingTime,
                     IVec azimuthDir,
                     IVec northDir)

hourAt

public double hourAt(int year,
                     int month,
                     int day,
                     boolean daylightSavingTime,
                     double azimuth)
search hour in the specified date when sun comes in the direction of azimuth


hourAt

public double hourAt(int year,
                     int month,
                     int day,
                     boolean daylightSavingTime,
                     double azimuth,
                     int sampleNumber)
search hour in the specified date when sun comes in the direction of azimuth


azimuth

public static double azimuth(double latitude,
                             double longitude,
                             double elevation,
                             double timeZone,
                             int year,
                             int month,
                             int day,
                             double hour,
                             boolean daylightSavingTime)
calculate azimuth angle at the given time and location hour can include fraction of minutes


altitude

public static double altitude(double latitude,
                              double longitude,
                              double elevation,
                              double timeZone,
                              int year,
                              int month,
                              int day,
                              double hour,
                              boolean daylightSavingTime)
calculate altitude angle at the given time and location hour can include fraction of minutes


dir

public static IVec dir(double latitude,
                       double longitude,
                       double elevation,
                       double timeZone,
                       IVec northDir,
                       int year,
                       int month,
                       int day,
                       double hour,
                       boolean daylightSavingTime)

direction

public static IVec direction(double latitude,
                             double longitude,
                             double elevation,
                             double timeZone,
                             IVec northDir,
                             int year,
                             int month,
                             int day,
                             double hour,
                             boolean daylightSavingTime)

direction

public static IVec direction(double altitude,
                             double azimuth,
                             IVec northDir)
converting azimuth and altitude to XYZ vector


angles

public static double[] angles(double latitude,
                              double longitude,
                              double elevation,
                              double timeZone,
                              int year,
                              int month,
                              int day,
                              double hour,
                              boolean daylightSavingTime)
alias of calcAngle.


calcAngle

public static double[] calcAngle(double latitude,
                                 double longitude,
                                 double elevation,
                                 double timeZone,
                                 int year,
                                 int month,
                                 int day,
                                 double hour,
                                 boolean daylightSavingTime)
calculate altitude and azimuth angle.

Returns:
array of 2 double value; first is altitude, second is azimuth

calcEquatorialCoordinates

public static double[] calcEquatorialCoordinates(double julianDate)

calcHorizontalCoordinates

public static double[] calcHorizontalCoordinates(double rightAscension,
                                                 double declination,
                                                 double julianDate,
                                                 double latitude,
                                                 double longitude,
                                                 double elevation,
                                                 double eclipticLongitude)

corefract

public static double corefract(double altitudeAngle,
                               double elevation)

corefractForward

public static double corefractForward(double altitudeAngle,
                                      double pressure,
                                      double temperature)

localSiderealTime

public static double localSiderealTime(double lng,
                                       double jd)
convert from local civil time to local mean siderial time.


coaberration

public static double[] coaberration(double julianDate,
                                    double rightAscension,
                                    double declination,
                                    double eps,
                                    double eclipticLongitude)

nutate

public static double[] nutate(double julianDate)

julianDate

public static double julianDate(int year,
                                int month,
                                int day,
                                double hour)
converting calender dates into julian dates.

Parameters:
hour - and fraction of hour (including min, sec, ...

conutate

public static double[] conutate(double julianDate,
                                double rightAscension,
                                double declination)

precess

public static double[] precess(double rightAscension,
                               double declination,
                               double equinox1,
                               double equinox2,
                               boolean fk4)

precessMatrix

public static double[][] precessMatrix(double equinox1,
                                       double equinox2,
                                       boolean fk4)

degStr

public static java.lang.String degStr(double deg)

hourStr

public static java.lang.String hourStr(double deg)

adstring

public static java.lang.String adstring(double ra)

mod

public static double mod(double x,
                         double mod)
cyclic modulus operation including negative range


main

public static void main(java.lang.String[] args)