cds.astro
Class AstroCoo

java.lang.Object
  extended bycds.astro.Coo
      extended bycds.astro.AstroCoo
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
Astropos

public class AstroCoo
extends Coo
implements java.io.Serializable

This class defines the spherical coordinates used in Astronomy. It associates the coordinates on the sphere (defined in the Coo class) with the system (Astroframe) in which they are expressed. It also includes the accuracy (number of digits) in which the coordinates are expressed, and the epoch of the position.

The typical usage of the AstroCoo class consists in:

  1. Define an astronomical coordinate frame by means of one of the constructors;
  2. Assign a position in this frame via one of the set methods
  3. Convert to another frame via the convertFrom method
  4. The angles (in degrees) are best extracted via getLon and getLat methods
The edition of the position in an AstroCoo can be done in a StringBuffer (edit methods) with options like sexagesimal or decimal edition, or as a String with one of the available toString methods.

See Also:
Astroframe, Astroformat, Serialized Form

Field Summary
static byte ARCMIN
          Definitions of Precisions for the angles
static byte ARCSEC
          Definitions of Precisions for the angles
static byte DEG
          Definitions of Precisions for the angles
protected  byte dlat
          The precision (number of decimals+1) of the latitude
protected  byte dlon
          The precision (number of decimals+1) of the longitude
static short EDIT_2
          Editing option to separate the 2 components by a blank
static short EDIT_FRAME
          Editing option to insert the name of the frame
static short EDIT_FULL
          Editing option to show all decimals
protected  short editing
          The editing option includes basic options described in Astroformat, plus the EDIT_FRAME, EDIT_FULL and EDIT_2 options.
 double epoch
          Epoch (Jyr) of the position
protected  byte formRA
          How RA was entered, see Astroformat
 Astroframe frame
          The associated frame
static byte MAS
          Definitions of Precisions for the angles
static byte NONE
          Definitions of Precisions for the angles
protected  byte precision
          The precision is 0=unknown, 1=DEG, 3=ARCMIN, 5=ARCSEC, 8=MAS, etc .
 
Fields inherited from class cds.astro.Coo
ed, lat, lon, Umatrix3, x, y, z
 
Constructor Summary
AstroCoo()
          Create the default ICRS AstroCoo
AstroCoo(Astroframe frame)
          Create an AstroCoo object: specify just frame, equinox, precision.
AstroCoo(Astroframe frame, AstroCoo coo)
          Create an AstroCoo object from an existing one.
AstroCoo(Astroframe frame, Coo coo)
          Create an AstroCoo object with a known position.
AstroCoo(Astroframe frame, Coo coo, double epoch)
          Create an AstroCoo object with a known position + Epoch
AstroCoo(Astroframe frame, double lon, double lat)
          Create an AstroCoo object with a known position.
AstroCoo(Astroframe frame, double lon, double lat, double epoch)
          Create an AstroCoo object with a known position at given epoch.
AstroCoo(Astroframe frame, java.lang.String text)
          Create an AstroCoo object from a position (Epoch)
 
Method Summary
 void convertFrom(AstroCoo coo)
          Transform the celestial position given in the argument into its own frame.
 void convertTo(Astroframe new_frame)
          Transform the position into another frame.
 void dump(java.lang.String title)
          Dump the contents of an AstroCoo.
 java.lang.StringBuffer edit(java.lang.StringBuffer buf, java.lang.String options)
          Customized edition of Coordinates to a StringBuffer, with a specified width of the edited position.
 boolean equals(java.lang.Object o)
          Compare 2 coordinates.
static java.lang.String explain(int editing)
          Explain the editing option of the coordinate
 int getEditing()
          Get the defaut editing option.
 Astroframe getFrame()
          Get an explicit designation of the frame
 byte getLatPrec()
          Acces a la precision sur la longitude
 byte getLonPrec()
          Acces a la precision sur la latitude
static int getOptions(java.lang.String text)
          Convert the String of options into an integer
 int getPrecision()
          Get the precision of the current value
 int parse(java.lang.String txt, int offset)
          Parsing method: interpret a String.
 boolean parsing(Parsing txt)
          Interpret the string and convert to Coo + Epoch.
 void set(AstroCoo coo)
          Set a position from an ezxisting one (copy).
 void set(Coo coo, double epoch)
          Set position + epoch.
 void set(java.lang.String text)
          Set a position from a text which may contain position and Epoch.
 void setEditing(int edit_option)
          Change the default way of edition
 void setEpoch(double epoch)
          Change the Epoch of the data
 void setPrecision(int precision)
          Change the precision of the data
 java.lang.String toString()
          Default edition: use what's stored
 java.lang.String toString(java.lang.String options)
          Customized edition of Coordinates to a String
 
