Go to the documentation of this file.
102 if (
this != &other) {
147 "Supplied coordinates are in different frames");
191 xcoord_second, ycoord_second));
214 double return_ra(0.0);
215 double return_dec(0.0);
218 &return_ra, &return_dec, &eo);
268 double temp_dec(0.0);
269 double temp_hour_angle(0.0);
274 int err_code = iauAtio13(in_cirs.
XCoord(),
288 &temp_ra, &temp_dec);
291 if (err_code == -1) {
294 "SOFA method was passed an unacceptable date");
302 if (observed_cirs !=
nullptr) {
308 if (hour_angle !=
nullptr) {
354 double return_ra(0.0);
355 double return_dec(0.0);
360 &return_ra, &return_dec, &eo);
423 &obs_cirs, hour_angle);
426 if (observed_icrs !=
nullptr) {
427 CIRS2ICRS(obs_cirs, observed_icrs, date);
535 observer, &obs_cirs, hour_angle);
538 if (observed_galactic !=
nullptr) {
584 int err_code = iauAtoi13(
"A",
600 if (err_code == -1) {
603 "SOFA method was passed an unacceptable date");
1029 std::string msg =
"Coordinates:\n";
1030 msg +=
" - System : " + std::to_string(
int(
coord_type_)) +
"\n";
1031 msg +=
" - X-coord: " + std::to_string(
xcoord_.
Deg()) +
" deg\n";
1032 msg +=
" - Y-coord: " + std::to_string(
ycoord_.
Deg()) +
" deg\n";
1077 bool are_equal =
true;
1088 double marcsec_rad = 4.848e-6;
1089 if (angsep > 3.0*marcsec_rad) {
1105 return !(lhs == rhs);
double Elevation_m() const
Return altitude in meters above sea level.
CESkyCoord ConvertToEcliptic(const CEDate &date=CEDate(), const CEObserver &observer=CEObserver())
Convert this coordinate to ECLIPTIC coordinates.
RA, Dec (referenced at the barycenter of the solarsystem)
static void Galactic2ICRS(const CESkyCoord &in_galactic, CESkyCoord *out_icrs)
GALACTIC -> ICRS coordinate conversion.
CESkyCoord ConvertToCIRS(const CEDate &date=CEDate(), const CEObserver &observer=CEObserver())
Convert this coordinate to CIRS coordinates.
static void Galactic2Ecliptic(const CESkyCoord &in_galactic, CESkyCoord *out_ecliptic, const CEDate &date=CEDate())
GALACTIC -> ECLIPTIC coordinate conversion.
CESkyCoordType
The following enum specifies what coordinates this object represents.
static void Ecliptic2ICRS(const CESkyCoord &in_ecliptic, CESkyCoord *out_icrs, const CEDate &date=CEDate())
ECLIPTIC -> ICRS coordinate conversion.
RA, Dec (referenced at the center of the Earth)
double Temperature_C() const
Return temperature in degrees Celsius.
static void Galactic2Observed(const CESkyCoord &in_galactic, CESkyCoord *out_observed, const CEDate &date, const CEObserver &observer, CESkyCoord *observed_galactic=nullptr, CEAngle *hour_angle=nullptr)
GALACTIC -> OBSERVED coordinate conversion.
static void CIRS2ICRS(const CESkyCoord &in_cirs, CESkyCoord *out_icrs, const CEDate &date=CEDate())
Convert CIRS to ICRS coordinates.
virtual CEAngle YCoord(const double &jd=CppEphem::julian_date_J2000()) const
Return y coordinate at given Julian date.
virtual CEAngle AngularSeparation(const CESkyCoord &coords) const
Get the angular separation between the coordinates represented by this object and another coordinate ...
static void ICRS2Galactic(const CESkyCoord &in_icrs, CESkyCoord *out_galactic)
ICRS -> GALACTIC coordinate conversion.
double RelativeHumidity() const
Return relative humidity.
static void CIRS2Galactic(const CESkyCoord &in_cirs, CESkyCoord *out_galactic, const CEDate &date=CEDate())
Convert CIRS to Galactic coordinates.
Galacitc longitude, latitude.
static void CIRS2Observed(const CESkyCoord &in_cirs, CESkyCoord *out_observed, const CEDate &date, const CEObserver &observer, CESkyCoord *observed_cirs=nullptr, CEAngle *hour_angle=nullptr)
CIRS -> Observed (or observer specific) coordinate conversion.
double Longitude_Rad() const
Return observer geographic longitude in radians.
static void ICRS2Ecliptic(const CESkyCoord &in_icrs, CESkyCoord *out_ecliptic, const CEDate &date=CEDate())
ICRS -> ECLIPTIC coordinate conversion.
static void UTC2TDB(const double &mjd, double *tdb1, double *tdb2)
Convert the UTC MJD to TDB JD (useful for planet computations)
CESkyCoord & operator=(const CESkyCoord &other)
Overloaded '=' (assignment) operator.
static void ICRS2CIRS(const CESkyCoord &in_icrs, CESkyCoord *out_cirs, const CEDate &date=CEDate())
ICRS -> CIRS coordinate conversion.
static double ypolar(const double &date, const CEDateType &date_type=CEDateType::JD)
Polar motion (xy for a given date.
double Rad(void) const
Return angle in radians as a double.
static void Ecliptic2CIRS(const CESkyCoord &in_ecliptic, CESkyCoord *out_cirs, const CEDate &date=CEDate())
ECLIPTIC -> CIRS coordinate conversion.
void SetAngle(const double &angle, const CEAngleType &angle_type=CEAngleType::RADIANS)
Set the angle from a double.
double Pressure_hPa() const
Return atmospheric pressure in units of hPa.
double Wavelength_um() const
Return the wavelength in units of micrometers.
CECoordinateType GetCoordSystem(void) const
Return coordinate system.
static CEAngle Rad(const double &angle)
Return angle constructed from a radians angle.
CESkyCoordType GetCoordSystem(void) const
Return coordinate system.
void free_members(void)
Cleanup data members that need to be freed or cleared.
void init_members(void)
Set initial values and allocate memory for data members.
static void Ecliptic2Galactic(const CESkyCoord &in_ecliptic, CESkyCoord *out_galactic, const CEDate &date=CEDate())
ECLIPTIC -> GALACTIC coordinate conversion.
CESkyCoord ConvertToObserved(const CEDate &date=CEDate(), const CEObserver &observer=CEObserver())
Convert this coordinate to OBSERVED coordinates.
static double GetMJD2JDFactor()
Gets the stored SOFA Julian date to Mod Julian date factor 'DJM0'.
static void ICRS2Observed(const CESkyCoord &in_icrs, CESkyCoord *out_observed, const CEDate &date, const CEObserver &observer, CESkyCoord *observed_cirs=nullptr, CEAngle *hour_angle=nullptr)
ICRS -> OBSERVED coordinate conversion.
static void Observed2CIRS(const CESkyCoord &in_observed, CESkyCoord *out_cirs, const CEDate &date, const CEObserver &observer)
OBSERVED -> CIRS coordinate conversion.
bool operator!=(const CESkyCoord &lhs, const CESkyCoord &rhs)
Compare two coordinate objects.
static void CIRS2Ecliptic(const CESkyCoord &in_cirs, CESkyCoord *out_ecliptic, const CEDate &date=CEDate())
Convert CIRS to ECLIPTIC coordinates.
std::string print(void) const
Generate a message string that specifies the information about this coordinate.
CESkyCoord ConvertToGalactic(const CEDate &date=CEDate(), const CEObserver &observer=CEObserver())
Convert this coordinate to GALACTIC coordinates.
virtual ~CESkyCoord()
Destructor.
CESkyCoord()
Default constructor.
virtual CEAngle XCoord(const double &jd=CppEphem::julian_date_J2000()) const
Return x coordinate at given Julian date.
virtual double MJD() const
Get the Modified Julian date represented by this object.
void copy_members(const CESkyCoord &other)
Copy data members from another CESkyCoord object.
static double xpolar(const double &date, const CEDateType &date_type=CEDateType::JD)
Polar motion (x) for a given date.
static void Observed2Galactic(const CESkyCoord &in_observed, CESkyCoord *out_galactic, const CEDate &date, const CEObserver &observer)
OBSERVED -> GALACTIC coordinate conversion.
static void Ecliptic2Observed(const CESkyCoord &in_ecliptic, CESkyCoord *out_observed, const CEDate &date, const CEObserver &observer)
ECLIPTIC -> OBSERVED coordinate conversion.
virtual void SetCoordinates(const CEAngle &xcoord, const CEAngle &ycoord, const CESkyCoordType &coord_type=CESkyCoordType::ICRS) const
Set the coordinates of this object.
bool operator==(const CESkyCoord &lhs, const CESkyCoord &rhs)
Compare two coordinate objects.
static void Observed2ICRS(const CESkyCoord &in_observed, CESkyCoord *out_icrs, const CEDate &date, const CEObserver &observer)
OBSERVED -> ICRS coordinate conversion.
static void UTC2TT(const double &mjd, double *tt1, double *tt2)
Convert the UTC MJD to TT JD.
double Latitude_Rad() const
Return geographic latitude in radians.
static void Observed2Ecliptic(const CESkyCoord &in_observed, CESkyCoord *out_ecliptic, const CEDate &date, const CEObserver &observer)
OBSERVED -> ECLIPTIC coordinate conversion.
Ecliptic longitude, latitude.
static void Galactic2CIRS(const CESkyCoord &in_galactic, CESkyCoord *out_cirs, const CEDate &date=CEDate())
GALACTIC -> CIRS coordinate conversion.
static CEAngle Deg(const double &angle)
Return angle (radians) constructed from a degree angle.
static double dut1(const double &date, const CEDateType &date_type=CEDateType::JD)
Return dut1 based on a given modified date.
CESkyCoord ConvertToICRS(const CEDate &date=CEDate(), const CEObserver &observer=CEObserver())
Convert this coordinate to ICRS coordinates.
CESkyCoordType coord_type_
CESkyCoord ConvertTo(const CESkyCoordType &output_coord_type, const CEDate &date=CEDate(), const CEObserver &observer=CEObserver())
Convert these coordinates to another coordinate system NOTE: If this object is not OBSERVED coordinat...
virtual CEAngle XCoord(const CEDate &jd=CppEphem::julian_date_J2000()) const
Return x coordinate at given Julian date.
Azimuth, Zenith (requires additional observer information)
virtual CEAngle YCoord(const CEDate &jd=CppEphem::julian_date_J2000()) const
Return y coordinate at given Julian date.