00001 #pragma ident "$Id: ExtractLC.hpp 2741 2011-06-22 16:37:02Z nwu $" 00002 00008 #ifndef ExtractLC_GPSTK 00009 #define ExtractLC_GPSTK 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 // Dagoberto Salazar - gAGE. 2006 00030 // 00031 //============================================================================ 00032 00033 00034 00035 #include "ExtractCombinationData.hpp" 00036 #include "icd_200_constants.hpp" 00037 00038 00039 namespace gpstk 00040 { 00041 00044 00045 00047 class ExtractLC : public ExtractCombinationData 00048 { 00049 public: 00050 00052 ExtractLC() throw(InvalidData) : typeObs1(RinexObsHeader::L1), typeObs2(RinexObsHeader::L2) 00053 { 00054 valid = false; 00055 checkData = false; // This is not code, and we don't want to check these values 00056 }; 00057 00058 00065 virtual int getData(const RinexObsData& rinexData) throw(InvalidData) 00066 { 00067 return ExtractCombinationData::getData(rinexData, typeObs1, typeObs2); 00068 }; // end ExtractLC::getData() 00069 00070 00072 virtual ~ExtractLC() {}; 00073 00074 00075 protected: 00076 // Compute the combination of observables. 00077 virtual double getCombination(double obs1, double obs2) throw(InvalidData) 00078 { 00079 return ( (GAMMA_GPS*obs1*L1_WAVELENGTH - obs2*L2_WAVELENGTH)/(GAMMA_GPS - 1.0) ); 00080 }; 00081 00082 00083 private: 00084 RinexObsHeader::RinexObsType typeObs1; 00085 RinexObsHeader::RinexObsType typeObs2; 00086 00087 00088 }; // end class ExtractLC 00089 00090 00092 00093 } 00094 00095 #endif
1.3.9.1