Go to the documentation of this file.
62 const double& latitude,
63 const double& elevation,
104 if (
this != &other) {
126 return std::vector<double>(&xyzm[0], &xyzm[0]+3);
184 std::string msg(
"Observer:\n");
185 msg +=
" (Lon,Lat) = (" + std::to_string(
Longitude_Deg()) +
", " +
187 msg +=
" Elevation = " + std::to_string(
Elevation_m()) +
" m\n";
188 msg +=
" Temp = " + std::to_string(
Temperature_C()) +
" C\n";
189 msg +=
" Pressure = " + std::to_string(
Pressure_hPa()) +
" hPa\n";
191 msg +=
" Wavelength= " + std::to_string(
Wavelength_um()) +
" um\n";
275 double theta = iauEra00(ut11, ut12);
276 double sp = iauSp00(tt1, tt2);
294 iauEpv00(tdb1, tdb2, ehpv, ebpv);
298 for (
int i=0; i<3; i++) {
double Elevation_m() const
Return altitude in meters above sea level.
double cache_date_
Date used to copute pos/vel vectors.
void SetLatitude(const double &latitude, const CEAngleType &angle_type=CEAngleType::RADIANS)
Set the observer's latitude.
void free_members(void)
Initialize the data members.
double Temperature_C() const
Return temperature in degrees Celsius.
std::vector< double > pos_cirs_
XYZ position (AU) relative to Earth center.
void copy_members(const CEObserver &other)
Copy data members from another CEObserver object.
double relative_humidity_
Relative humidity (in range 0-1)
double RelativeHumidity() const
Return relative humidity.
std::vector< double > PositionGeo(void) const
Returns the observers geocentric position in meters.
double sec_per_day()
Seconds per day.
void SetElevation(const double &elevation=0.0)
Set elevation in meters above sea level.
void UpdatePosVel(const CEDate &date) const
Update cached position/velocity vectors.
std::vector< double > VelocityICRS(const CEDate &date) const
Get the velocity vector for this observer relative to ICRS (solar system barycenter)
static void UTC2TDB(const double &mjd, double *tdb1, double *tdb2)
Convert the UTC MJD to TDB JD (useful for planet computations)
double latitude_
Geographic latitude (radians)
std::vector< double > VelocityCIRS(const CEDate &date) const
Get the velocity vector for this observer relative to CIRS (solar system barycenter)
static double ypolar(const double &date, const CEDateType &date_type=CEDateType::JD)
Polar motion (xy for a given date.
CEObserver & operator=(const CEObserver &other)
Copy assignment operator.
std::vector< double > PositionICRS(const CEDate &date) const
Get the position vector for this observer relative to ICRS (solar system barycenter)
double Pressure_hPa() const
Return atmospheric pressure in units of hPa.
double longitude_
Geographic longitude (radians)
double Wavelength_um() const
Return the wavelength in units of micrometers.
std::string print(void) const
Returns a string containing information about this object.
std::vector< double > PositionCIRS(const CEDate &date) const
Get the position vector for this observer relative to CIRS (Earth center)
static void UTC2UT1(const double &mjd, double *ut11, double *ut12)
Convert the UTC MJD to UT1 JD.
double elevation_m_
Elevation (in meters) above sea-level.
void SetLongitude(const double &longitude, const CEAngleType &angle_type=CEAngleType::RADIANS)
Set the observer's longitude.
double wavelength_um_
Observing wavelength (micrometers)
std::vector< double > vel_cirs_
XYZ velocity (AU) relative to Earth center.
double Latitude_Deg() const
Return geographic latitude in degrees.
static double SystemUTCOffset_hrs()
double EstimatePressure_hPa(double elevation_m)
Method for estimating atmospheric pressure (in hPa) from altitude (in meters)
double temperature_celsius_
Temperature in degrees celsius.
CEObserver(void)
Default constructor.
double pressure_hPa_
Atmospheric pressure (in units of hPa)
std::vector< double > vel_icrs_
XYZ veloicty (AU) relative to solar system barycenter.
std::vector< double > pos_icrs_
XYZ position (AU) relative to solar system barycenter.
double utc_offset_
UTC offset in hours (set by default to system offset)
virtual double MJD() const
Get the Modified Julian date represented by this object.
static double xpolar(const double &date, const CEDateType &date_type=CEDateType::JD)
Polar motion (x) for a given date.
double Longitude_Deg() const
Return observer geographic longitude in degrees.
double m_per_au()
meters per astronomical unit
static void UTC2TT(const double &mjd, double *tt1, double *tt2)
Convert the UTC MJD to TT JD.
void init_members(void)
Initialize the data members.
virtual ~CEObserver(void)
Destructor.