CppEphem
|
CEObserver class is a self contained object for describing an observer. Information relevant to the observer includes:
The above are used in the SOFA software to more accurately calculate the affect of refraction through the atmosphere.
Definition at line 28 of file CEObserver.h.
Public Member Functions | |
CEObserver (const CEObserver &other) | |
Copy constructor. More... | |
CEObserver (const double &longitude, const double &latitude, const double &elevation, const CEAngleType &angle_type=CEAngleType::DEGREES) | |
Constructor from a geographic position (latitude, longitude, altitude) Note that altitude defaults to sea-level. More... | |
CEObserver (void) | |
Default constructor. More... | |
double | Elevation_m () const |
Return altitude in meters above sea level. More... | |
double | Latitude_Deg () const |
Return geographic latitude in degrees. More... | |
double | Latitude_Rad () const |
Return geographic latitude in radians. More... | |
double | Longitude_Deg () const |
Return observer geographic longitude in degrees. More... | |
double | Longitude_Rad () const |
Return observer geographic longitude in radians. More... | |
CEObserver & | operator= (const CEObserver &other) |
Copy assignment operator. More... | |
std::vector< double > | PositionCIRS (const CEDate &date) const |
Get the position vector for this observer relative to CIRS (Earth center) More... | |
std::vector< double > | PositionGeo (void) const |
Returns the observers geocentric position in meters. More... | |
std::vector< double > | PositionICRS (const CEDate &date) const |
Get the position vector for this observer relative to ICRS (solar system barycenter) More... | |
double | Pressure_hPa () const |
Return atmospheric pressure in units of hPa. More... | |
std::string | print (void) const |
Returns a string containing information about this object. More... | |
double | RelativeHumidity () const |
Return relative humidity. More... | |
void | SetElevation (const double &elevation=0.0) |
Set elevation in meters above sea level. More... | |
void | SetGeoCoordinates (const double &longitude, const double &latitude, const CEAngleType &angle_type=CEAngleType::RADIANS) |
Set the observer's longitude and latitude. More... | |
void | SetLatitude (const double &latitude, const CEAngleType &angle_type=CEAngleType::RADIANS) |
Set the observer's latitude. More... | |
void | SetLongitude (const double &longitude, const CEAngleType &angle_type=CEAngleType::RADIANS) |
Set the observer's longitude. More... | |
void | SetPressure_hPa (const double &pressure=CppEphem::EstimatePressure_hPa(CppEphem::SeaLevelTemp_C())) |
Set the observer's pressure. More... | |
void | SetRelativeHumidity (const double &humidity=0.0) |
Set the observer's relative humidity. More... | |
void | SetTemperature_C (const double &temp_C=CppEphem::SeaLevelTemp_C()) |
Set the observer's temperature (Celsius) More... | |
void | SetTemperature_F (const double &temp_F=CppEphem::SeaLevelTemp_F()) |
Set the observer's temperature (Fahrenheit) More... | |
void | SetTemperature_K (const double &temp_K=CppEphem::SeaLevelTemp_K()) |
Set the observer's temperature (Kelvin) More... | |
void | SetUTCOffset (const double &utc_offset) |
Set the UTC offset for the observers time. More... | |
void | SetWavelength_um (const double &new_wavelength_um) |
Set the observer's observing wavelength (micrometers) More... | |
double | Temperature_C () const |
Return temperature in degrees Celsius. More... | |
double | Temperature_F () const |
Return temperature in degrees Fahrenheit. More... | |
double | Temperature_K () const |
Return temperature in Kelvin. More... | |
std::vector< double > | Time (const CEDate &date) |
Get the current local time information (see CETime) More... | |
std::vector< double > | Time_UTC (const CEDate &date) |
Get the current local time information (see CETime) More... | |
double | UTCOffset () const |
std::vector< double > | VelocityCIRS (const CEDate &date) const |
Get the velocity vector for this observer relative to CIRS (solar system barycenter) More... | |
std::vector< double > | VelocityICRS (const CEDate &date) const |
Get the velocity vector for this observer relative to ICRS (solar system barycenter) More... | |
double | Wavelength_um () const |
Return the wavelength in units of micrometers. More... | |
virtual | ~CEObserver (void) |
Destructor. More... | |
Private Member Functions | |
void | copy_members (const CEObserver &other) |
Copy data members from another CEObserver object. More... | |
void | free_members (void) |
Initialize the data members. More... | |
void | init_members (void) |
Initialize the data members. More... | |
void | UpdatePosVel (const CEDate &date) const |
Update cached position/velocity vectors. More... | |
Private Attributes | |
double | cache_date_ |
Date used to copute pos/vel vectors. More... | |
double | elevation_m_ |
Elevation (in meters) above sea-level. More... | |
double | latitude_ |
Geographic latitude (radians) More... | |
double | longitude_ |
Geographic longitude (radians) More... | |
std::vector< double > | pos_cirs_ |
XYZ position (AU) relative to Earth center. More... | |
std::vector< double > | pos_icrs_ |
XYZ position (AU) relative to solar system barycenter. More... | |
double | pressure_hPa_ |
Atmospheric pressure (in units of hPa) More... | |
double | relative_humidity_ |
Relative humidity (in range 0-1) More... | |
double | temperature_celsius_ |
Temperature in degrees celsius. More... | |
double | utc_offset_ |
UTC offset in hours (set by default to system offset) More... | |
std::vector< double > | vel_cirs_ |
XYZ velocity (AU) relative to Earth center. More... | |
std::vector< double > | vel_icrs_ |
XYZ veloicty (AU) relative to solar system barycenter. More... | |
double | wavelength_um_ |
Observing wavelength (micrometers) More... | |
#include <CEObserver.h>
CEObserver::CEObserver | ( | void | ) |
Default constructor.
Definition at line 45 of file CEObserver.cpp.
CEObserver::CEObserver | ( | const double & | longitude, |
const double & | latitude, | ||
const double & | elevation, | ||
const CEAngleType & | angle_type = CEAngleType::DEGREES |
||
) |
Constructor from a geographic position (latitude, longitude, altitude) Note that altitude defaults to sea-level.
[in] | longitude | Observer longitude (east positive) |
[in] | latitude | Observer latitude |
[in] | elevation | Observer elevation above sea-level (meters) |
[in] | angle_type | Angle type for lon,lat (default is degrees) |
Definition at line 60 of file CEObserver.cpp.
CEObserver::CEObserver | ( | const CEObserver & | other | ) |
Copy constructor.
[in] | other | Another observer object that will be copied |
Definition at line 79 of file CEObserver.cpp.
|
virtual |
Destructor.
Definition at line 89 of file CEObserver.cpp.
|
private |
Copy data members from another CEObserver object.
[in] | other | CEObserver object to copy from |
Definition at line 209 of file CEObserver.cpp.
|
inline |
Return altitude in meters above sea level.
Definition at line 166 of file CEObserver.h.
|
private |
Initialize the data members.
Definition at line 198 of file CEObserver.cpp.
|
private |
Initialize the data members.
Definition at line 232 of file CEObserver.cpp.
|
inline |
Return geographic latitude in degrees.
Definition at line 156 of file CEObserver.h.
|
inline |
Return geographic latitude in radians.
Definition at line 146 of file CEObserver.h.
|
inline |
Return observer geographic longitude in degrees.
Definition at line 136 of file CEObserver.h.
|
inline |
Return observer geographic longitude in radians.
Definition at line 126 of file CEObserver.h.
CEObserver & CEObserver::operator= | ( | const CEObserver & | other | ) |
Copy assignment operator.
[in] | other | CEObserver object to be copied |
Definition at line 101 of file CEObserver.cpp.
std::vector< double > CEObserver::PositionCIRS | ( | const CEDate & | date | ) | const |
Get the position vector for this observer relative to CIRS (Earth center)
[in] | date | Date object for computing position |
Definition at line 133 of file CEObserver.cpp.
std::vector< double > CEObserver::PositionGeo | ( | void | ) | const |
Returns the observers geocentric position in meters.
The position returned is in reference to the WGS84 coordinates
Definition at line 119 of file CEObserver.cpp.
std::vector< double > CEObserver::PositionICRS | ( | const CEDate & | date | ) | const |
Get the position vector for this observer relative to ICRS (solar system barycenter)
[in] | date | Date object for computing position |
Definition at line 145 of file CEObserver.cpp.
|
inline |
Return atmospheric pressure in units of hPa.
Definition at line 176 of file CEObserver.h.
std::string CEObserver::print | ( | void | ) | const |
Returns a string containing information about this object.
Definition at line 180 of file CEObserver.cpp.
|
inline |
Return relative humidity.
Definition at line 216 of file CEObserver.h.
|
inline |
Set elevation in meters above sea level.
[in] | elevation | A new value for the elevation (meters) |
Definition at line 285 of file CEObserver.h.
|
inline |
Set the observer's longitude and latitude.
[in] | longitude | Longitude for the observer |
[in] | latitude | Latitude for the observer |
[in] | angle_type | Angle type of the provided lon,lat |
Definition at line 324 of file CEObserver.h.
|
inline |
Set the observer's latitude.
[in] | latitude | Latitude for the observer |
[in] | angle_type | Angle type of the provided latitude |
Definition at line 310 of file CEObserver.h.
|
inline |
Set the observer's longitude.
[in] | longitude | Longitude for the observer |
[in] | angle_type | Angle type of the provided longitude |
Definition at line 297 of file CEObserver.h.
|
inline |
Set the observer's pressure.
[in] | pressure | Pressure (hPa) for the observer |
Definition at line 338 of file CEObserver.h.
|
inline |
Set the observer's relative humidity.
[in] | humidity | Relative humidity (0-1) for the observer |
Definition at line 349 of file CEObserver.h.
|
inline |
Set the observer's temperature (Celsius)
[in] | temp_C | New temperature (Celsius) |
Definition at line 360 of file CEObserver.h.
|
inline |
Set the observer's temperature (Fahrenheit)
[in] | temp_K | New temperature (Fahrenheit) |
Definition at line 382 of file CEObserver.h.
|
inline |
Set the observer's temperature (Kelvin)
[in] | temp_K | New temperature (Kelvin) |
Definition at line 371 of file CEObserver.h.
|
inline |
Set the UTC offset for the observers time.
Definition at line 236 of file CEObserver.h.
|
inline |
Set the observer's observing wavelength (micrometers)
[in] | new_wavelength_um | New wavelength (micrometers) |
Definition at line 393 of file CEObserver.h.
|
inline |
Return temperature in degrees Celsius.
Definition at line 186 of file CEObserver.h.
|
inline |
Return temperature in degrees Fahrenheit.
Definition at line 206 of file CEObserver.h.
|
inline |
Return temperature in Kelvin.
Definition at line 196 of file CEObserver.h.
|
inline |
Get the current local time information (see CETime)
[in] | date | A date object to convert to local time of this observer |
Definition at line 258 of file CEObserver.h.
|
inline |
Get the current local time information (see CETime)
[in] | date | A date object to convert to local time of this observer |
Definition at line 274 of file CEObserver.h.
|
private |
Update cached position/velocity vectors.
[in] | date | Date for computation |
Definition at line 257 of file CEObserver.cpp.
|
inline |
Definition at line 246 of file CEObserver.h.
std::vector< double > CEObserver::VelocityCIRS | ( | const CEDate & | date | ) | const |
Get the velocity vector for this observer relative to CIRS (solar system barycenter)
[in] | date | Date object for computing position |
Definition at line 157 of file CEObserver.cpp.
std::vector< double > CEObserver::VelocityICRS | ( | const CEDate & | date | ) | const |
Get the velocity vector for this observer relative to ICRS (solar system barycenter)
[in] | date | Date object for computing position |
Definition at line 169 of file CEObserver.cpp.
|
inline |
Return the wavelength in units of micrometers.
Definition at line 226 of file CEObserver.h.
|
mutableprivate |
Date used to copute pos/vel vectors.
Definition at line 126 of file CEObserver.h.
|
private |
Elevation (in meters) above sea-level.
Definition at line 117 of file CEObserver.h.
|
private |
Geographic latitude (radians)
Definition at line 116 of file CEObserver.h.
|
private |
Geographic longitude (radians)
Definition at line 115 of file CEObserver.h.
|
mutableprivate |
XYZ position (AU) relative to Earth center.
Definition at line 127 of file CEObserver.h.
|
mutableprivate |
XYZ position (AU) relative to solar system barycenter.
Definition at line 128 of file CEObserver.h.
|
private |
Atmospheric pressure (in units of hPa)
Definition at line 120 of file CEObserver.h.
|
private |
Relative humidity (in range 0-1)
Definition at line 122 of file CEObserver.h.
|
private |
Temperature in degrees celsius.
Definition at line 121 of file CEObserver.h.
|
private |
UTC offset in hours (set by default to system offset)
Definition at line 133 of file CEObserver.h.
|
mutableprivate |
XYZ velocity (AU) relative to Earth center.
Definition at line 129 of file CEObserver.h.
|
mutableprivate |
XYZ veloicty (AU) relative to solar system barycenter.
Definition at line 130 of file CEObserver.h.
|
private |
Observing wavelength (micrometers)
Definition at line 123 of file CEObserver.h.