Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
TROPO.M
Package: easy.zip [view]
Upload User: sfyaiting
Upload Date: 2009-10-25
Package Size: 320k
Code Size: 2k
Category:
GPS develop
Development Platform:
Matlab
- function ddr = tropo(sinel,hsta,p,tkel,hum,hp,htkel,hhum)
- %TROPO Calculation of tropospheric correction.
- % The range correction ddr in m is to be subtracted from
- % pseudo-ranges and carrier phases
- % sinel sin of elevation angle of satellite
- % hsta height of station in km
- % p atmospheric pressure in mb at height hp
- % tkel surface temperature in degrees Kelvin at height htkel
- % hum humidity in % at height hhum
- % hp height of pressure measurement in km
- % htkel height of temperature measurement in km
- % hhum height of humidity measurement in km
- % Reference
- % Goad, C.C. & Goodman, L. (1974) A Modified Tropospheric
- % Refraction Correction Model. Paper presented at the
- % American Geophysical Union Annual Fall Meeting, San
- % Francisco, December 12-17
- % A Matlab reimplementation of a C code from driver.
- % Kai Borre 06-28-95
- a_e = 6378.137; % semi-major axis of earth ellipsoid
- b0 = 7.839257e-5;
- tlapse = -6.5;
- tkhum = tkel+tlapse*(hhum-htkel);
- atkel = 7.5*(tkhum-273.15)/(237.3+tkhum-273.15);
- e0 = 0.0611*hum*10^atkel;
- tksea = tkel-tlapse*htkel;
- em = -978.77/(2.8704e6*tlapse*1.0e-5);
- tkelh = tksea+tlapse*hhum;
- e0sea = e0*(tksea/tkelh)^(4*em);
- tkelp = tksea+tlapse*hp;
- psea = p*(tksea/tkelp)^em;
- if sinel < 0
- sinel = 0;
- end;
- tropo = 0;
- done = 'FALSE';
- refsea = 77.624e-6/tksea;
- htop = 1.1385e-5/refsea;
- refsea = refsea*psea;
- ref = refsea*((htop-hsta)/htop)^4;
- while 1
- rtop = (a_e+htop)^2-(a_e+hsta)^2*(1-sinel^2);
- if rtop < 0, rtop = 0; end; % check to see if geometry is crazy
- rtop = sqrt(rtop)-(a_e+hsta)*sinel;
- a = -sinel/(htop-hsta);
- b = -b0*(1-sinel^2)/(htop-hsta);
- rn = zeros(8,1);
- for i = 1:8
- rn(i) = rtop^(i+1);
- end;
- alpha = [2*a, 2*a^2+4*b/3, a*(a^2+3*b),...
- a^4/5+2.4*a^2*b+1.2*b^2, 2*a*b*(a^2+3*b)/3,...
- b^2*(6*a^2+4*b)*1.428571e-1, 0, 0];
- if b^2 > 1.0e-35, alpha(7) = a*b^3/2; alpha(8) = b^4/9; end;
- dr = rtop;
- dr = dr+alpha*rn;
- tropo = tropo+dr*ref*1000;
- if done == 'TRUE ', ddr = tropo; break; end;
- done = 'TRUE ';
- refsea = (371900.0e-6/tksea-12.92e-6)/tksea;
- htop = 1.1385e-5*(1255/tksea+0.05)/refsea;
- ref = refsea*e0sea*((htop-hsta)/htop)^4;
- end;
- %%%%%%%%% end tropo.m %%%%%%%%%%%%%%%%%%%