MoonPosition.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: MoonPosition.hpp 2741 2011-06-22 16:37:02Z nwu $"
00002 
00009 #ifndef MOONPOSITION_HPP
00010 #define MOONPOSITION_HPP
00011 
00012 //============================================================================
00013 //
00014 //  This file is part of GPSTk, the GPS Toolkit.
00015 //
00016 //  The GPSTk is free software; you can redistribute it and/or modify
00017 //  it under the terms of the GNU Lesser General Public License as published
00018 //  by the Free Software Foundation; either version 2.1 of the License, or
00019 //  any later version.
00020 //
00021 //  The GPSTk is distributed in the hope that it will be useful,
00022 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024 //  GNU Lesser General Public License for more details.
00025 //
00026 //  You should have received a copy of the GNU Lesser General Public
00027 //  License along with GPSTk; if not, write to the Free Software Foundation,
00028 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00029 //
00030 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
00031 //
00032 //============================================================================
00033 
00034 
00035 #include <cmath>
00036 #include <string>
00037 
00038 #include "DayTime.hpp"
00039 #include "Triple.hpp"
00040 #include "icd_200_constants.hpp"
00041 #include "AstronomicalFunctions.hpp"
00042 #include "Vector.hpp"
00043 #include "Matrix.hpp"
00044 
00045 
00046 namespace gpstk
00047 {
00048 
00051 
00070    class MoonPosition
00071    {
00072    public:
00073 
00075       MoonPosition() throw() {}
00076 
00078       virtual ~MoonPosition() {}
00079 
00080 
00096       Triple getPosition(const DayTime& t) const
00097          throw(InvalidRequest);
00098 
00099 
00105       Triple getPositionCIS(const DayTime& t) const
00106          throw(InvalidRequest);
00107 
00108 
00116       DayTime getInitialTime() const throw(InvalidRequest)
00117       { return initialTime; }
00118 
00119 
00127       DayTime getFinalTime() const throw(InvalidRequest)
00128       { return finalTime; }
00129 
00130 
00131    private:
00132 
00134       static const DayTime initialTime;
00135 
00137       static const DayTime finalTime;
00138 
00139          // Coefficients for fundamental arguments
00140          // Units are degrees for position and Julian centuries for time
00141 
00143       static const double ELP0, ELP1, ELP2, ELP3;
00144 
00146       static const double EM0, EM1, EM2, EM3;
00147 
00149       static const double EMP0, EMP1, EMP2, EMP3;
00150 
00152       static const double D0, D1, D2, D3;
00153 
00155       static const double F0, F1, F2, F3;
00156 
00158       static const double OM0, OM1, OM2, OM3;
00159 
00161       static const double E1, E2;
00162 
00164       static const double PAC, PA0, PA1;
00165       static const double PBC;
00166       static const double PCC;
00167       static const double PDC;
00168       static const double PEC, PE0, PE1, PE2;
00169       static const double PFC;
00170       static const double PGC;
00171       static const double PHC;
00172       static const double cPIC;
00173       static const double PJC, PJ0, PJ1;
00174       static const double CW1;
00175       static const double CW2;
00176 
00177          // Coefficients for Moon position
00178          //      Tx(N): coefficient of L, B or P term (deg)
00179          //      ITx(N,0-4): coefficients of M, M', D, F, E**n in argument
00180          //
00181       static const size_t NL, NB, NP;
00182       static Vector<double> TL, TB, TP;
00183       static Matrix<int> ITL, ITB, ITP;
00184 
00185    }; // end class MoonPosition
00186 
00187 
00189 
00190 } // namespace gpstk
00191 #endif  // MOONPOSITION_HPP

Generated on Thu Feb 9 03:30:58 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1