Methods inherited from class cds.astro.Coo
add, add, copyAngles, copyUvector, dist, dist, edit, edit, eulerMatrix, getLat, getLon, localMatrix, localMatrix, moveMatrix, normalize, normalize, parsing, rotate_1, rotate, rotateVector_1, rotateVector, set, set, set, set, set, setEquatorial, sub, sub, toString, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

frame

public Astroframe frame
The associated frame


epoch

public double epoch
Epoch (Jyr) of the position


dlon

protected byte dlon
The precision (number of decimals+1) of the longitude


dlat

protected byte dlat
The precision (number of decimals+1) of the latitude


precision

protected byte precision
The precision is 0=unknown, 1=DEG, 3=ARCMIN, 5=ARCSEC, 8=MAS, etc . There is also an intrinsic precision associated to the frame.


formRA

protected byte formRA
How RA was entered, see Astroformat


editing

protected short editing
The editing option includes basic options described in Astroformat, plus the EDIT_FRAME, EDIT_FULL and EDIT_2 options. It can be changed via the setEditing(int) method.


NONE

public static final byte NONE
Definitions of Precisions for the angles

See Also:
Constant Field Values

DEG

public static final byte DEG
Definitions of Precisions for the angles

See Also:
Constant Field Values

ARCMIN

public static final byte ARCMIN
Definitions of Precisions for the angles

See Also:
Constant Field Values

ARCSEC

public static final byte ARCSEC
Definitions of Precisions for the angles

See Also:
Constant Field Values

MAS

public static final byte MAS
Definitions of Precisions for the angles

See Also:
Constant Field Values

EDIT_FRAME

public static final short EDIT_FRAME
Editing option to insert the name of the frame

See Also:
Constant Field Values

EDIT_FULL

public static final short EDIT_FULL
Editing option to show all decimals

See Also:
Constant Field Values

EDIT_2

public static final short EDIT_2
Editing option to separate the 2 components by a blank

See Also:
Constant Field Values
Constructor Detail

AstroCoo

public AstroCoo()
Create the default ICRS AstroCoo


AstroCoo

public AstroCoo(Astroframe frame)
Create an AstroCoo object: specify just frame, equinox, precision. Actual positions are normally specified by the set method.

Parameters:
frame - one of the possible Astroframes

AstroCoo

public AstroCoo(Astroframe frame,
                double lon,
                double lat)
Create an AstroCoo object with a known position.

Parameters:
frame - one of the possible Astroframes
lon - Longitude of the position (degrees)
lat - Latitude of the position (degrees)

AstroCoo

public AstroCoo(Astroframe frame,
                Coo coo)
Create an AstroCoo object with a known position.

Parameters:
frame - one of the possible Astroframes
coo - the position.

AstroCoo

public AstroCoo(Astroframe frame,
                AstroCoo coo)
Create an AstroCoo object from an existing one. It is equivalent to (coo.clone()).convertTo(frame)

Parameters:
frame - one of the possible Astroframes
coo - the position in some other frame.

AstroCoo

public AstroCoo(Astroframe frame,
                Coo coo,
                double epoch)
Create an AstroCoo object with a known position + Epoch

Parameters:
frame - one of the possible Astroframes
coo - the position.
epoch - Epoch of the position, in Jyr (see Astrotime)

AstroCoo

public AstroCoo(Astroframe frame,
                double lon,
                double lat,
                double epoch)
Create an AstroCoo object with a known position at given epoch.

Parameters:
frame - one of the possible Astroframes
lon - Longitude of the position (degrees)
lat - Latitude of the position (degrees)
epoch - Epoch of the position, in Jyr (see Astrotime)

AstroCoo

public AstroCoo(Astroframe frame,
                java.lang.String text)
         throws java.text.ParseException
Create an AstroCoo object from a position (Epoch)

Parameters:
frame - one of the possible Astroframes
text - Text with position, possibly followed by an epoch. Valid texts are e.g. "12 34 12.45 -42 12 76.4 J1991.25" or "12 34 12.45 -42 12 76.4 (J1991.25)"
Method Detail

