10 #ifndef CARMA_INTERFEROMETRY_DELAYENGINE_H
11 #define CARMA_INTERFEROMETRY_DELAYENGINE_H
16 #include "carma/monitor/DelayEngineSubsystem.h"
36 namespace interferometry {
38 typedef ::std::vector< const carma::monitor::DelayEngineSubsystem * >
170 double x,
double y,
double z,
171 services::AntennaCoordinateType acType,
256 double pntra,
double pntdec,
257 double phsra,
double phsdec,
258 bool logAction,
const std::string& source
370 double pntaz,
double pntel,
371 double phsaz,
double phsel
424 void setPadDelay(
unsigned short antennaNo,
double delay );
441 double opticsDelayMM,
double opticsDelayCM,
442 double loCableDelayMM,
double loCableDelayCM);
567 void initialize(
void) ;
574 void finishCoordinates(
unsigned short antennaNo,
576 double raPointingOffset,
577 double decPointingOffset,
578 double raPhaseOffset,
579 double decPhaseOffset,
581 const std::string& source
593 double computeTotalFixedDelay(
unsigned short antennaNo);
606 double computeTotalDelay(
unsigned short antennaNo,
619 double computeAxisDelay(
unsigned short antennaNo,
634 double computeGeometricDelay(
unsigned short antennaNo,
648 double computeHeightDelay(
unsigned short antennaNo,
661 double computeIonosphericDelay(
unsigned short antennaNo,
672 double computeThermalDelay(
unsigned short antennaNo,
686 double computeTroposphericDelay(
unsigned short antennaNo,
699 double computePointingCenterHourAngle(
unsigned short antennaNo,
712 double computePhaseCenterHourAngle(
unsigned short antennaNo,
724 void setLocation(
unsigned short antennaNo,
736 void fillInMonitorPoints(
738 monitor::DelayEngineSubsystem & monitorFrame );
744 std::string debugPrint(
const DelayInfo & delayInfo);
752 double computeBimaDelay(
unsigned short antennaNo,
817 std::vector<DelayInfo> refPtDelay_;
820 std::vector<DelayInfo> dtriplet_;
834 std::vector<double> totalFixedDelay_;
840 std::vector<double> adjustableDelay_;
850 std::vector<double> delayOffset_;
856 std::vector<double> padDelay_;
862 std::vector<double> antDelay_;
866 std::vector<double> opticsDelayMM_;
867 std::vector<double> opticsDelayCM_;
871 std::vector<double> loCableDelayMM_;
872 std::vector<double> loCableDelayCM_;
875 std::vector<double> rxDelayPol1_;
878 std::vector<double> rxDelayPol2_;
881 static const std::string RaDec;
882 static const std::string AzEl;
887 static monitor::DelayEngineSubsystem &
888 ensureAllocated( ::std::auto_ptr< monitor::DelayEngineSubsystem > & );
890 ::std::auto_ptr< monitor::DelayEngineSubsystem > des0_;
891 ::std::auto_ptr< monitor::DelayEngineSubsystem > des1_;
892 ::std::auto_ptr< monitor::DelayEngineSubsystem > des2_;
894 static const unsigned short ANTEPENULTIMATE = 0;
895 static const unsigned short PENULTIMATE = 1;
896 static const unsigned short CURRENT = 2;
905 #endif //CARMA_INTERFEROMETRY_DELAYENGINE_H
This class performs conversions between several different antenna coordinate systems.
void setAxisMisalignment(unsigned short antennaNo, const services::Length &axisMis)
Set the axis misalignment value.
DelayFrameVec computeDelays(void)
Initiation a delay calculation.
void useGeometricDelay(unsigned short antennaNo, bool useit)
Tell the DelayEngine whether to use the geometric delay for a given antenna.
void setAdjustableDelay(unsigned short antennaNo, double delay)
Set the value for the user-definable delay offset.
void setAntennaLOFreq(unsigned short antennaNo, const services::Frequency &LO1freq)
This is the primary method for telling the DelayEngine about the source being tracked.
void setPadDelay(unsigned short antennaNo, double delay)
Set the value for the array-center-to-pad delay.
carma/services/Frequency.h Representation of Frequency.
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).
void testAgainstBima(void)
Print out the delays from CARMA and BIMA code.
bool selfTest(bool verbose)
Perform an internal selftest to compute a geometric delay for an antenna configuration with a known a...
void useAdjustableDelay(unsigned short antennaNo, bool useit)
Tell the DelayEngine whether to use the adjustable delay for a given antenna.
Various type definitions for services classes.
void useTroposphericDelay(unsigned short antennaNo, bool useit)
Tell the DelayEngine whether to use the tropospheric delay for a given antenna.
This class implements various astronomical time computation routines.
Contains a self-consistent set of values for delay parameters.
The Frequency class can represent any frequency in any units.
Ephemeris wraps the NOVAS library and any other ephemeris related functions into a simple to use clas...
Astronomical Time routines.
void useHeightDelay(unsigned short antennaNo, bool useit)
Tell the DelayEngine whether to use the additional refractive height delay for a given antenna...
The Temperature class represents a temperature in any unit.
The Pressure class can represent any pressure in any units.
void setWeather(double airTemp, double atmPressure, double relHumid)
Set the current weather parameters, needed to calculated the tropospheric delay.
Location specifies a location (observatory if you wish) on planet earth, as longitude, latitude, and altitude above sea-level.
Constants and methods having to do with the earth's atmosphere (e.g.
Tagged: Tue May 4 15:49:11 PDT 2004.
void setAntennaAzEl(unsigned short antennaNo, double mjd, double pntaz, double pntel, double phsaz, double phsel)
Tell the DelayEngine parameters required to determine delay information for an antenna pointed to a f...
void setRxDelayPol1(unsigned short antennaNo, double delay)
Set the receiver offset for polarization state 1.
void setRxDelayPol2(unsigned short antennaNo, double delay)
Set the receiver offset for polarization state 2.
void setArrayReferencePoint(const services::Location &location)
The Length class can represent a length in any units.
void useIonosphericDelay(unsigned short antennaNo, bool useit)
Tell the DelayEngine whether to use the ionospheric delay for a given antenna.
void setAntennaDelays(unsigned short antennaNo, double antDelay, double opticsDelayMM, double opticsDelayCM, double loCableDelayMM, double loCableDelayCM)
Set the value for the pad-to-antenna, and other antenna specific delays.
Declaration of carma::services::Ephemeris.
void useThermalDelay(unsigned short antennaNo, bool useit)
Tell the DelayEngine whether to use the thermal delay for a given antenna.
void setDelayOffset(unsigned short antennaNo, double delay)
Set the value for the antenna's delay offset.
void setAntennaRaDec(unsigned short antennaNo, double mjd, double pntra, double pntdec, double phsra, double phsdec, bool logAction, const std::string &source)
void setAllAntennaLOFreqs(const services::Frequency &LO1freq)
Set the LO1 frequency for all antennas to the same value.
void setAntennaCoordinates(unsigned short antennaNo, double x, double y, double z, services::AntennaCoordinateType acType, double axisMis)
This class is based on the GNU units library.
Contains a the status variables for a DelayInfo class.