troposphere.h

Go to the documentation of this file.
00001 /**
00002 \file    troposphere.h
00003 \brief   GNSS core 'c' function library: GPS tropospheric calculations
00004 \author  Glenn D. MacGougan (GDM)
00005 \date    2007-11-29
00006 \since   2005-08-22
00007 
00008 \b REFERENCES \n
00009 - RTCA, 2001. MINIMUM OPERATIONAL PERFORMANCE STANDARDS FOR GLOBAL POSITIONING SYSTEM/WIDE AREA 
00010   AUGMENTATION SYSTEM AIRBORNE EQUIPMENT. RTCA/DO-229C. Prepared by SC-159. November 28, 2001. 
00011   Supersedes DO-229B. Available at http://www.rtca.org/doclist.asp . pp. 338-340 of 586 in PDF. \n
00012 - Guo, J. and R. B. Langely 2003. A New Tropospheric Propagation Delay Mapping Function for 
00013   Elevation Angles Down to 2 degrees. ION GPS 2003, 9-12 Sept. 2003, Portland OR. \n
00014 - Parkinson, B. and J. J. Spilker (1996). Global Positioning System: Theory And
00015   Applications Volume 1. American Institute of Aeronautics and Astronautics, Inc.,
00016   Washinton D.C. \n
00017 
00018 \b "LICENSE INFORMATION" \n
00019 Copyright (c) 2007, refer to 'author' doxygen tags \n
00020 All rights reserved. \n
00021 
00022 Redistribution and use in source and binary forms, with or without
00023 modification, are permitted provided the following conditions are met: \n
00024 
00025 - Redistributions of source code must retain the above copyright
00026   notice, this list of conditions and the following disclaimer. \n
00027 - Redistributions in binary form must reproduce the above copyright
00028   notice, this list of conditions and the following disclaimer in the
00029   documentation and/or other materials provided with the distribution. \n
00030 - The name(s) of the contributor(s) may not be used to endorse or promote 
00031   products derived from this software without specific prior written 
00032   permission. \n
00033 
00034 THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS 
00035 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
00036 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00037 DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
00038 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00039 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
00040 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
00041 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
00042 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
00043 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
00044 SUCH DAMAGE.
00045 */
00046 
00047 #ifndef _C_TROPOSPHERE_H
00048 #define _C_TROPOSPHERE_H
00049 
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053 
00054 
00055 /// Computes the dry and wet mapping function values based on the UNBabc
00056 /// model in the reference below.
00057 /// 
00058 /// \author   Glenn D. MacGougan (GDM)
00059 /// \date     2005-08-22
00060 /// \since    2005-08-22
00061 /// 
00062 /// \b REFERENCES \n
00063 /// [1] Guo, J. and R. B. Langely 2003. A New Tropospheric Propagation Delay Mapping Function for 
00064 ///     Elevation Angles Down to 2 degrees. ION GPS 2003, 9-12 Sept. 2003, Portland OR
00065 /// 
00066 void TROPOSPHERE_GetDayAndWetMappingValues_UsingThe_UNBabc_Model( 
00067   const double elevation,  //!< satellite elevation angle                     [rad]
00068   const double latitude,   //!< user latitude                                 [rad]
00069   const double height,     //!< user height (orthometric, ie above sea level) [m]
00070   double* drymap,          //!< dry delay scale factor                        []
00071   double* wetmap           //!< wet delay scale factor                        []
00072   );
00073 
00074 
00075 /// Computes the dry and wet zenith delays based on the WAAS model in the reference below.
00076 /// 
00077 /// \author   Glenn D. MacGougan (GDM)
00078 /// \date     2005-08-22
00079 /// \since    2005-08-22
00080 /// 
00081 /// \b REFERENCES \n
00082 /// [1] RTCA, 2001. MINIMUM OPERATIONAL PERFORMANCE STANDARDS FOR GLOBAL POSITIONING SYSTEM/WIDE AREA 
00083 ///     AUGMENTATION SYSTEM AIRBORNE EQUIPMENT. RTCA/DO-229C. Prepared by SC-159. November 28, 2001. 
00084 ///     Supersedes DO-229B. Available at http://www.rtca.org/doclist.asp . pp. 338-340 of 586 in PDF
00085 /// 
00086 void TROPOSPHERE_DetermineZenithDelayValues_WAAS_Model(
00087   const double latitude,          //!< user latitude        [rad]
00088   const double height,            //!< user height          [m]
00089   const unsigned short dayofyear, //!< day of year (1-366)  [days]    
00090   double* zenith_dry_delay,       //!< dry zenith delay     [m]
00091   double* zenith_wet_delay        //!< wet zenith delay     [m]
00092   );
00093 
00094 
00095 /// Computes the dry and wet delays given the delay zenith values using the UNBabc
00096 /// Mapping function, described in [1], which requires elevation angle, latitude and height.
00097 /// 
00098 /// \author   Glenn D. MacGougan (GDM)
00099 /// \date     2005-08-22
00100 /// \since    2005-08-22
00101 ///
00102 /// \b REFERENCES \n
00103 /// [1] Guo, J. and R. B. Langely 2003. A New Tropospheric Propagation Delay Mapping Function for 
00104 ///     Elevation Angles Down to 2 degrees. ION GPS 2003, 9-12 Sept. 2003, Portland OR
00105 /// 
00106 void TROPOSPHERE_GetDryAndWetDelay_UsingThe_UNBabc_MappingFunction(  
00107   const double zenith_dry_delay,  //!< dry zenith delay                              [m]
00108   const double zenith_wet_delay,  //!< wet zenith delay                              [m]
00109   const double elevation,         //!< satellite elevation angle (must be >= 2 deg)  [rad]
00110   const double latitude,          //!< user latitude                                 [rad]
00111   const double height,            //!< user height (orthometric, ie above sea level) [m]  
00112   double*      drydelay,          //!< dry delay mapped to this elevation angle      [m]
00113   double*      wetdelay           //!< wet delay mapped to this elevation angle      [m]
00114   );
00115 
00116 #ifdef __cplusplus
00117 }
00118 #endif
00119 
00120 #endif // _C_TROPOSPHERE_H_