explain

public static final java.lang.String explain(int editing)
Explain the editing option of the coordinate

Returns:
A printable variant of format.

parsing

public boolean parsing(Parsing txt)
Interpret the string and convert to Coo + Epoch. Called from set and parse routines.

Parameters:
txt - to interpret as a Parsing object "12 34.5 -72 54 J1991.25"
Returns:
true if OK (2 coordinates found, and possibly an epoch). If false, no mouvement in txt.

parse

public int parse(java.lang.String txt,
                 int offset)
Parsing method: interpret a String.

Overrides:
parse in class Coo
Parameters:
txt - to interpret.
offset - starting position in text
Returns:
new position.

set

public void set(AstroCoo coo)
Set a position from an ezxisting one (copy).

Parameters:
coo - the AstroCoo to opy.

set

public void set(java.lang.String text)
         throws java.text.ParseException
Set a position from a text which may contain position and Epoch. The precision is adapted to the number of significant digits existing in the input text string.

Overrides:
set in class Coo
Parameters:
text - Longitude + latitude in text
Throws:
java.text.ParseException - when the string is not interpretable

set

public void set(Coo coo,
                double epoch)
Set position + epoch. The precision is not changed.

Parameters:
coo - the lon+lat
epoch - the epoch.

setPrecision

public void setPrecision(int precision)
Change the precision of the data

Parameters:
precision - integer number, typically one of the values NONE (0), DEG (1), ARCMIN (3), ARCSEC (5), MAS (8); use ARCSEC+1 for 0.1arcsec, MAS-1 for 10mas, etc...

setEditing

public void setEditing(int edit_option)
Change the default way of edition

Parameters:
edit_option - A mixture of Astroformat options, and EDIT_FRAME EDIT_FULL.

setEpoch

public void setEpoch(double epoch)
Change the Epoch of the data

Parameters:
epoch - the epoch of the coordinates

getFrame

public final Astroframe getFrame()
Get an explicit designation of the frame

Returns:
the explanation as a string

getPrecision

public final int getPrecision()
Get the precision of the current value

Returns:
the value.

getLonPrec

public byte getLonPrec()
Acces a la precision sur la latitude

Returns:
la precision sur la latitude

getLatPrec

public byte getLatPrec()
Acces a la precision sur la longitude

Returns:
la precision sur la longitude

getEditing

public final int getEditing()
Get the defaut editing option. Can be edited via e.g. Astroformat.explain()

Returns:
the value.

dump

public void dump(java.lang.String title)
Dump the contents of an AstroCoo.

Overrides:
dump in class Coo
Parameters:
title - A title to precede the dump

equals

public boolean equals(java.lang.Object o)
Compare 2 coordinates.

Overrides:
equals in class Coo
Parameters:
o - Objet a comparer.
Returns:
Vrai si o est identique a this.

getOptions

public static int getOptions(java.lang.String text)
                      throws java.text.ParseException
Convert the String of options into an integer

Parameters:
text - List of options:
		d = edit in Decimal
		s = edit in Sexagesimal
		: = separate sexagesimal parts with the colon
		f = edit also the frame (system+equinox)
		F = edit in full precision (ignore the precision of the system)
Throws:
java.text.ParseException

edit

public java.lang.StringBuffer edit(java.lang.StringBuffer buf,
                                   java.lang.String options)
                            throws java.text.ParseException
Customized edition of Coordinates to a StringBuffer, with a specified width of the edited position.

Parameters:
buf - the buffer filled with the edited position
options - a string with the option letters defined in editing_options
Returns:
the StringBuffer
Throws:
java.text.ParseException

toString

public java.lang.String toString(java.lang.String options)
                          throws java.text.ParseException
Customized edition of Coordinates to a String

Parameters:
options - a string with the option letters (see edit)
Returns:
the edited coordinates in a string
Throws:
java.text.ParseException
See Also:
getOptions(java.lang.String)

toString

public java.lang.String toString()
Default edition: use what's stored

Overrides:
toString in class Coo
Returns:
the edited string

convertTo

public void convertTo(Astroframe new_frame)
Transform the position into another frame.

Parameters:
new_frame - The frame of the resulting position.

convertFrom

public void convertFrom(AstroCoo coo)
Transform the celestial position given in the argument into its own frame.

Parameters:
coo - Position expressed in some other frame (not modified)