00001 #pragma ident "$Id: EphemerisRange.hpp 1264 2008-06-25 13:18:27Z ocibu $" 00002 00003 //============================================================================ 00004 // 00005 // This file is part of GPSTk, the GPS Toolkit. 00006 // 00007 // The GPSTk is free software; you can redistribute it and/or modify 00008 // it under the terms of the GNU Lesser General Public License as published 00009 // by the Free Software Foundation; either version 2.1 of the License, or 00010 // any later version. 00011 // 00012 // The GPSTk is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU Lesser General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU Lesser General Public 00018 // License along with GPSTk; if not, write to the Free Software Foundation, 00019 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 // 00021 // Copyright 2004, The University of Texas at Austin 00022 // 00023 //============================================================================ 00024 //============================================================================ 00025 // 00026 //This software developed by Applied Research Laboratories at the University of 00027 //Texas at Austin, under contract to an agency or agencies within the U.S. 00028 //Department of Defense. The U.S. Government retains all rights to use, 00029 //duplicate, distribute, disclose, or release this software. 00030 // 00031 //Pursuant to DoD Directive 523024 00032 // 00033 // DISTRIBUTION STATEMENT A: This software has been approved for public 00034 // release, distribution is unlimited. 00035 // 00036 //============================================================================= 00037 00043 #ifndef EPHEMERIS_RANGE_HPP 00044 #define EPHEMERIS_RANGE_HPP 00045 00046 #include "DayTime.hpp" 00047 #include "SatID.hpp" 00048 #include "Position.hpp" 00049 #include "XvtStore.hpp" 00050 00051 namespace gpstk 00052 { 00055 00061 class CorrectedEphemerisRange 00062 { 00063 public: 00065 CorrectedEphemerisRange() {} 00066 00071 double ComputeAtReceiveTime( 00072 const DayTime& tr_nom, 00073 const Position& Rx, 00074 const SatID sat, 00075 const XvtStore<SatID>& Eph); 00076 00081 double ComputeAtTransmitTime( 00082 const DayTime& tr_nom, 00083 const double& pr, 00084 const Position& Rx, 00085 const SatID sat, 00086 const XvtStore<SatID>& Eph); 00087 00092 double ComputeAtTransmitSvTime( 00093 const DayTime& tt_nom, 00094 const double& pr, 00095 const Position& Rx, 00096 const SatID sat, 00097 const XvtStore<SatID>& Eph); 00098 00100 double rawrange; 00102 double svclkbias; 00104 double svclkdrift; 00106 double relativity; 00108 double elevation; 00110 double azimuth; 00112 double elevationGeodetic; 00114 double azimuthGeodetic; 00116 DayTime transmit; 00118 Triple cosines; 00120 Xvt svPosVel; 00121 00122 private: 00123 // These are just helper functions to keep from repeating code 00124 void updateCER(const Position& Rx); 00125 void rotateEarth(const Position& Rx); 00126 00127 }; // end class CorrectedEphemerisRange 00128 00130 double RelativityCorrection(const Xvt& svPosVel); 00131 00132 00134 00135 } // namespace gpstk 00136 00137 #endif
1.3.9.1