EarthOceanTide.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: EarthOceanTide.hpp 2457 2010-08-18 14:20:12Z coandrei $"
00002 
00008 #ifndef GPSTK_OCEAN_TIDE_HPP
00009 #define GPSTK_OCEAN_TIDE_HPP
00010 
00011 //============================================================================
00012 //
00013 //  This file is part of GPSTk, the GPS Toolkit.
00014 //
00015 //  The GPSTk is free software; you can redistribute it and/or modify
00016 //  it under the terms of the GNU Lesser General Public License as published
00017 //  by the Free Software Foundation; either version 2.1 of the License, or
00018 //  any later version.
00019 //
00020 //  The GPSTk is distributed in the hope that it will be useful,
00021 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 //  GNU Lesser General Public License for more details.
00024 //
00025 //  You should have received a copy of the GNU Lesser General Public
00026 //  License along with GPSTk; if not, write to the Free Software Foundation,
00027 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 //  Wei Yan - Chinese Academy of Sciences . 2009, 2010
00030 //
00031 //============================================================================
00032 
00033 #include <string>
00034 
00035 
00036 namespace gpstk
00037 {
00040 
00045    class EarthOceanTide
00046    {
00047    public:
00049       EarthOceanTide()
00050          : minX(0.05), 
00051            maxN(4), 
00052            isLoaded(false)
00053       {
00054          fileName = "InputData\\Earth\\OT_CSRC.TID";
00055       }
00056 
00058       ~EarthOceanTide(){}
00059 
00060      
00062       struct CSR_OTIDE
00063       {
00064          double   KNMP[20];
00065          int      NTACT;
00066          int      NDOD[1200][6];
00067          double   CSPM[1200][4];
00068          int      NM[1200][2];  
00069       };
00070 
00071          
00073 
00074       void loadTideFile(std::string fileName, int NMAX = 4, double XMIN = 0.05);
00075 
00083       void getOceanTide(double mjdUtc, double dC[], double dS[] );
00084 
00085       void setTideFile(std::string file)
00086       {
00087          fileName = file;
00088          isLoaded = false;
00089       }
00090 
00091       void test();
00092 
00093    protected:
00094       //Get Doson  FUNDAMENTAL ARGUMENTS
00095       //void NUTARG(double mjdUtc, double BETA[6]);   
00096 
00097    protected:
00098       std::string fileName;
00099 
00100       int maxN;
00101       double minX;
00102 
00103       bool isLoaded;
00104 
00105       double FAC[41];
00106 
00108       int    NWAV;   // number of lines to skip
00109       int    NTOT;   // number of data lines
00110       int    NMX;      // max degree
00111       int    MMX;     // max order 
00113       double RRE;
00114       double RHOW;
00115       double XME;
00116       double PFCN;
00117       double XXX;
00118 
00119       CSR_OTIDE  tideData;
00120 
00123       static const double G;  //= 6.67259e-11;
00124       static const double GE; //= 9.780327;
00125 
00126    }; // End of class 'EarthOceanTide'
00127 
00128       // @}
00129 
00130 }  // End of namespace 'gpstk'
00131 
00132 
00133 #endif   // GPSTK_OCEAN_TIDE_HPP
00134 
00135 

Generated on Tue May 22 03:30:57 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1