25 #ifndef CARMA_SERVICES_EPHEMERIS_H
26 #define CARMA_SERVICES_EPHEMERIS_H
41 #include "carma/services/Source.h"
46 #include "carma/services/novasWrapper.h"
114 const std::string &catalogName=
"");
153 void setLocation(
const std::string &observatory,
bool topocentric=
true);
179 void setWeather(
const double atmPressure,
const double airTemp,
180 const double relHumid);
191 void setFreq(
const double freq);
210 void setBody(
const int type,
const int number,
const std::string &name);
215 void setBody(
const std::string &name);
224 void setMJD(
const double mjd=0);
226 double getMJD()
const
280 void setSource(
const std::string& sourceName,
281 const std::string& catalogName =
"");
287 void setEphemerisTableSource(
const double ra2000,
const double dec2000,
const double doppler,
const double distance);
469 void SetSpinningBodySpot(
double majorAxis,
double minorAxis,
double axisAngle,
double tiltAngle,
470 double mjd,
double Longitude,
double Latitude,
double SpinRate);
492 double refract(
const double elevation);
517 bool my_set_body(
short int type,
short int number,
const std::string& sourceName);
539 novas::site_info site_;
543 novas::cat_entry cat_;
544 novas::cat_entry fake_;
576 std::string sourceName_;
605 static const double deg2rad_;
606 static const double rad2deg_;
630 const double dec2000,
631 const double doppler,
632 const double distance = 0.0)
633 __attribute__((deprecated));
648 bool isEphem(
const std::string& sourceName);
655 bool isPlanet(
const std::string& sourceName);
665 bool isFixed(
const std::string& sourceName);
double getRefrac(void) const
get the last used refraction correction.
double getDec(void)
get the topocentric DEC in the current epoch
Representation of Distance in any units.
Vector< double > getAzEl(double mjd, double ra, double dec)
Convert a given current epoch topocentric RA,DEC into AzEl.
void ComputeFixedAzEl(void)
compute the Az,El between two Location's, used internally
bool useSource(void) const
Was a true Source was used, or should sourcename string be used to re-use an ephemeris (important for...
Vector< double > getRaDec(double mjd, double az, double el)
Convert a given current Az,El into Ra,Dec for the current site This is a somewhat peculiar routine...
double angle2000(void)
Compute the rotation of the coordinate system between the mean equatorial coordinates (ra...
double getEl(void)
get the Elevation, in radians.
This class is used to calculate a variety of quantities related to the earth's atmosphere, such as refractivity, saturated pressure, and pathlength (refractivity integrated through the atmosphere).
Source is derived from CatalogEntry and is used to hold information for a particular entry from a sou...
void setLocation(const Location &location)
Set the site information.
Ephemeris()
Construct a default Ephemeris.
unsigned int frameType
Half second frames since Jan 1, 2000.
void planetDebug(void)
debug routine to calculate and print parameters for planetary sources.
This class implements various astronomical time computation routines.
void Debug(void)
debug routine that dumps out the state of the Ephemeris with lots of human readable verbiage ...
virtual ~Ephemeris()
Destructor.
Representation of Length in any units.
bool isFixed(const std::string &sourceName)
find out if a source is a supported fixed source (e.g.
double getDoppler(velocityFrameType frameType=FRAME_TOPOGRAPHIC)
get the Doppler velocity in a specific frame of reference Note that normally you want the Topocentric...
void initialize(void)
initialize all variables for this class.
Vector< double > hms(double angle)
return a vector with (sign,H,M,S) values for a given angle 0..360 note that H and M will be integers ...
Ephemeris wraps the NOVAS library and any other ephemeris related functions into a simple to use clas...
Astronomical Time routines.
void setFreq(const double freq)
update the observing frequency for refraction computation.
double getFreq(void) const
void setEphemerisTableSource(const double ra2000, const double dec2000, const double doppler, const double distance)
NB: private function.
double getAz(void)
get the Azimuth
double refract(const double elevation)
compute refraction angle.
Location getLocation(void) const
Location specifies a location (observatory if you wish) on planet earth, as longitude, latitude, and altitude above sea-level.
void setDeltaT(const double deltat=0)
set the time correction, in seconds, added to the MJD to get dynamical time (TT or TDB)...
The Angle class can represent any angle in any units.
void ShowVector(void)
experiments with tracking spots on DE405 planets (object type=0)
void setBody(const int type, const int number, const std::string &name)
set a SolarSystemBody not implemented yet
double getRa(void)
get the topocentric RA in the current epoch
Constants and methods having to do with the earth's atmosphere (e.g.
Tagged: Tue May 4 15:49:11 PDT 2004.
Vector< double > dms(double angle)
return a vector with (sign,D,M,S) values for a given angle 0..360 note that D and M will be integers ...
void setWeather(const double atmPressure, const double airTemp, const double relHumid)
update the weather, such that refraction is more accurate.
void setRefraction(const bool refract)
Turn off refraction explicitly.
void setRaDecOffsets(const double dra, const double ddec)
sky offset in RA and DEC applied, until a new source has been specified.
With respect to a point on the earth's surface, e.g antenna coordinates.
void setMJD(const double mjd=0)
set the time of observation (defaults to the current time) and a few ancillary variables (deltat...
void compute(void)
the internal ephemeris compute engine.
Representation of Velocity in any units.
enum carma::services::velocityFrameEnum velocityFrameType
The Velocity Frame.
void setAzElOffsets(const double daz, const double del)
sky offset in AZ and EL applied, until a new source has been specified.
void SetSpinningBodySpot(double majorAxis, double minorAxis, double axisAngle, double tiltAngle, double mjd, double Longitude, double Latitude, double SpinRate)
Set properties to be passed to novas about spinning bodies in order to produce an emphemeris for a sp...
void setSource(const Source &source)
set a source (the catalog entry.
bool my_set_body(short int type, short int number, const std::string &sourceName)
NOVAS helper routine for isPlanet() to construct a NOVAS body for a particular planet sourceName is a...