org.n52.math
Class SunTriangulation

java.lang.Object
  extended by org.n52.math.SunTriangulation

public class SunTriangulation
extends java.lang.Object

Supplier class azimuth, zenith angle, distance, equation of time and declination algorithms, to calculate with sun triangulation. SunTriangulation holds the geometric properties (3D) of the triangle ETS:

E earth-center = (0.0.0),
T observed terrain-pixel position,
S sun position;
All positions are metric, cartesian and geo-centric. T depends on assumptions about ellipsoid and image georeference. terrTriangulation contains the geometry depending merely on T. S depends for the moment on 3 time parameters: year, month, dayInMonth. Its coords are expressed in an earth-fixed, earth-centered, cartesian system The purpose is to produce (output) parameters for (a.o) solar reflection:
  1. zenith angle, angle between local vertical and sun direction;
  2. azimuth, angle between local North and ground-projected sun direction;
  3. distance, distance from terrain point to sun (meters);
  4. sun rise, moment of sun rise in utc hours;
  5. sun set, moment of sun set in utc hours;
  6. sun set, daylight duration in hours;
  7. sun set, moment of solar noon in utc hours;

Author:
Jan Hendrikse

Constructor Summary
SunTriangulation(TerrainTriangulation terrTri, int year, int month, int dayInMonth, double utc)
          constructor of SunTriangulation using sun- and satellite -related geometric input to allow mainly angle computations.
 
Method Summary
 Algorithm getAzimuthAlgorithm()
          returns the Azimuth Algorithm; it produces the azimuth, angle (in degrees) between local North and projected sun direction, given local lat and lon (in degrees)
 Algorithm getDayLightAlgorithm()
          returns the Day Light Algorithm; it produces the duration of daylight, in hours
 Algorithm getDistanceAlgorithm()
          returns the Distance Algorithm; it produces the distance, between local position and sun, in AU (astronomic units), given local lat and lon (in degrees).
 Algorithm getElevationAngleAlgorithm()
          returns the ElevationAngle Algorithm; it produces the elevation angle, angle (in degrees) between local horizon plane and sun direction, given local lat and lon (in degrees) It is the complentary angle of the sun zenith angle
 Algorithm getEquationOfTimeResultAlgorithm()
           
 Algorithm getSolarNoonAlgorithm()
          returns the Local Noon Algorithm; it produces the solar noon, in utc hours
 Algorithm getSunDeclinationAlgorithm()
          returns the Sun Declination Algorithm; it produces the declination, angle (in degrees) between equator plane and sun direction, given utc time
 Algorithm getSunRiseAlgorithm()
          returns the Sun Rise Algorithm; it produces the time of sunrise, in utc hours
 Algorithm getSunSetAlgorithm()
          returns the Sun Set Algorithm; it produces the time of sunset, in utc hours
 Algorithm getTrueSolarNoonAlgorithm()
           
 Algorithm getZenithAngleAlgorithm()
          returns the ZenithAngle Algorithm; it produces the zenith angle, angle (in degrees) between local vertical and sun direction, given local lat and lon (in degrees)
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SunTriangulation

public SunTriangulation(TerrainTriangulation terrTri,
                        int year,
                        int month,
                        int dayInMonth,
                        double utc)
constructor of SunTriangulation using sun- and satellite -related geometric input to allow mainly angle computations. The time parameters yield the members int julianday (DOY) and the angle of the sun position since julianday 1, 12 a.m. as input 'gamma' for Equation of time and sun-Declination

Parameters:
terrTri - holds terrainlocation specific vectors
year -
month -
dayInMonth -
utc - Universal Time Crd in double precision
Method Detail

getZenithAngleAlgorithm

public Algorithm getZenithAngleAlgorithm()
returns the ZenithAngle Algorithm; it produces the zenith angle, angle (in degrees) between local vertical and sun direction, given local lat and lon (in degrees)

Returns:
the Algorithm

getAzimuthAlgorithm

public Algorithm getAzimuthAlgorithm()
returns the Azimuth Algorithm; it produces the azimuth, angle (in degrees) between local North and projected sun direction, given local lat and lon (in degrees)

Returns:
the Algorithm

getDayLightAlgorithm

public Algorithm getDayLightAlgorithm()
returns the Day Light Algorithm; it produces the duration of daylight, in hours

Returns:
the Algorithm

getDistanceAlgorithm

public Algorithm getDistanceAlgorithm()
returns the Distance Algorithm; it produces the distance, between local position and sun, in AU (astronomic units), given local lat and lon (in degrees). 1 AU = mean distance earth - sun

Returns:
the Algorithm

getEquationOfTimeResultAlgorithm

public Algorithm getEquationOfTimeResultAlgorithm()

getSolarNoonAlgorithm

public Algorithm getSolarNoonAlgorithm()
returns the Local Noon Algorithm; it produces the solar noon, in utc hours

Returns:
the Algorithm

getSunDeclinationAlgorithm

public Algorithm getSunDeclinationAlgorithm()
returns the Sun Declination Algorithm; it produces the declination, angle (in degrees) between equator plane and sun direction, given utc time

Returns:
the Algorithm

getSunRiseAlgorithm

public Algorithm getSunRiseAlgorithm()
returns the Sun Rise Algorithm; it produces the time of sunrise, in utc hours

Returns:
the Algorithm

getTrueSolarNoonAlgorithm

public Algorithm getTrueSolarNoonAlgorithm()

getSunSetAlgorithm

public Algorithm getSunSetAlgorithm()
returns the Sun Set Algorithm; it produces the time of sunset, in utc hours

Returns:
the Algorithm

getElevationAngleAlgorithm

public Algorithm getElevationAngleAlgorithm()
returns the ElevationAngle Algorithm; it produces the elevation angle, angle (in degrees) between local horizon plane and sun direction, given local lat and lon (in degrees) It is the complentary angle of the sun zenith angle

Returns:
the Algorithm