Package csw.params.core.models
Class Angle
- java.lang.Object
-
- csw.params.core.models.Angle
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Comparable<Angle>,scala.Equals,scala.math.Ordered<Angle>,scala.Product
public class Angle extends java.lang.Object implements java.io.Serializable, scala.math.Ordered<Angle>, scala.Product
An wrapper for angle. Normally angle would be stored in double as radians, but this introduces rounding errors. This class stores value in microarc seconds to prevent rounding errors.Usage examples:
//import provides implicit conversions for numbers import Angle._ //use implicit conversions to construct angle from number val angle = 10.degree + 0.5.arcSec //convert value to radian an print it println(11.toRadian)- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAngle.AngleWrapperDoubleused in implicit conversion to support `1.degree`, `1.arcMinute` etc
-
Constructor Summary
Constructors Constructor Description Angle(long uas)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidassertDe(double de)static voidassertRa(double ra)protected static longCIRCLE()intcompare(Angle that)static doubleD2H()multiply to convert degrees to arc hoursstatic intD2M()multiply to convert degrees to arc minutestatic intD2Mas()multiply to convert degrees to mili arc secondsstatic doubleD2R()multiply to convert degrees to radiansstatic intD2S()multiply to convert degrees to arc secondstatic longD2Uas()multiply to convert degrees to micro arc secondsstatic charDEGREE_SIGN()round circle which marks degreesstatic java.lang.StringdeToString(double de2)convert DE to string in format '1d 2m' minutes and seconds are auto added as neededstatic doubledistance(double ra1, double de1, double ra2, double de2)calculate great circle distance of two points, coordinates are given in radiansstatic Angle.AngleWrapperDoubledouble2angle(double d)static doubleH2D()multiply to convert arc hour to degreesstatic intH2Mas()multiply to convert hours to mili arc secondsstatic doubleH2R()multiply to convert hours to radiansstatic longH2Uas()multiply to convert hours to micro arc secondsstatic intHMin2Mas()multiply to convert time minutes to mili arc secondsstatic longHMin2Uas()multiply to convert time minutes to micro arc secondsstatic intHSec2Mas()multiply to convert time seconds to mili arc secondsstatic longHSec2Uas()multiply to convert time seconds to micro arc secondsstatic Angle.AngleWrapperDoubleint2angle(int d)static Angle.AngleWrapperDoublelong2angle(long d)static doubleM2D()multiply to convert arc minute to toDegreestatic intM2Mas()multiply to convert minutes to mili arc secondsstatic doubleM2R()multiply to convert minutes to radiansstatic longM2Uas()multiply to convert minutes to micro arc secondsstatic doubleMas2R()multiply to convert milli arc seconds to radiansstatic Anglemax(Angle a1, Angle a2)returns maximal angle from two optionsstatic Anglemin(Angle a1, Angle a2)returns minimal angle from two optionsAnglenormalizedRa()returns Angle with value normalized between 0 to 2*PIstatic doublenormalizeRa(double ra2)normalize RA into 0 - 2 * PI rangestatic AngleparseDe(java.lang.String de)Tries to parse Angle from string.static AngleparseDe(java.lang.String deSign, java.lang.String deDegree, java.lang.String deMin, java.lang.String deSec)Parse Declination from four values.static AngleparseRa(java.lang.String ra)Tries to parse Angle from string.static AngleparseRa(java.lang.String raHour, java.lang.String raMin, java.lang.String raSec)parse Right ascencion from triple values raHour raMin, raSec This method uses big decimal, so there are no rounding errorsstatic scala.Tuple2<Angle,Angle>parseRaDe(java.lang.String str)Parses pair of RA and De coordinates.static doubleR2D()multiply to convert radians to degreesstatic doubleR2H()multiply to convert radians to hoursstatic doubleR2M()multiply to convert radians to minutesstatic doubleR2Mas()multiply to convert radians to mili arc secondsstatic doubleR2S()multiply to convert radians to arc secondsstatic doubleR2Uas()multiply to convert radians to micro arc secondsstatic AnglerandomDe()returns random angle with value between -PI/2 and + PI/2static AnglerandomRa()returns random angle with value between 0 and 2*PIstatic java.lang.StringraToString(double ra)convert RA to string in format '1h 2m' minutes and seconds are auto added as neededstatic doubleS2D()multiply to convert arc second to toDegreestatic intS2Mas()multiply to convert Seconds to mili arc secondsstatic doubleS2R()multiply to convert arc seconds to radiansstatic longS2Uas()multiply to convert Seconds to micro arc secondsscala.collection.immutable.Seq<Angle>to(Angle maxVal, Angle increment)Returns sequence of angles with given max value and incrementdoubletoArcSec()returns angle value in arc secondsdoubletoDegree()returns angle value in degreesdoubletoMas()returns angle value in mili arc secondsdoubletoRadian()returns angle value in radiansjava.lang.StringtoString()longuas()static doubleUas2D()multiply to convert UAS to degreesstatic doubleUas2M()multiply to convert UAS to minutesstatic doubleUas2R()multiply to convert micro arc seconds to radiansstatic doubleUas2S()multiply to convert UAS to Secondsscala.collection.immutable.Seq<Angle>until(Angle maxVal, Angle increment)Returns sequence of angles with given max value and increment-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
CIRCLE
protected static long CIRCLE()
-
long2angle
public static Angle.AngleWrapperDouble long2angle(long d)
-
int2angle
public static Angle.AngleWrapperDouble int2angle(int d)
-
double2angle
public static Angle.AngleWrapperDouble double2angle(double d)
-
randomRa
public static Angle randomRa()
returns random angle with value between 0 and 2*PI
-
randomDe
public static Angle randomDe()
returns random angle with value between -PI/2 and + PI/2
-
parseDe
public static Angle parseDe(java.lang.String deSign, java.lang.String deDegree, java.lang.String deMin, java.lang.String deSec)
Parse Declination from four values. It uses BigDecimal, so there are no rounding errors- Parameters:
deSign- signum (ie + or -)deDegree- declination in degreesdeMin- remaining part in arc minutesdeSec- remaining part in arc seconds- Returns:
- declination in Micro Arc Seconds
-
parseDe
public static Angle parseDe(java.lang.String de)
Tries to parse Angle from string. It knows common formats used for Declination- Parameters:
de- (undocumented)- Returns:
- (undocumented)
-
parseRa
public static Angle parseRa(java.lang.String raHour, java.lang.String raMin, java.lang.String raSec)
parse Right ascencion from triple values raHour raMin, raSec This method uses big decimal, so there are no rounding errors- Parameters:
raHour- ra hours value as StringraMin- ra minutes value as StringraSec- ra seconds value as String- Returns:
- result in micro arc seconds
-
parseRa
public static Angle parseRa(java.lang.String ra)
Tries to parse Angle from string. It knows common formats used for Right ascencion (including hours)- Parameters:
ra- (undocumented)- Returns:
- (undocumented)
-
parseRaDe
public static scala.Tuple2<Angle,Angle> parseRaDe(java.lang.String str)
Parses pair of RA and De coordinates. This method should handle formats used in vizier. An example: The following writings are allowed:20 54 05.689 +37 01 17.38 10:12:45.3-45:17:50 15h17m-11d10m 15h17+89d15 275d11m15.6954s+17d59m59.876s 12.34567h-17.87654d 350.123456d-17.33333d <=> 350.123456 -17.33333
- Parameters:
str- (undocumented)- Returns:
- (undocumented)
-
normalizeRa
public static double normalizeRa(double ra2)
normalize RA into 0 - 2 * PI range- Parameters:
ra2- (undocumented)- Returns:
- (undocumented)
-
assertRa
public static void assertRa(double ra)
-
assertDe
public static void assertDe(double de)
-
raToString
public static java.lang.String raToString(double ra)
convert RA to string in format '1h 2m' minutes and seconds are auto added as needed- Parameters:
ra- in radians- Returns:
- ra in string form
-
deToString
public static java.lang.String deToString(double de2)
convert DE to string in format '1d 2m' minutes and seconds are auto added as needed- Parameters:
de2- in radians- Returns:
- de in string form
-
distance
public static double distance(double ra1, double de1, double ra2, double de2)calculate great circle distance of two points, coordinates are given in radians- Parameters:
ra1- (undocumented)de1- (undocumented)ra2- (undocumented)de2- (undocumented)- Returns:
- distance of two points in radians
-
D2R
public static double D2R()
multiply to convert degrees to radians
-
R2D
public static double R2D()
multiply to convert radians to degrees
-
D2H
public static double D2H()
multiply to convert degrees to arc hours
-
H2D
public static double H2D()
multiply to convert arc hour to degrees
-
D2M
public static int D2M()
multiply to convert degrees to arc minute
-
M2D
public static double M2D()
multiply to convert arc minute to toDegree
-
D2S
public static int D2S()
multiply to convert degrees to arc second
-
S2D
public static double S2D()
multiply to convert arc second to toDegree
-
H2R
public static double H2R()
multiply to convert hours to radians
-
R2H
public static double R2H()
multiply to convert radians to hours
-
R2M
public static double R2M()
multiply to convert radians to minutes
-
M2R
public static double M2R()
multiply to convert minutes to radians
-
Mas2R
public static double Mas2R()
multiply to convert milli arc seconds to radians
-
Uas2R
public static double Uas2R()
multiply to convert micro arc seconds to radians
-
R2Mas
public static double R2Mas()
multiply to convert radians to mili arc seconds
-
R2Uas
public static double R2Uas()
multiply to convert radians to micro arc seconds
-
H2Mas
public static int H2Mas()
multiply to convert hours to mili arc seconds
-
HMin2Mas
public static int HMin2Mas()
multiply to convert time minutes to mili arc seconds
-
HSec2Mas
public static int HSec2Mas()
multiply to convert time seconds to mili arc seconds
-
H2Uas
public static long H2Uas()
multiply to convert hours to micro arc seconds
-
HMin2Uas
public static long HMin2Uas()
multiply to convert time minutes to micro arc seconds
-
HSec2Uas
public static long HSec2Uas()
multiply to convert time seconds to micro arc seconds
-
D2Mas
public static int D2Mas()
multiply to convert degrees to mili arc seconds
-
M2Mas
public static int M2Mas()
multiply to convert minutes to mili arc seconds
-
S2Mas
public static int S2Mas()
multiply to convert Seconds to mili arc seconds
-
D2Uas
public static long D2Uas()
multiply to convert degrees to micro arc seconds
-
M2Uas
public static long M2Uas()
multiply to convert minutes to micro arc seconds
-
S2Uas
public static long S2Uas()
multiply to convert Seconds to micro arc seconds
-
Uas2D
public static double Uas2D()
multiply to convert UAS to degrees
-
Uas2M
public static double Uas2M()
multiply to convert UAS to minutes
-
Uas2S
public static double Uas2S()
multiply to convert UAS to Seconds
-
S2R
public static double S2R()
multiply to convert arc seconds to radians
-
R2S
public static double R2S()
multiply to convert radians to arc seconds
-
DEGREE_SIGN
public static char DEGREE_SIGN()
round circle which marks degrees
-
uas
public long uas()
-
compare
public int compare(Angle that)
- Specified by:
comparein interfacescala.math.Ordered<Angle>
-
toRadian
public double toRadian()
returns angle value in radians
-
toDegree
public double toDegree()
returns angle value in degrees
-
toMas
public double toMas()
returns angle value in mili arc seconds
-
toArcSec
public double toArcSec()
returns angle value in arc seconds
-
normalizedRa
public Angle normalizedRa()
returns Angle with value normalized between 0 to 2*PI
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
to
public scala.collection.immutable.Seq<Angle> to(Angle maxVal, Angle increment)
Returns sequence of angles with given max value and increment
-
-