1 #ifndef SZA_UTIL_LOCATION_H
2 #define SZA_UTIL_LOCATION_H
11 #include "carma/szautil/Angle.h"
13 #include "carma/szautil/Atmosphere.h"
14 #include "carma/szautil/DecAngle.h"
15 #include "carma/szautil/Delay.h"
16 #include "carma/szautil/HourAngle.h"
17 #include "carma/szautil/Vector.h"
23 class DelayAntennaLocation;
70 void setOffset(
double up,
double east,
double north);
95 return fiducial ? fiducialLongitude_ : actualLongitude_;
98 inline Angle latitude(
bool fiducial) {
99 return fiducial ? fiducialLatitude_ : actualLatitude_;
102 inline double altitude(
bool fiducial) {
103 return fiducial ? fiducialAltitude_ : actualAltitude_;
112 inline Vector<double>
getXyz(
bool geocentric=
true) {
114 return geocentricXyz_;
116 return topocentricXyz_;
119 inline virtual double X(
bool ec=
true) {
120 return ec ? geocentricXyz_[0] : topocentricXyz_[0];
123 inline virtual double Y(
bool ec=
true) {
124 return ec ? geocentricXyz_[1] : topocentricXyz_[1];
127 inline virtual double Z(
bool ec=
true) {
128 return ec ? geocentricXyz_[2] : topocentricXyz_[2];
142 inline double east() {
146 inline double north() {
155 bool doMotionCorrection);
160 virtual Delay
geometricDelay(Angle az, Angle el, DelayAntennaLocation* refDLoc);
176 HourAngle
getLst(
double mjd);
181 HourAngle
getHa(
double mjdUtc, HourAngle ra);
182 HourAngle
getHa(
double mjdUtc, Source* src);
224 Angle fiducialLongitude_;
225 Angle fiducialLatitude_;
226 double fiducialAltitude_;
233 Angle actualLongitude_;
234 Angle actualLatitude_;
235 double actualAltitude_;
243 Vector<double> geocentricXyz_;
247 Vector<double> topocentricXyz_;
267 friend class DelayLocation;
269 DelayLocation* delayLocation_;
278 #endif // End #ifndef SZA_UTIL_LOCATION_H
HourAngle getHa(double mjdUtc, HourAngle ra)
Convert to Ha 1for the actual location of this antenna.
void registerLocationCallback(DelayLocation *delayLocation)
Register to be called back when this object's location is updated.
HourAngle getLst(double mjd)
Convert mjd to lst for the location of this antenna.
Astrometry & ephem()
Return a handle to the ephemeris handler.
Atmosphere atmos_
An object for handling atmospheric calculations.
Vector< double > getUen()
Return the UEN coordinates (meters) of this object.
bool canBracket(double mjdUtc)
Return true if ephemeris parameters can be interpolated for this timestamp.
virtual Delay geometricDelay(DelayAntennaLocation *refDLoc, bool doMotionCorrection)
Get geometric delay for an Ha Dec source position, in nanoseconds.
void setOffset(double up, double east, double north)
A method to set an UEN offset relative to the fiducial.
Tagged: Mon Aug 9 17:32:59 UTC 2004.
Vector< double > getXyz(bool geocentric=true)
Return the XYZ coordinates (meters) of this object.
Astrometry astrom_
An object for handling astrometric conversions.
bool canLocate()
Return true if a site and offset have ben set for this location.
ReqParam
Parameters required to specify a location.
Delay troposphericDelay(DelayAntennaLocation *refDLoc)
Get the delay due to the excess path length through the troposphere.
A class for specifying a location.
void setFiducialSite(Angle longitude, Angle latitude, double altitude)
A method to set a fiducial LLA point.
void updateCoordinates()
Update coordinate representations of this location.
bool changed()
Return true if parameters for this location have changed since the last time this function was called...
virtual ~Location()
Destructor.
Atmosphere & atmos()
Return a handle to the atmospheric handler.
Angle longitude(bool fiducial)
Return the LLA coordinates (long in rad, lat in rad, altitude in meters) of this object.